jarq 0.2.1

An interactive jq-like JSON query tool with a TUI
Documentation
use super::builtins::Builtin;

/// Object key - either a static string or a dynamic filter expression
#[derive(Debug, Clone, PartialEq)]
pub enum ObjectKey {
    Static(String),       // identifier or "quoted-string"
    Dynamic(Box<Filter>), // (.expr) - evaluated at runtime
}

#[derive(Debug, Clone, PartialEq)]
pub enum Filter {
    Identity,
    Field(String),
    Index(i64),
    Iterate,
    Pipe(Box<Filter>, Box<Filter>),
    Builtin(Builtin),
    Array(Vec<Filter>),                  // [.foo, .bar]
    Object(Vec<(ObjectKey, Filter)>),    // {key: .value} with static or dynamic keys
}