diff --git a/src/lib.rs b/src/lib.rs index 7eecbce..413c945 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,7 +7,7 @@ extern crate winapi; use winapi::um::heapapi::{GetProcessHeap, HeapSize, HeapValidate}; use std::borrow::Cow; use std::cell::{Cell, RefCell}; -use std::collections::{BTreeMap, HashSet, HashMap, LinkedList, VecDeque}; +use std::collections::{BTreeMap, BTreeSet, HashSet, HashMap, LinkedList, VecDeque}; use std::hash::BuildHasher; use std::hash::Hash; use std::marker::PhantomData; @@ -305,6 +305,15 @@ impl HeapSizeOf for BTreeMap { } } +impl HeapSizeOf for BTreeSet { + fn heap_size_of_children(&self) -> usize { + let size = self.len() * (size_of::() + size_of::()); + self.iter().fold(size, |n, value| { + n + value.heap_size_of_children() + }) + } +} + impl HeapSizeOf for Range where T: HeapSizeOf,