diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-03-21 19:38:16 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-04-08 02:02:11 +0200 |
commit | e29b84de18ab1a3e7044d63a0b83a4727e5622d4 (patch) | |
tree | 3c15d02f4a6e8f7f2aa5eab0094201f8e600e4c9 /components/style/gecko_string_cache/namespace.rs | |
parent | 65ebbb7c561a8b457476d5aff3ebbcb6c7adf751 (diff) | |
download | servo-e29b84de18ab1a3e7044d63a0b83a4727e5622d4.tar.gz servo-e29b84de18ab1a3e7044d63a0b83a4727e5622d4.zip |
style: Hash less stuff in the bloom filter, using the precomputed hashes we have.
Diffstat (limited to 'components/style/gecko_string_cache/namespace.rs')
-rw-r--r-- | components/style/gecko_string_cache/namespace.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/components/style/gecko_string_cache/namespace.rs b/components/style/gecko_string_cache/namespace.rs index 117f1923151..9368c16286f 100644 --- a/components/style/gecko_string_cache/namespace.rs +++ b/components/style/gecko_string_cache/namespace.rs @@ -5,6 +5,7 @@ //! A type to represent a namespace. use gecko_bindings::structs::nsIAtom; +use precomputed_hash::PrecomputedHash; use std::borrow::{Borrow, Cow}; use std::fmt; use std::ops::Deref; @@ -19,10 +20,27 @@ macro_rules! ns { #[derive(Debug, PartialEq, Eq, Clone, Default, Hash)] pub struct Namespace(pub Atom); +impl PrecomputedHash for Namespace { + #[inline] + fn precomputed_hash(&self) -> u32 { + self.0.precomputed_hash() + } +} + /// A Gecko WeakNamespace is a wrapped WeakAtom. #[derive(Hash)] pub struct WeakNamespace(WeakAtom); +impl Deref for WeakNamespace { + type Target = WeakAtom; + + #[inline] + fn deref(&self) -> &WeakAtom { + &self.0 + } +} + + impl Deref for Namespace { type Target = WeakNamespace; |