Make the AttrHelpers trait use extended_deref

This commit is contained in:
Cameron Zwarich 2014-09-26 15:36:39 -07:00
parent 8334942d0c
commit 2789750f66

View file

@ -147,14 +147,14 @@ impl<'a> AttrMethods for JSRef<'a, Attr> {
} }
} }
pub trait AttrHelpers { pub trait AttrHelpers<'a> {
fn set_value(self, set_type: AttrSettingType, value: AttrValue); fn set_value(self, set_type: AttrSettingType, value: AttrValue);
fn value<'a>(&'a self) -> Ref<'a, AttrValue>; fn value(self) -> Ref<'a, AttrValue>;
fn local_name<'a>(&'a self) -> &'a Atom; fn local_name(self) -> &'a Atom;
fn summarize(self) -> AttrInfo; fn summarize(self) -> AttrInfo;
} }
impl<'a> AttrHelpers for JSRef<'a, Attr> { impl<'a> AttrHelpers<'a> for JSRef<'a, Attr> {
fn set_value(self, set_type: AttrSettingType, value: AttrValue) { fn set_value(self, set_type: AttrSettingType, value: AttrValue) {
let owner = self.owner.root(); let owner = self.owner.root();
let node: JSRef<Node> = NodeCast::from_ref(*owner); let node: JSRef<Node> = NodeCast::from_ref(*owner);
@ -180,12 +180,12 @@ impl<'a> AttrHelpers for JSRef<'a, Attr> {
} }
} }
fn value<'a>(&'a self) -> Ref<'a, AttrValue> { fn value(self) -> Ref<'a, AttrValue> {
self.value.deref().borrow() self.extended_deref().value.borrow()
} }
fn local_name<'a>(&'a self) -> &'a Atom { fn local_name(self) -> &'a Atom {
&self.local_name &self.extended_deref().local_name
} }
fn summarize(self) -> AttrInfo { fn summarize(self) -> AttrInfo {