pub struct JsonPathQuery { /* private fields */ }
Expand description

JSONPath query structure represented by the root link of the JsonPathQueryNode list.

Implementations§

source§

impl JsonPathQuery

source

pub fn root(&self) -> &JsonPathQueryNode

Retrieve reference to the root node.

It is guaranteed that the root is the JsonPathQueryNode::Root variant and always exists.

source

pub fn parse(query_string: &str) -> Result<Self, ParserError>

Parse a query string into a JsonPathQuery.

Errors

Will return a ParserError if the query_string does not conform to the JSONPath grammar. See its documentation for details.

Examples found in repository?
examples/approx_spans_usage.rs (line 20)
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
fn main() -> Result<ExitCode, Box<dyn Error>> {
    let args: Vec<_> = env::args().collect();

    if args.len() != 3 {
        eprintln!("provide exactly two arguments, query and file path");
        return Ok(ExitCode::FAILURE);
    }

    let query_arg = &args[1];
    let file_path = &args[2];

    let query = JsonPathQuery::parse(query_arg)?;
    let file = fs::File::open(file_path)?;
    let input = unsafe { MmapInput::map_file(&file)? };
    let stdout_lock = io::stdout().lock();
    let mut sink = MatchWriter::from(stdout_lock);

    let engine = RsonpathEngine::compile_query(&query)?;

    engine.approximate_spans(&input, &mut sink)?;

    Ok(ExitCode::SUCCESS)
}
source

pub fn new(node: Box<JsonPathQueryNode>) -> Self

Create a query from a root node.

If node is not the JsonPathQueryNode::Root variant it will be automatically wrapped into a JsonPathQueryNode::Root node.

Trait Implementations§

source§

impl<'a> Arbitrary<'a> for JsonPathQuery

Available on crate feature arbitrary only.
source§

fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>

Generate an arbitrary value of Self from the given unstructured data. Read more
source§

fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
source§

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
source§

impl Debug for JsonPathQuery

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for JsonPathQuery

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<JsonPathQueryBuilder> for JsonPathQuery

source§

fn from(value: JsonPathQueryBuilder) -> Self

Converts to this type from the input type.
source§

impl PartialEq<JsonPathQuery> for JsonPathQuery

source§

fn eq(&self, other: &JsonPathQuery) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for JsonPathQuery

source§

impl StructuralEq for JsonPathQuery

source§

impl StructuralPartialEq for JsonPathQuery

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.