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}