value_box/
lib.rs

1#![cfg_attr(feature = "phlow", allow(incomplete_features))]
2#![cfg_attr(feature = "phlow", feature(specialization))]
3
4#[macro_use]
5extern crate log;
6
7#[cfg(feature = "phlow")]
8extern crate phlow;
9
10pub use error::*;
11
12pub use self::value_box::*;
13use self::value_box_container::*;
14#[cfg(feature = "phlow")]
15use self::value_box_phlow::*;
16
17mod error;
18mod value_box;
19mod value_box_container;
20#[cfg(feature = "phlow")]
21mod value_box_phlow;
22
23#[macro_export]
24#[cfg(not(feature = "phlow"))]
25macro_rules! value_box {
26    ($var:expr) => {{
27        value_box::ValueBox::new($var)
28    }};
29}
30
31#[macro_export]
32#[cfg(feature = "phlow")]
33macro_rules! value_box {
34    ($var:expr) => {{
35        {
36            let value = $var;
37            let phlow_type_fn = crate::phlow_type_fn_of_val(&value);
38            value_box::ValueBox::new_phlow(value, phlow_type_fn)
39        }
40    }};
41}