get_size2/impls/feature/
smallvec.rs1use crate::{GetSize, GetSizeTracker};
2
3impl<A: smallvec::Array> GetSize for smallvec::SmallVec<A>
4where
5 A::Item: GetSize,
6{
7 fn get_heap_size_with_tracker<Tr: GetSizeTracker>(&self, tracker: Tr) -> (usize, Tr) {
8 let (mut size, tracker) = self.iter().fold((0, tracker), |(size, tracker), element| {
9 let (elem_size, tracker) = <A::Item>::get_heap_size_with_tracker(element, tracker);
10 (size + elem_size, tracker)
11 });
12
13 if self.len() > self.inline_size() {
14 size += self.capacity() * <A::Item>::get_stack_size();
15 }
16
17 (size, tracker)
18 }
19}