Files
rust-lib/src/vector/distinct.rs
Martin Berg Alstad 7e2df67fee Comments.
Coverage to Makefile.toml.

Added branch to map! to allow for instantiating with default values.
2024-08-31 17:49:27 +02:00

29 lines
613 B
Rust

/// Modify self to contain only distinct elements.
pub trait Distinct {
/// Modify self to contain only distinct elements.
fn distinct(&mut self);
}
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(test)]
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]);
}
}