oxilean_std/hashset/
oxihashset_type.rs1use super::functions::*;
6use std::collections::HashSet as StdHashSet;
7use std::fmt;
8use std::hash::Hash;
9
10#[derive(Clone, Debug, PartialEq, Eq)]
15pub struct OxiHashSet<T>
16where
17 T: Eq + Hash + Clone,
18{
19 pub(super) inner: StdHashSet<T>,
20}
21impl<T: Eq + Hash + Clone + Ord> OxiHashSet<T> {
22 pub fn sorted_vec(&self) -> Vec<T> {
24 let mut v = self.to_vec();
25 v.sort();
26 v
27 }
28 pub fn min(&self) -> Option<&T> {
30 self.inner.iter().min()
31 }
32 pub fn max(&self) -> Option<&T> {
34 self.inner.iter().max()
35 }
36}
37impl<T: Eq + Hash + Clone + std::fmt::Debug> OxiHashSet<T> {
38 pub fn to_sorted_vec(&self) -> Vec<T>
40 where
41 T: Ord,
42 {
43 let mut v: Vec<T> = self.inner.iter().cloned().collect();
44 v.sort();
45 v
46 }
47}