diff options
Diffstat (limited to 'src/components/script/dom/attr.rs')
-rw-r--r-- | src/components/script/dom/attr.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/components/script/dom/attr.rs b/src/components/script/dom/attr.rs index f31a281b36d..c8e5ad88527 100644 --- a/src/components/script/dom/attr.rs +++ b/src/components/script/dom/attr.rs @@ -24,6 +24,7 @@ pub enum AttrSettingType { pub enum AttrValue { StringAttrValue(DOMString), TokenListAttrValue(DOMString, Vec<(uint, uint)>), + UIntAttrValue(DOMString, u32), } impl AttrValue { @@ -39,10 +40,16 @@ impl AttrValue { return TokenListAttrValue(list, indexes); } + pub fn from_u32(string: DOMString, default: u32) -> AttrValue { + let result: u32 = from_str(string.as_slice()).unwrap_or(default); + UIntAttrValue(string, result) + } + pub fn as_slice<'a>(&'a self) -> &'a str { match *self { StringAttrValue(ref value) | - TokenListAttrValue(ref value, _) => value.as_slice(), + TokenListAttrValue(ref value, _) | + UIntAttrValue(ref value, _) => value.as_slice(), } } } |