File tree Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,36 @@ pub enum PersistentList {
14
14
Cons ( Rc < Value > , Rc < PersistentList > , i32 ) ,
15
15
Empty ,
16
16
}
17
+ // Experimental
18
+ /// list!(sym!("+") 1 2);
19
+ /// Meant to look closer to Clojure's native list syntax, to give us some Clojuresque sugar
20
+ #[ macro_export]
21
+ macro_rules! list {
22
+ ( $( $val: expr) * ) => {
23
+ {
24
+ let mut temp_list_as_vec = vec![ ] ;
25
+ $(
26
+ temp_list_as_vec. push( $val. to_rc_value( ) ) ;
27
+ ) *
28
+ temp_list_as_vec. into_iter( ) . collect:: <crate :: persistent_list:: PersistentList >( )
29
+ }
30
+ } ;
31
+ }
32
+ /// list_val!(sym!("+") 1 2);
33
+ /// Meant to look closer to Clojure's native list syntax, to give us some Clojuresque sugar
34
+ /// Returns a Value instead of a PersistentList
35
+ #[ macro_export]
36
+ macro_rules! list_val {
37
+ ( $( $val: expr) * ) => {
38
+ {
39
+ let mut temp_list_as_vec = vec![ ] ;
40
+ $(
41
+ temp_list_as_vec. push( $val. to_rc_value( ) ) ;
42
+ ) *
43
+ temp_list_as_vec. into_iter( ) . collect:: <crate :: persistent_list:: PersistentList >( ) . to_value( )
44
+ }
45
+ } ;
46
+ }
17
47
// @TODO definitely don't do this
18
48
#[ derive( Debug , Clone , Hash ) ]
19
49
struct EmptyHash { }
You can’t perform that action at this time.
0 commit comments