|
| 1 | +use std::convert::TryInto as _; |
1 | 2 | use std::error::Error; |
2 | 3 |
|
3 | 4 | use crate::format; |
@@ -27,14 +28,27 @@ fn from_ron_value( |
27 | 28 | ron::Value::Bool(value) => ValueKind::Boolean(value), |
28 | 29 |
|
29 | 30 | ron::Value::Number(value) => match value { |
30 | | - ron::Number::Float(value) => ValueKind::Float(value.get()), |
31 | | - ron::Number::Integer(value) => ValueKind::I64(value), |
| 31 | + ron::Number::F32(value) => ValueKind::Float(value.get().into()), |
| 32 | + ron::Number::F64(value) => ValueKind::Float(value.get()), |
| 33 | + ron::Number::I8(value) => ValueKind::I64(value.into()), |
| 34 | + ron::Number::I16(value) => ValueKind::I64(value.into()), |
| 35 | + ron::Number::I32(value) => ValueKind::I64(value.into()), |
| 36 | + ron::Number::I64(value) => ValueKind::I64(value), |
| 37 | + ron::Number::U8(value) => ValueKind::I64(value.into()), |
| 38 | + ron::Number::U16(value) => ValueKind::I64(value.into()), |
| 39 | + ron::Number::U32(value) => ValueKind::I64(value.into()), |
| 40 | + ron::Number::U64(value) => ValueKind::I64(value.try_into()?), |
| 41 | + _ => Err(crate::ConfigError::Message( |
| 42 | + "unsupported numeric type".to_owned(), |
| 43 | + ))?, |
32 | 44 | }, |
33 | 45 |
|
34 | 46 | ron::Value::Char(value) => ValueKind::String(value.to_string()), |
35 | 47 |
|
36 | 48 | ron::Value::String(value) => ValueKind::String(value), |
37 | 49 |
|
| 50 | + ron::Value::Bytes(_) => Err(crate::ConfigError::Message("unsupported bytes".to_owned()))?, |
| 51 | + |
38 | 52 | ron::Value::Seq(values) => { |
39 | 53 | let array = values |
40 | 54 | .into_iter() |
|
0 commit comments