reactive_graph_std_arithmetic/behaviour/
number.rs

1use num_traits::FromPrimitive;
2use serde_json::Value;
3
4pub fn as_f64(v: Value) -> Option<f64> {
5    if let Some(v) = v.as_f64() {
6        return Some(v);
7    }
8    if let Some(v) = v.as_i64() {
9        return f64::from_i64(v);
10    }
11    if let Some(v) = v.as_u64() {
12        return f64::from_u64(v);
13    }
14    None
15}
16
17pub fn as_i64(v: Value) -> Option<i64> {
18    if let Some(v) = v.as_i64() {
19        return Some(v);
20    }
21    if let Some(v) = v.as_u64() {
22        return i64::from_u64(v);
23    }
24    if let Some(v) = v.as_f64() {
25        return i64::from_f64(v);
26    }
27    None
28}
29
30pub fn as_u64(v: Value) -> Option<u64> {
31    if let Some(v) = v.as_u64() {
32        return Some(v);
33    }
34    if let Some(v) = v.as_i64() {
35        return u64::from_i64(v);
36    }
37    if let Some(v) = v.as_f64() {
38        return u64::from_f64(v);
39    }
40    None
41}