Skip to main content

cbor_core/value/
float.rs

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 f64 {
29    type Error = Error;
30    fn try_from(value: Value) -> Result<Self> {
31        value.to_f64()
32    }
33}
34
35impl TryFrom<Value> for Float {
36    type Error = Error;
37    fn try_from(value: Value) -> Result<Self> {
38        match value {
39            Value::Float(f) => Ok(f),
40            _ => Err(Error::IncompatibleType),
41        }
42    }
43}