|
|
@ -317,6 +317,17 @@ impl Loopable for serde_json::Value {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
impl Sizable for serde_json::Value {
|
|
|
|
impl Sizable for serde_json::Value {
|
|
|
|
|
|
|
|
fn is_castable(&self) -> bool {
|
|
|
|
|
|
|
|
match self {
|
|
|
|
|
|
|
|
serde_json::Value::Null => true,
|
|
|
|
|
|
|
|
serde_json::Value::Bool(_) => false,
|
|
|
|
|
|
|
|
serde_json::Value::Number(_) => true,
|
|
|
|
|
|
|
|
serde_json::Value::String(_) => true,
|
|
|
|
|
|
|
|
serde_json::Value::Array(_) => true,
|
|
|
|
|
|
|
|
serde_json::Value::Object(_) => true,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fn get_size<'a>(&'a self) -> Option<IceResult<'a>> {
|
|
|
|
fn get_size<'a>(&'a self) -> Option<IceResult<'a>> {
|
|
|
|
match self {
|
|
|
|
match self {
|
|
|
|
serde_json::Value::Null => {
|
|
|
|
serde_json::Value::Null => {
|
|
|
@ -368,7 +379,7 @@ impl Castable for serde_json::Value {
|
|
|
|
(serde_json::Value::Array(_), "number") => None,
|
|
|
|
(serde_json::Value::Array(_), "number") => None,
|
|
|
|
(serde_json::Value::Object(_), "number") => None,
|
|
|
|
(serde_json::Value::Object(_), "number") => None,
|
|
|
|
|
|
|
|
|
|
|
|
(serde_json::Value::String(text), "string") => Some(IceResult::from_borrowed(self)),
|
|
|
|
(serde_json::Value::String(_), "string") => Some(IceResult::from_borrowed(self)),
|
|
|
|
(serde_json::Value::Number(num), "string") => Some(IceResult::from_owned(
|
|
|
|
(serde_json::Value::Number(num), "string") => Some(IceResult::from_owned(
|
|
|
|
serde_json::Value::String(num.to_string()),
|
|
|
|
serde_json::Value::String(num.to_string()),
|
|
|
|
)),
|
|
|
|
)),
|
|
|
|