improve prop range splitting
This commit is contained in:
24
src/misc.rs
Normal file
24
src/misc.rs
Normal file
@@ -0,0 +1,24 @@
|
||||
pub fn split(min: usize, max: usize, x: usize) -> Vec<Vec<usize>> {
|
||||
if min > x || x > max {
|
||||
return Vec::new();
|
||||
}
|
||||
let index = x - min;
|
||||
|
||||
let collected = (min..=max).collect::<Vec<usize>>();
|
||||
let split = collected.split_at(index);
|
||||
let mut one = split.0.to_vec();
|
||||
one.reverse();
|
||||
let mut two = split.1.to_vec();
|
||||
two.remove(0);
|
||||
vec![one, two]
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn split_test() {
|
||||
assert_eq!(split(0, 6, 2), vec![vec![1, 0], vec![3, 4, 5, 6]]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user