From afb4e625c276526623587afccb7c7754fabacd24 Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Sat, 17 Oct 2015 19:17:50 -0700 Subject: [PATCH] Add `HeapSizeOf` support. Part of Part of servo/heapsize#5. --- Cargo.toml | 3 +++ src/lib.rs | 5 +++++ src/tree_builder/interface.rs | 1 + 3 files changed, 9 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 78686d83..95ee8647 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,6 +17,7 @@ doctest = false [features] unstable = ["html5ever_macros", "tendril/unstable", "string_cache/unstable", "string_cache_plugin", "rc/unstable"] +heap_size = ["heapsize", "heapsize_plugin"] [dependencies] time = "0" @@ -27,6 +28,8 @@ string_cache_plugin = { version = "0.1.5", optional = true } mac = "0" tendril = "0.1.3" rc = "0.1.1" +heapsize = { version = "0.1.1", optional = true } +heapsize_plugin = { version = "0.1.0", optional = true } [dev-dependencies] rustc-serialize = "0.3.15" diff --git a/src/lib.rs b/src/lib.rs index 5259aef0..526c7d83 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,6 +16,11 @@ #![cfg_attr(feature = "unstable", plugin(string_cache_plugin))] +#![cfg_attr(feature = "heap_size", feature(plugin, custom_derive))] +#![cfg_attr(feature = "heap_size", plugin(heapsize_plugin))] +#[cfg(feature = "heap_size")] +extern crate heapsize; + extern crate rc; #[macro_use] diff --git a/src/tree_builder/interface.rs b/src/tree_builder/interface.rs index 5aee28f8..87cff3df 100644 --- a/src/tree_builder/interface.rs +++ b/src/tree_builder/interface.rs @@ -22,6 +22,7 @@ pub use self::NodeOrText::{AppendNode, AppendText}; /// A document's quirks mode. #[derive(PartialEq, Eq, Copy, Clone, Hash, Debug)] +#[cfg_attr(feature = "heap_size", derive(HeapSizeOf))] pub enum QuirksMode { Quirks, LimitedQuirks,