1use super::*;
2
3impl From<Float> for Value {
4 fn from(value: Float) -> Self {
5 Self::Float(value)
6 }
7}
8
9impl From<f32> for Value {
10 fn from(value: f32) -> Self {
11 Self::Float(value.into())
12 }
13}
14
15impl From<f64> for Value {
16 fn from(value: f64) -> Self {
17 Self::Float(value.into())
18 }
19}
20
21impl TryFrom<Value> for f32 {
22 type Error = Error;
23 fn try_from(value: Value) -> Result<Self> {
24 value.to_f32()
25 }
26}
27
28impl TryFrom<&Value> for f32 {
29 type Error = Error;
30 fn try_from(value: &Value) -> Result<Self> {
31 value.to_f32()
32 }
33}
34
35impl TryFrom<Value> for f64 {
36 type Error = Error;
37 fn try_from(value: Value) -> Result<Self> {
38 value.to_f64()
39 }
40}
41
42impl TryFrom<&Value> for f64 {
43 type Error = Error;
44 fn try_from(value: &Value) -> Result<Self> {
45 value.to_f64()
46 }
47}
48
49impl TryFrom<Value> for Float {
50 type Error = Error;
51 fn try_from(value: Value) -> Result<Self> {
52 match value {
53 Value::Float(f) => Ok(f),
54 _ => Err(Error::IncompatibleType(value.data_type())),
55 }
56 }
57}