list_fn/
collection.rs

1extern crate alloc;
2
3use alloc::{collections::BTreeSet, vec::Vec};
4
5pub trait Collection {
6    type Item;
7    fn add(self, item: Self::Item) -> Self;
8}
9
10impl<T> Collection for Vec<T> {
11    type Item = T;
12
13    fn add(mut self, item: Self::Item) -> Self {
14        self.push(item);
15        self
16    }
17}
18
19impl<T: Ord> Collection for BTreeSet<T> {
20    type Item = T;
21
22    fn add(mut self, item: Self::Item) -> Self {
23        self.insert(item);
24        self
25    }
26}