From 7e5bb999e4571497745f1c3c4d5011b423329f5e Mon Sep 17 00:00:00 2001 From: iceiix <43691553+iceiix@users.noreply.github.com> Date: Tue, 23 Oct 2018 18:47:21 -0700 Subject: [PATCH] Update to serde_json 1.0 (#6) * Replace find() with get() * Update for renamed as_string->as_str and as_boolean->as_bool https://github.com/serde-rs/json/releases/tag/v0.8.0 Value::as_string() has been renamed to as_str() and Value::as_boolean() has been renamed to as_bool() to improve consistency https://github.com/serde-rs/json/issues/126 * No serde_json::Value::I64/U64/F64 anymore, only Number * Update from lookup() to pointer(), using JSON pointer syntax https://github.com/iceiix/steven/pull/6#issuecomment-432472123 * Remove unused and removed ObjectBuilder import * Use into_iter().collect() to convert BTreeMap to serde_json::Map * Change parse_rules to accept serde_json::Map instead of BTreeMap * Remove unused serde_json macro_use * Update Cargo.lock --- protocol/src/format.rs | 22 +++++++++++----------- protocol/src/nbt/mod.rs | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/protocol/src/format.rs b/protocol/src/format.rs index e75f3ec..9eb6ceb 100644 --- a/protocol/src/format.rs +++ b/protocol/src/format.rs @@ -38,12 +38,12 @@ impl Component { pub fn from_value(v: &serde_json::Value) -> Self { let mut modifier = Modifier::from_value(v); - if let Some(val) = v.as_string() { + if let Some(val) = v.as_str() { Component::Text(TextComponent { text: val.to_owned(), modifier: modifier, }) - } else if v.find("text").is_some() { + } else if v.get("text").is_some() { Component::Text(TextComponent::from_value(v, modifier)) } else { modifier.color = Some(Color::RGB(255, 0, 0)); @@ -92,17 +92,17 @@ pub struct Modifier { impl Modifier { pub fn from_value(v: &serde_json::Value) -> Self { let mut m = Modifier { - bold: v.find("bold").map_or(Option::None, |v| v.as_boolean()), - italic: v.find("italic").map_or(Option::None, |v| v.as_boolean()), - underlined: v.find("underlined").map_or(Option::None, |v| v.as_boolean()), - strikethrough: v.find("strikethrough").map_or(Option::None, |v| v.as_boolean()), - obfuscated: v.find("obfuscated").map_or(Option::None, |v| v.as_boolean()), - color: v.find("color") - .map_or(Option::None, |v| v.as_string()) + bold: v.get("bold").map_or(Option::None, |v| v.as_bool()), + italic: v.get("italic").map_or(Option::None, |v| v.as_bool()), + underlined: v.get("underlined").map_or(Option::None, |v| v.as_bool()), + strikethrough: v.get("strikethrough").map_or(Option::None, |v| v.as_bool()), + obfuscated: v.get("obfuscated").map_or(Option::None, |v| v.as_bool()), + color: v.get("color") + .map_or(Option::None, |v| v.as_str()) .map(|v| Color::from_string(&v.to_owned())), extra: Option::None, }; - if let Some(extra) = v.find("extra") { + if let Some(extra) = v.get("extra") { if let Some(data) = extra.as_array() { let mut ex = Vec::new(); for e in data { @@ -135,7 +135,7 @@ impl TextComponent { pub fn from_value(v: &serde_json::Value, modifier: Modifier) -> Self { TextComponent { - text: v.find("text").unwrap().as_string().unwrap_or("").to_owned(), + text: v.get("text").unwrap().as_str().unwrap_or("").to_owned(), modifier: modifier, } } diff --git a/protocol/src/nbt/mod.rs b/protocol/src/nbt/mod.rs index 0ded16d..db4d302 100644 --- a/protocol/src/nbt/mod.rs +++ b/protocol/src/nbt/mod.rs @@ -127,7 +127,7 @@ impl Tag { } } - pub fn as_string(&self) -> Option<&str> { + pub fn as_str(&self) -> Option<&str> { match *self { Tag::String(ref val) => Some(&val[..]), _ => None,