reactive_graph_std_numeric/behaviour/
number.rs1use 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}