ai_dataloader/indexable/dataset/
len.rs1use std::collections::{BTreeMap, BTreeSet, BinaryHeap, HashMap, HashSet, LinkedList, VecDeque};
2
3pub trait Len {
7 fn len(&self) -> usize;
10 fn is_empty(&self) -> bool {
12 self.len() == 0
13 }
14}
15
16impl<T> Len for Vec<T> {
19 fn len(&self) -> usize {
20 self.len()
21 }
22}
23
24impl<T> Len for VecDeque<T> {
25 fn len(&self) -> usize {
26 self.len()
27 }
28}
29
30impl<K, V, H> Len for HashMap<K, V, H> {
31 fn len(&self) -> usize {
32 self.len()
33 }
34}
35
36impl<K, V> Len for BTreeMap<K, V> {
37 fn len(&self) -> usize {
38 self.len()
39 }
40}
41
42impl<T> Len for LinkedList<T> {
43 fn len(&self) -> usize {
44 self.len()
45 }
46}
47
48impl<T> Len for BTreeSet<T> {
49 fn len(&self) -> usize {
50 self.len()
51 }
52}
53
54impl<T, H> Len for HashSet<T, H> {
55 fn len(&self) -> usize {
56 self.len()
57 }
58}
59
60impl<T> Len for BinaryHeap<T> {
61 fn len(&self) -> usize {
62 self.len()
63 }
64}