Struct Expression

Source
pub struct Expression<'a> { /* private fields */ }
Expand description

A compiled JMESPath expression.

The compiled expression can be used multiple times without incurring the cost of re-parsing the expression each time. The expression may be shared between threads if JMESPath is compiled with the sync feature, which forces the use of an Arc instead of an Rc for runtime variables.

Implementations§

Source§

impl<'a> Expression<'a>

Source

pub fn new<S>(expression: S, ast: Ast, runtime: &'a Runtime) -> Expression<'a>
where S: Into<String>,

Creates a new JMESPath expression.

Normally you will create expressions using either jmespatch::compile() or using a jmespatch::Runtime.

Source

pub fn search<T: ToJmespath>(&self, data: T) -> Result<Rcvar, JmespathError>

Returns the result of searching data with the compiled expression.

The SearchResult contains a JMESPath Rcvar, or a reference counted Variable. This value can be used directly like a JSON object. Alternatively, Variable does implement Serde serialzation and deserialization, so it can easily be marshalled to another type.

Source

pub fn as_str(&self) -> &str

Returns the JMESPath expression from which the Expression was compiled.

Note that this is the same value that is returned by calling to_string.

Source

pub fn as_ast(&self) -> &Ast

Returns the AST of the parsed JMESPath expression.

This can be useful for debugging purposes, caching, etc.

Trait Implementations§

Source§

impl<'a> Clone for Expression<'a>

Source§

fn clone(&self) -> Expression<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Expression<'a>

Source§

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

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

impl<'a> Display for Expression<'a>

Source§

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

Shows the jmespath expression as a string.

Source§

impl<'a> PartialEq for Expression<'a>

Source§

fn eq(&self, other: &Expression<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<'a> Freeze for Expression<'a>

§

impl<'a> !RefUnwindSafe for Expression<'a>

§

impl<'a> !Send for Expression<'a>

§

impl<'a> !Sync for Expression<'a>

§

impl<'a> Unpin for Expression<'a>

§

impl<'a> !UnwindSafe for Expression<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

fn to_string(&self) -> String

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

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.