hexga_core 0.0.11-beta.48

Basic set of functionalities common to all hexga crate
Documentation
use super::*;

pub trait CollectTo<T>: Sized + IntoIterator<Item = T>
{
    fn to_vec(self) -> Vec<T> { self.into_iter().collect() }
    fn to_linkedlist(self) -> LinkedList<T> { self.into_iter().collect() }
    fn to_vecdeque(self) -> VecDeque<T> { self.into_iter().collect() }
    #[cfg(feature = "std")]
    fn to_hashset(self) -> HashSet<T>
    where
        T: Eq + Hash,
    {
        self.into_iter().collect()
    }
    fn to_btreeset(self) -> BTreeSet<T>
    where
        T: Ord,
    {
        self.into_iter().collect()
    }
}
impl<I, T> CollectTo<T> for I where I: IntoIterator<Item = T> {}

pub trait CollectToMap<T1, T2>: Sized + IntoIterator<Item = (T1, T2)>
{
    #[cfg(feature = "std")]
    fn to_hashmap(self) -> HashMap<T1, T2>
    where
        T1: Eq + Hash,
    {
        self.into_iter().collect()
    }
    fn to_btreemap(self) -> BTreeMap<T1, T2>
    where
        T1: Ord,
    {
        self.into_iter().collect()
    }
}
impl<I, T1, T2> CollectToMap<T1, T2> for I where I: IntoIterator<Item = (T1, T2)> {}