use crate::MultiSet;
use std::collections::{BTreeMap, HashMap};
use std::hash::Hash;
pub struct MultiSetBuilder {}
impl MultiSetBuilder {
pub fn hash_values<K, S>() -> MultiSetBuilderWithVals<HashMap<K, usize, S>>
where
K: Hash + Eq,
{
Self::with_map_type()
}
pub fn sorted_values<K>() -> MultiSetBuilderWithVals<BTreeMap<K, usize>>
where
K: Ord,
{
Self::with_map_type()
}
pub fn with_map_type<M>() -> MultiSetBuilderWithVals<M> {
MultiSetBuilderWithVals {
_m: std::marker::PhantomData,
}
}
}
pub struct MultiSetBuilderWithVals<M> {
_m: std::marker::PhantomData<M>,
}
impl<M> MultiSetBuilderWithVals<M>
where
M: Default,
{
pub fn build(self) -> MultiSet<M> {
Default::default()
}
}