mirror of
https://github.com/fluencelabs/jsonpath
synced 2025-04-25 09:22:19 +00:00
remove useless function
This commit is contained in:
parent
f1fda2af13
commit
f5717d6d26
@ -199,34 +199,6 @@ enum ExprTerm<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> ExprTerm<'a> {
|
impl<'a> ExprTerm<'a> {
|
||||||
fn is_string(&self) -> bool {
|
|
||||||
match &self {
|
|
||||||
ExprTerm::String(_) => true,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn is_number(&self) -> bool {
|
|
||||||
match &self {
|
|
||||||
ExprTerm::Number(_) => true,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn is_bool(&self) -> bool {
|
|
||||||
match &self {
|
|
||||||
ExprTerm::Bool(_) => true,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn is_json(&self) -> bool {
|
|
||||||
match &self {
|
|
||||||
ExprTerm::Json(_, _) => true,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn cmp<C1: Cmp, C2: Cmp>(
|
fn cmp<C1: Cmp, C2: Cmp>(
|
||||||
&self,
|
&self,
|
||||||
other: &Self,
|
other: &Self,
|
||||||
@ -249,29 +221,58 @@ impl<'a> ExprTerm<'a> {
|
|||||||
ExprTerm::Json(_, _) => other.cmp(&self, reverse_cmp_fn, cmp_fn),
|
ExprTerm::Json(_, _) => other.cmp(&self, reverse_cmp_fn, cmp_fn),
|
||||||
_ => ExprTerm::Bool(cmp_fn.default()),
|
_ => ExprTerm::Bool(cmp_fn.default()),
|
||||||
},
|
},
|
||||||
ExprTerm::Json(fk1, vec1) if other.is_string() => {
|
ExprTerm::Json(fk1, vec1) => {
|
||||||
let s2 = if let ExprTerm::String(s2) = &other {
|
let ret: Vec<&Value> = match &other {
|
||||||
s2
|
ExprTerm::String(s2) => vec1
|
||||||
} else {
|
.iter()
|
||||||
unreachable!()
|
.filter(|v1| match v1 {
|
||||||
};
|
Value::String(s1) => cmp_fn.cmp_string(s1, s2),
|
||||||
|
Value::Object(map1) => {
|
||||||
let ret: Vec<&Value> = vec1
|
if let Some(FilterKey::String(k)) = fk1 {
|
||||||
.iter()
|
if let Some(Value::String(s1)) = map1.get(k) {
|
||||||
.filter(|v1| match v1 {
|
return cmp_fn.cmp_string(s1, s2);
|
||||||
Value::String(s1) => cmp_fn.cmp_string(s1, s2),
|
}
|
||||||
Value::Object(map1) => {
|
|
||||||
if let Some(FilterKey::String(k)) = fk1 {
|
|
||||||
if let Some(Value::String(s1)) = map1.get(k) {
|
|
||||||
return cmp_fn.cmp_string(s1, s2);
|
|
||||||
}
|
}
|
||||||
|
cmp_fn.default()
|
||||||
}
|
}
|
||||||
cmp_fn.default()
|
_ => cmp_fn.default(),
|
||||||
}
|
})
|
||||||
_ => cmp_fn.default(),
|
.map(|v| *v)
|
||||||
})
|
.collect(),
|
||||||
.map(|v| *v)
|
ExprTerm::Number(n2) => vec1
|
||||||
.collect();
|
.iter()
|
||||||
|
.filter(|v1| match v1 {
|
||||||
|
Value::Number(n1) => cmp_fn.cmp_f64(&to_f64(n1), &to_f64(n2)),
|
||||||
|
Value::Object(map1) => {
|
||||||
|
if let Some(FilterKey::String(k)) = fk1 {
|
||||||
|
if let Some(Value::Number(n1)) = map1.get(k) {
|
||||||
|
return cmp_fn.cmp_f64(&to_f64(n1), &to_f64(n2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cmp_fn.default()
|
||||||
|
}
|
||||||
|
_ => cmp_fn.default(),
|
||||||
|
})
|
||||||
|
.map(|v| *v)
|
||||||
|
.collect(),
|
||||||
|
ExprTerm::Bool(b2) => vec1
|
||||||
|
.iter()
|
||||||
|
.filter(|v1| match v1 {
|
||||||
|
Value::Bool(b1) => cmp_fn.cmp_bool(b1, b2),
|
||||||
|
Value::Object(map1) => {
|
||||||
|
if let Some(FilterKey::String(k)) = fk1 {
|
||||||
|
if let Some(Value::Bool(b1)) = map1.get(k) {
|
||||||
|
return cmp_fn.cmp_bool(b1, b2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cmp_fn.default()
|
||||||
|
}
|
||||||
|
_ => cmp_fn.default(),
|
||||||
|
})
|
||||||
|
.map(|v| *v)
|
||||||
|
.collect(),
|
||||||
|
ExprTerm::Json(_, vec2) => cmp_fn.cmp_json(vec1, vec2),
|
||||||
|
};
|
||||||
|
|
||||||
if ret.is_empty() {
|
if ret.is_empty() {
|
||||||
ExprTerm::Bool(cmp_fn.default())
|
ExprTerm::Bool(cmp_fn.default())
|
||||||
@ -279,76 +280,6 @@ impl<'a> ExprTerm<'a> {
|
|||||||
ExprTerm::Json(None, ret)
|
ExprTerm::Json(None, ret)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ExprTerm::Json(fk1, vec1) if other.is_number() => {
|
|
||||||
let n2 = if let ExprTerm::Number(n2) = &other {
|
|
||||||
n2
|
|
||||||
} else {
|
|
||||||
unreachable!()
|
|
||||||
};
|
|
||||||
let ret: Vec<&Value> = vec1
|
|
||||||
.iter()
|
|
||||||
.filter(|v1| match v1 {
|
|
||||||
Value::Number(n1) => cmp_fn.cmp_f64(&to_f64(n1), &to_f64(n2)),
|
|
||||||
Value::Object(map1) => {
|
|
||||||
if let Some(FilterKey::String(k)) = fk1 {
|
|
||||||
if let Some(Value::Number(n1)) = map1.get(k) {
|
|
||||||
return cmp_fn.cmp_f64(&to_f64(n1), &to_f64(n2));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cmp_fn.default()
|
|
||||||
}
|
|
||||||
_ => cmp_fn.default(),
|
|
||||||
})
|
|
||||||
.map(|v| *v)
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
if ret.is_empty() {
|
|
||||||
ExprTerm::Bool(cmp_fn.default())
|
|
||||||
} else {
|
|
||||||
ExprTerm::Json(None, ret)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ExprTerm::Json(fk1, vec1) if other.is_bool() => {
|
|
||||||
let b2 = if let ExprTerm::Bool(b2) = &other {
|
|
||||||
b2
|
|
||||||
} else {
|
|
||||||
unreachable!()
|
|
||||||
};
|
|
||||||
let ret: Vec<&Value> = vec1
|
|
||||||
.iter()
|
|
||||||
.filter(|v1| match v1 {
|
|
||||||
Value::Bool(b1) => cmp_fn.cmp_bool(b1, b2),
|
|
||||||
Value::Object(map1) => {
|
|
||||||
if let Some(FilterKey::String(k)) = fk1 {
|
|
||||||
if let Some(Value::Bool(b1)) = map1.get(k) {
|
|
||||||
return cmp_fn.cmp_bool(b1, b2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cmp_fn.default()
|
|
||||||
}
|
|
||||||
_ => cmp_fn.default(),
|
|
||||||
})
|
|
||||||
.map(|v| *v)
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
if ret.is_empty() {
|
|
||||||
ExprTerm::Bool(cmp_fn.default())
|
|
||||||
} else {
|
|
||||||
ExprTerm::Json(None, ret)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ExprTerm::Json(_, vec1) if other.is_json() => match &other {
|
|
||||||
ExprTerm::Json(_, vec2) => {
|
|
||||||
let vec = cmp_fn.cmp_json(vec1, vec2);
|
|
||||||
if vec.is_empty() {
|
|
||||||
ExprTerm::Bool(cmp_fn.default())
|
|
||||||
} else {
|
|
||||||
ExprTerm::Json(None, vec)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_ => unreachable!(),
|
|
||||||
},
|
|
||||||
_ => unreachable!(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user