make diag generic

This commit is contained in:
Simon Gardling 2025-02-08 22:37:05 -05:00
parent 325ac75c31
commit 5c27572f9f
Signed by: titaniumtown
GPG Key ID: 9AB28AC10ECE533D

View File

@ -27,14 +27,12 @@ where
output
}
pub fn diag(
i: usize,
j: usize,
min_i: usize,
min_j: usize,
max_i: usize,
max_j: usize,
) -> Vec<Vec<(usize, usize)>> {
pub fn diag<T>(i: T, j: T, min_i: T, min_j: T, max_i: T, max_j: T) -> Vec<Vec<(T, T)>>
where
T: num::Integer + Copy,
RangeInclusive<T>: Iterator<Item = T> + DoubleEndedIterator,
Rev<RangeInclusive<T>>: Iterator<Item = T>,
{
let i_chains = split_from(min_i, max_i, i);
let j_chains = split_from(min_j, max_j, j);