Skip to content

Commit 6c2cfd0

Browse files
committed
fix: Update to latest ron
1 parent 16ef680 commit 6c2cfd0

File tree

4 files changed

+29
-16
lines changed

4 files changed

+29
-16
lines changed

Cargo.lock

Lines changed: 8 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ toml = { version = "0.9.6", optional = true, default-features = false, features
140140
serde_json = { version = "1.0.145", optional = true }
141141
yaml-rust2 = { version = "0.10.4", optional = true }
142142
rust-ini = { version = "0.21.3", optional = true }
143-
ron = { version = "0.8.1", optional = true }
143+
ron = { version = "0.12.0", optional = true }
144144
json5_rs = { version = "0.4.1", optional = true, package = "json5" }
145145
corn = { version = "0.10.0", optional = true, package = "libcorn" }
146146
indexmap = { version = "2.11.4", features = ["serde"], optional = true }

src/file/format/ron.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use std::convert::TryInto as _;
12
use std::error::Error;
23

34
use crate::format;
@@ -27,14 +28,27 @@ fn from_ron_value(
2728
ron::Value::Bool(value) => ValueKind::Boolean(value),
2829

2930
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+
))?,
3244
},
3345

3446
ron::Value::Char(value) => ValueKind::String(value.to_string()),
3547

3648
ron::Value::String(value) => ValueKind::String(value),
3749

50+
ron::Value::Bytes(_) => Err(crate::ConfigError::Message("unsupported bytes".to_owned()))?,
51+
3852
ron::Value::Seq(values) => {
3953
let array = values
4054
.into_iter()

tests/testsuite/file_ron.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@ fn test_error_parse() {
115115
.build();
116116

117117
assert!(res.is_err());
118-
assert_data_eq!(res.unwrap_err().to_string(), str!["5:1: Expected colon"]);
118+
assert_data_eq!(
119+
res.unwrap_err().to_string(),
120+
str!["4:8-5:1: Expected colon"]
121+
);
119122
}
120123

121124
#[test]

0 commit comments

Comments
 (0)