Initial commit

This commit is contained in:
Martin Berg Alstad
2024-06-22 17:19:55 +02:00
parent 9eb7c2883e
commit d5974dda20
22 changed files with 713 additions and 6 deletions

View File

@ -0,0 +1,28 @@
#[cfg(feature = "vec")]
pub trait Distinct {
fn distinct(&mut self);
}
#[cfg(feature = "vec")]
impl<T: PartialEq + Clone> Distinct for Vec<T> {
fn distinct(&mut self) {
*self = self.iter().fold(vec![], |mut acc, x| {
if !acc.contains(x) {
acc.push(x.clone());
}
acc
});
}
}
#[cfg(all(test, feature = "vec"))]
mod tests {
use super::*;
#[test]
fn test_distinct() {
let mut vec = vec![1, 2, 3, 1, 2, 3];
vec.distinct();
assert_eq!(vec, vec![1, 2, 3]);
}
}