pub enum Filter<C = String, V = String, Num = String> {
Show 14 variants
Call(C, Vec<Spanned<Self>>),
Var(V),
Num(Num),
Str(String),
Array(Option<Box<Spanned<Self>>>),
Object(Vec<KeyVal<Spanned<Self>>>),
Id,
Path(Box<Spanned<Self>>, Path<Self>),
Ite(Vec<(Spanned<Self>, Spanned<Self>)>, Box<Spanned<Self>>),
Fold(FoldType, Fold<Box<Spanned<Self>>>),
Try(Box<Spanned<Self>>),
Neg(Box<Spanned<Self>>),
Recurse,
Binary(Box<Spanned<Self>>, BinaryOp, Box<Spanned<Self>>),
}Expand description
Function from value to stream of values, such as .[] | add / length.
Variants§
Call(C, Vec<Spanned<Self>>)
Call to another filter, e.g. map(.+1)
Var(V)
Variable, such as $x (without leading ‘$’)
Num(Num)
Integer or floating-point number.
Str(String)
String
Array(Option<Box<Spanned<Self>>>)
Array, empty if None
Object(Vec<KeyVal<Spanned<Self>>>)
Object, specifying its key-value pairs
Id
Identity, i.e. .
Path(Box<Spanned<Self>>, Path<Self>)
Path such as ., .a, .[][]."b"
Ite(Vec<(Spanned<Self>, Spanned<Self>)>, Box<Spanned<Self>>)
If-then-else
Fold(FoldType, Fold<Box<Spanned<Self>>>)
reduce and foreach, e.g. reduce .[] as $x (0; .+$x)
The first field indicates whether to yield intermediate results
(false for reduce and true for foreach).
Try(Box<Spanned<Self>>)
Error suppression, e.g. keys?
Neg(Box<Spanned<Self>>)
Negation
Recurse
Recursion (..)
Binary(Box<Spanned<Self>>, BinaryOp, Box<Spanned<Self>>)
Binary operation, such as 0, 1, [] | .[], .[] += 1, 0 == 0, …
Trait Implementations§
source§impl<'de, C, V, Num> Deserialize<'de> for Filter<C, V, Num>where
C: Deserialize<'de>,
V: Deserialize<'de>,
Num: Deserialize<'de>,
impl<'de, C, V, Num> Deserialize<'de> for Filter<C, V, Num>where C: Deserialize<'de>, V: Deserialize<'de>, Num: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more