aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/css.rs
blob: 527b08315e9952beb130c63c581617fc793dcc16 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

use cssparser::serialize_identifier;
use dom::bindings::error::{Error, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::utils::Reflector;
use util::str::DOMString;

#[dom_struct]
pub struct CSS {
    reflector_: Reflector,
}

impl CSS {
    // http://dev.w3.org/csswg/cssom/#serialize-an-identifier
    pub fn Escape(_: GlobalRef, ident: DOMString) -> Fallible<DOMString> {
        if ident.bytes().any(|b| b == b'\0') {
            return Err(Error::InvalidCharacter);
        }
        let mut escaped = DOMString::new();
        serialize_identifier(&ident, &mut escaped).unwrap();
        Ok(escaped)
    }
}