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 {
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,
}
}

View File

@ -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,