From ef43cafaa6c5ee0f7695468dd1ec42e95bc44027 Mon Sep 17 00:00:00 2001 From: brett Date: Mon, 23 Apr 2018 14:16:04 -0400 Subject: [PATCH] impl HeapSizeOf for BTreeSet --- src/lib.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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,