floria_plugin_sdk/data/expression/macros/
literal.rs1#[macro_export]
3macro_rules! expression {
4 ( $value:expr $(,)? ) => {
5 $crate::data::Expression::from($value)
6 };
7}
8
9#[macro_export]
11macro_rules! expression_list {
12 () => (
13 $crate::data::Expression::List(
14 $crate::data::ListResource::new(
15 $crate::data::List::default()
16 )
17 )
18 );
19
20 ( $( $value:expr ),+ $(,)? ) => (
21 $crate::data::Expression::List(
22 $crate::data::ListResource::new(
23 $crate::data::List::from(
24 [ $( $crate::expression!( $value ) ),+ ]
25 )
26 )
27 )
28 );
29}
30
31#[macro_export]
33macro_rules! expression_map {
34 () => (
35 $crate::data::Expression::Map(
36 $crate::data::MapResource::new(
37 $crate::data::Map::default()
38 )
39 )
40 );
41
42 ( $( ( $key:expr, $value:expr ) ),+ $(,)? ) => (
43 $crate::data::Expression::Map(
44 $crate::data::MapResource::new(
45 $crate::data::Map::from(
46 ::std::collections::BTreeMap::from(
47 [ $( ( $crate::expression!( $key ), $crate::expression!( $value ) ) ),+ ]
48 )
49 )
50 )
51 )
52 );
53}
54
55#[macro_export]
57macro_rules! expression_vec {
58 ( $( $value:expr ),* $(,)? ) => (
59 vec![ $( $crate::expression!( $value ) ),* ]
60 );
61}
62
63#[allow(unused_imports)]
64pub use {expression, expression_list, expression_map, expression_vec};