[−][src]Trait cherries::node::Cherries
Trait for active expression node.
Required methods
fn name(&self) -> &String
fn value(&self) -> Result<f32, String>
fn symbol(&self) -> String
fn to_json(&self) -> String
Implementors
impl<T: Clone + Debug> Cherries for Cherry<T>
[src]
fn name(&self) -> &String
[src]
Returns reference of node name .
Examples
extern crate cherries; use cherries::node::{Leaf, Cherries}; fn main() { let node = Leaf::new().value(1).name("node").build(); assert_eq!(node.name(), &"node".to_string()); }
fn value(&self) -> Result<f32, String>
[src]
Returns node value or error string.
This method try to parse value from format string for uom support. There should be some other better way (help me, please!).
Examples
extern crate cherries; use cherries::node::{Leaf, Cherries}; extern crate uom; use uom::si::{f32::*, length::meter}; fn main() { let node = Leaf::new().value(1).name("node").build(); assert_eq!(node.value(), Ok(1.0)); let node = Leaf::new().value(Length::new::<meter>(2.0)).name("node").build(); assert_eq!(node.value(), Ok(2.0)); }
fn symbol(&self) -> String
[src]
Returns units symbol.
Returns node qunatity units symbol string (if has quantity) or dimensionless
.
Examples
extern crate cherries; use cherries::node::{Leaf, Cherries}; extern crate uom; use uom::si::{f32::*, length::meter}; fn main() { let node = Leaf::new().value(1).name("node").build(); assert_eq!(node.symbol(), "dimensionless".to_string()); let node = Leaf::new().value(Length::new::<meter>(2.0)).name("node").build(); assert_eq!(node.symbol(), "m^1".to_string()); }
fn to_json(&self) -> String
[src]
Returns expression log as json string.
The json has label (string)
, value (number)
, units (string)
, and subexpr (array of object)
.
Examples
extern crate cherries; use cherries::node::{Leaf, Cherries}; extern crate uom; use uom::si::{f32::*, length::meter}; fn main() { let x = Leaf::new().value(1.0).name("x").build(); let y = Leaf::new().value(Length::new::<meter>(2.0)).name("y").build(); let res = x * y; assert_eq!( res.to_json(), "{\ \"label\":\"(mul)\",\ \"value\":2,\ \"unit\":\"m^1\",\ \"subexpr\":[\ {\ \"label\":\"x\",\ \"value\":1,\ \"unit\":\"dimensionless\"\ },\ {\ \"label\":\"y\",\ \"value\":2,\ \"unit\":\"m^1\"\ }\ ]\ }".to_string() ); }