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
This commit is contained in:
iceiix 2018-10-23 18:47:21 -07:00 committed by GitHub
parent 0f41b0effe
commit 7e5bb999e4
2 changed files with 12 additions and 12 deletions

View File

@ -38,12 +38,12 @@ impl Component {
pub fn from_value(v: &serde_json::Value) -> Self { pub fn from_value(v: &serde_json::Value) -> Self {
let mut modifier = Modifier::from_value(v); let mut modifier = Modifier::from_value(v);
if let Some(val) = v.as_string() { if let Some(val) = v.as_str() {
Component::Text(TextComponent { Component::Text(TextComponent {
text: val.to_owned(), text: val.to_owned(),
modifier: modifier, modifier: modifier,
}) })
} else if v.find("text").is_some() { } else if v.get("text").is_some() {
Component::Text(TextComponent::from_value(v, modifier)) Component::Text(TextComponent::from_value(v, modifier))
} else { } else {
modifier.color = Some(Color::RGB(255, 0, 0)); modifier.color = Some(Color::RGB(255, 0, 0));
@ -92,17 +92,17 @@ pub struct Modifier {
impl Modifier { impl Modifier {
pub fn from_value(v: &serde_json::Value) -> Self { pub fn from_value(v: &serde_json::Value) -> Self {
let mut m = Modifier { let mut m = Modifier {
bold: v.find("bold").map_or(Option::None, |v| v.as_boolean()), bold: v.get("bold").map_or(Option::None, |v| v.as_bool()),
italic: v.find("italic").map_or(Option::None, |v| v.as_boolean()), italic: v.get("italic").map_or(Option::None, |v| v.as_bool()),
underlined: v.find("underlined").map_or(Option::None, |v| v.as_boolean()), underlined: v.get("underlined").map_or(Option::None, |v| v.as_bool()),
strikethrough: v.find("strikethrough").map_or(Option::None, |v| v.as_boolean()), strikethrough: v.get("strikethrough").map_or(Option::None, |v| v.as_bool()),
obfuscated: v.find("obfuscated").map_or(Option::None, |v| v.as_boolean()), obfuscated: v.get("obfuscated").map_or(Option::None, |v| v.as_bool()),
color: v.find("color") color: v.get("color")
.map_or(Option::None, |v| v.as_string()) .map_or(Option::None, |v| v.as_str())
.map(|v| Color::from_string(&v.to_owned())), .map(|v| Color::from_string(&v.to_owned())),
extra: Option::None, extra: Option::None,
}; };
if let Some(extra) = v.find("extra") { if let Some(extra) = v.get("extra") {
if let Some(data) = extra.as_array() { if let Some(data) = extra.as_array() {
let mut ex = Vec::new(); let mut ex = Vec::new();
for e in data { for e in data {
@ -135,7 +135,7 @@ impl TextComponent {
pub fn from_value(v: &serde_json::Value, modifier: Modifier) -> Self { pub fn from_value(v: &serde_json::Value, modifier: Modifier) -> Self {
TextComponent { 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, modifier: modifier,
} }
} }

View File

@ -127,7 +127,7 @@ impl Tag {
} }
} }
pub fn as_string(&self) -> Option<&str> { pub fn as_str(&self) -> Option<&str> {
match *self { match *self {
Tag::String(ref val) => Some(&val[..]), Tag::String(ref val) => Some(&val[..]),
_ => None, _ => None,