aboutsummaryrefslogtreecommitdiffstats
path: root/components/style/gecko_string_cache/namespace.rs
diff options
context:
space:
mode:
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;