aboutsummaryrefslogtreecommitdiffstats
path: root/components/style/gecko_string_cache/namespace.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2017-03-21 19:38:16 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2017-04-08 02:02:11 +0200
commite29b84de18ab1a3e7044d63a0b83a4727e5622d4 (patch)
tree3c15d02f4a6e8f7f2aa5eab0094201f8e600e4c9 /components/style/gecko_string_cache/namespace.rs
parent65ebbb7c561a8b457476d5aff3ebbcb6c7adf751 (diff)
downloadservo-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.rs18
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;