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}