1pub fn has_only_unique_elements<T>(reference_slice: &mut [&T], ignore: &T) -> bool where T: Ord{
4 reference_slice.sort();
6 let length = reference_slice.len();
7 for i in 0..(length - 1) {
8 if reference_slice[i] != ignore && reference_slice.get(i) == reference_slice.get(i + 1) {
9 return false;
10 }
11 }
12 true
13}
14
15#[cfg(test)]
16mod tests {
17 use super::*;
18 #[test]
19 fn has_only_unique_elements_1() {
20 let mut ints = [&1,&2,&3,&4,&5];
21 assert!(has_only_unique_elements(&mut ints, &-1));
22 }
23
24 #[test]
25 fn has_only_unique_elements_2() {
26 let mut ints = [&1,&4,&3,&4,&5];
27 assert!(!has_only_unique_elements(&mut ints, &-1));
28 }
29
30 #[test]
31 fn has_only_unique_elements_3() {
32 let mut ints = [&1,&4,&3,&4,&5];
33 assert!(has_only_unique_elements(&mut ints, &4));
34 }
35}