pub enum Filter<C = String, V = String, Num = String> {
Show 15 variants
Call(C, Vec<Spanned<Self>>),
Var(V),
Num(Num),
Str(Box<Str<Spanned<Self>>>),
Array(Option<Box<Spanned<Self>>>),
Object(Vec<KeyVal<Spanned<Self>>>),
Id,
Path(Box<Spanned<Self>>, Path<Self>),
Ite(Vec<(Spanned<Self>, Spanned<Self>)>, Option<Box<Spanned<Self>>>),
Fold(FoldType, Fold<Box<Spanned<Self>>>),
TryCatch(Box<Spanned<Self>>, Option<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(Box<Str<Spanned<Self>>>)
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>)>, Option<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).
TryCatch(Box<Spanned<Self>>, Option<Box<Spanned<Self>>>)
try and optional catch
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, …
Implementations§
Trait Implementations§
source§impl<'de, C, V, Num> Deserialize<'de> for Filter<C, V, Num>
impl<'de, C, V, Num> Deserialize<'de> for Filter<C, V, Num>
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
Auto Trait Implementations§
impl<C, V, Num> RefUnwindSafe for Filter<C, V, Num>
impl<C, V, Num> Send for Filter<C, V, Num>
impl<C, V, Num> Sync for Filter<C, V, Num>
impl<C, V, Num> Unpin for Filter<C, V, Num>
impl<C, V, Num> UnwindSafe for Filter<C, V, Num>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more