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:
parent
0f41b0effe
commit
7e5bb999e4
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue