mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
43 lines
1.3 KiB
Rust
43 lines
1.3 KiB
Rust
/* 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/. */
|
|
|
|
#[deriving(Eq, PartialEq, Clone, Encodable, Hash)]
|
|
pub enum Namespace {
|
|
Null,
|
|
HTML,
|
|
XML,
|
|
XMLNS,
|
|
XLink,
|
|
SVG,
|
|
MathML,
|
|
Other(String)
|
|
}
|
|
|
|
impl Namespace {
|
|
/// Empty string for "no namespace"
|
|
pub fn from_str(url: &str) -> Namespace {
|
|
match url {
|
|
"http://www.w3.org/1999/xhtml" => HTML,
|
|
"http://www.w3.org/XML/1998/namespace" => XML,
|
|
"http://www.w3.org/2000/xmlns/" => XMLNS,
|
|
"http://www.w3.org/1999/xlink" => XLink,
|
|
"http://www.w3.org/2000/svg" => SVG,
|
|
"http://www.w3.org/1998/Math/MathML" => MathML,
|
|
"" => Null,
|
|
ns => Other(ns.to_string())
|
|
}
|
|
}
|
|
pub fn to_str<'a>(&'a self) -> &'a str {
|
|
match *self {
|
|
Null => "",
|
|
HTML => "http://www.w3.org/1999/xhtml",
|
|
XML => "http://www.w3.org/XML/1998/namespace",
|
|
XMLNS => "http://www.w3.org/2000/xmlns/",
|
|
XLink => "http://www.w3.org/1999/xlink",
|
|
SVG => "http://www.w3.org/2000/svg",
|
|
MathML => "http://www.w3.org/1998/Math/MathML",
|
|
Other(ref x) => x.as_slice()
|
|
}
|
|
}
|
|
}
|