Function meval::de::as_f64
[−]
[src]
pub fn as_f64<D: Deserializer>(deserializer: D) -> Result<f64, D::Error>
Deserialize into Expr
and then evaluate using Expr::eval
.
Example
#[macro_use] extern crate serde_derive; extern crate toml; extern crate meval; use meval::{Expr, Context}; #[derive(Deserialize)] struct Foo { #[serde(deserialize_with = "meval::de::as_f64")] x: f64, } fn main() { let foo: Foo = toml::from_str(r#" x = "cos(1.)" "#).unwrap(); assert_eq!(foo.x, 1f64.cos()); let foo: Result<Foo, _> = toml::from_str(r#" x = "cos(x)" "#); assert!(foo.is_err()); }
See crate root for another example.