aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/macros.rs
diff options
context:
space:
mode:
authorJack Moffitt <jack@metajack.im>2014-08-28 09:34:23 -0600
committerJack Moffitt <jack@metajack.im>2014-09-08 20:21:42 -0600
commitc6ab60dbfc6da7b4f800c9e40893c8b58413960c (patch)
treed1d74076cf7fa20e4f77ec7cb82cae98b67362cb /components/script/dom/macros.rs
parentdb2f642c32fc5bed445bb6f2e45b0f6f0b4342cf (diff)
downloadservo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.tar.gz
servo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.zip
Cargoify servo
Diffstat (limited to 'components/script/dom/macros.rs')
-rw-r--r--components/script/dom/macros.rs44
1 files changed, 44 insertions, 0 deletions
diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs
new file mode 100644
index 00000000000..6cfca77593d
--- /dev/null
+++ b/components/script/dom/macros.rs
@@ -0,0 +1,44 @@
+/* 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/. */
+
+#![macro_escape]
+
+#[macro_export]
+macro_rules! make_getter(
+ ( $attr:ident ) => (
+ fn $attr(&self) -> DOMString {
+ use dom::element::{Element, AttributeHandlers};
+ use dom::bindings::codegen::InheritTypes::ElementCast;
+ use std::ascii::StrAsciiExt;
+ let element: &JSRef<Element> = ElementCast::from_ref(self);
+ element.get_string_attribute(stringify!($attr).to_ascii_lower().as_slice())
+ }
+ );
+)
+
+#[macro_export]
+macro_rules! make_bool_getter(
+ ( $attr:ident ) => (
+ fn $attr(&self) -> bool {
+ use dom::element::{Element, AttributeHandlers};
+ use dom::bindings::codegen::InheritTypes::ElementCast;
+ use std::ascii::StrAsciiExt;
+ let element: &JSRef<Element> = ElementCast::from_ref(self);
+ element.has_attribute(stringify!($attr).to_ascii_lower().as_slice())
+ }
+ );
+)
+
+#[macro_export]
+macro_rules! make_uint_getter(
+ ( $attr:ident ) => (
+ fn $attr(&self) -> u32 {
+ use dom::element::{Element, AttributeHandlers};
+ use dom::bindings::codegen::InheritTypes::ElementCast;
+ use std::ascii::StrAsciiExt;
+ let element: &JSRef<Element> = ElementCast::from_ref(self);
+ element.get_uint_attribute(stringify!($attr).to_ascii_lower().as_slice())
+ }
+ );
+)