about summary refs log tree commit diff
path: root/src/libsyntax/ext/deriving/mod.rs
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2013-09-16 21:12:18 -0700
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2013-10-02 07:55:41 -0700
commit0feaccf5260bc59f7ee4294a2ecc875da669ad30 (patch)
tree633a987e41b539c7d52acde7479f37a87f72022d /src/libsyntax/ext/deriving/mod.rs
parentd9d1dfc1955fabb7ee3a55e9c84cdcd5aad67417 (diff)
syntax: Add #[deriving(FromPrimitive)] syntax extension
Right now this only works for c-style enums.
Diffstat (limited to 'src/libsyntax/ext/deriving/mod.rs')
-rw-r--r--src/libsyntax/ext/deriving/mod.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libsyntax/ext/deriving/mod.rs b/src/libsyntax/ext/deriving/mod.rs
index a428c6704f9..3e65f7bdefb 100644
--- a/src/libsyntax/ext/deriving/mod.rs
+++ b/src/libsyntax/ext/deriving/mod.rs
@@ -32,6 +32,7 @@ pub mod rand;
 pub mod to_str;
 pub mod zero;
 pub mod default;
+pub mod primitive;
 
 #[path="cmp/eq.rs"]
 pub mod eq;
@@ -97,9 +98,12 @@ pub fn expand_meta_deriving(cx: @ExtCtxt,
                             "Rand" => expand!(rand::expand_deriving_rand),
 
                             "ToStr" => expand!(to_str::expand_deriving_to_str),
+
                             "Zero" => expand!(zero::expand_deriving_zero),
                             "Default" => expand!(default::expand_deriving_default),
 
+                            "FromPrimitive" => expand!(primitive::expand_deriving_from_primitive),
+
                             ref tname => {
                                 cx.span_err(titem.span, format!("unknown \
                                     `deriving` trait: `{}`", *tname));