Enum jmespath::Variable
[−]
[src]
pub enum Variable { Null, String(String), Bool(bool), Number(f64), Array(Vec<Rcvar>), Object(BTreeMap<String, Rcvar>), Expref(Ast), }
JMESPath variable.
Variants
Null
String(String)
Bool(bool)
Number(f64)
Array(Vec<Rcvar>)
Object(BTreeMap<String, Rcvar>)
Expref(Ast)
Methods
impl Variable
[src]
fn from_json(s: &str) -> Result<Self, String>
Create a JMESPath Variable from a JSON encoded string.
fn is_array(&self) -> bool
Returns true if the Variable is an Array. Returns false otherwise.
fn as_array(&self) -> Option<&Vec<Rcvar>>
If the Variable value is an Array, returns the associated vector. Returns None otherwise.
fn is_object(&self) -> bool
Returns true if the value is an Object.
fn as_object(&self) -> Option<&BTreeMap<String, Rcvar>>
If the value is an Object, returns the associated BTreeMap. Returns None otherwise.
fn is_string(&self) -> bool
Returns true if the value is a String. Returns false otherwise.
fn as_string(&self) -> Option<&String>
If the value is a String, returns the associated str. Returns None otherwise.
fn is_number(&self) -> bool
Returns true if the value is a Number. Returns false otherwise.
fn as_number(&self) -> Option<f64>
If the value is a number, return or cast it to a f64. Returns None otherwise.
fn is_boolean(&self) -> bool
Returns true if the value is a Boolean. Returns false otherwise.
fn as_boolean(&self) -> Option<bool>
If the value is a Boolean, returns the associated bool. Returns None otherwise.
fn is_null(&self) -> bool
Returns true if the value is a Null. Returns false otherwise.
fn as_null(&self) -> Option<()>
If the value is a Null, returns (). Returns None otherwise.
fn is_expref(&self) -> bool
Returns true if the value is an expression reference. Returns false otherwise.
fn as_expref(&self) -> Option<&Ast>
If the value is an expression reference, returns the associated Ast node. Returns None otherwise.
fn get_field(&self, key: &str) -> Rcvar
If the value is an object, returns the value associated with the provided key. Otherwise, returns Null.
fn get_index(&self, index: usize) -> Rcvar
If the value is an array, then gets an array value by index. Otherwise returns Null.
fn get_negative_index(&self, index: usize) -> Rcvar
Retrieves an index from the end of an array.
Returns Null if not an array or if the index is not present. The formula for determining the index position is length - index (i.e., an index of 0 or 1 is treated as the end of the array).
fn is_truthy(&self) -> bool
Returns true or false based on if the Variable value is considered truthy.
fn get_type(&self) -> JmespathType
Returns the JMESPath type name of a Variable value.
fn compare(&self, cmp: &Comparator, value: &Variable) -> Option<bool>
Compares two Variable values using a comparator.
fn slice(
&self,
start: &Option<i32>,
stop: &Option<i32>,
step: i32
) -> Option<Vec<Rcvar>>
&self,
start: &Option<i32>,
stop: &Option<i32>,
step: i32
) -> Option<Vec<Rcvar>>
Returns a slice of the variable if the variable is an array.
Trait Implementations
impl Clone for Variable
[src]
fn clone(&self) -> Variable
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl Debug for Variable
[src]
impl Eq for Variable
[src]
impl PartialEq for Variable
[src]
Implement PartialEq for looser floating point comparisons.
fn eq(&self, other: &Variable) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl PartialOrd<Variable> for Variable
[src]
Implement PartialOrd so that Ast can be in the PartialOrd of Variable.
fn partial_cmp(&self, other: &Variable) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Variable) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Variable) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Variable) -> bool
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Variable) -> bool
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl Ord for Variable
[src]
fn cmp(&self, other: &Self) -> Ordering
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
ord_max_min
)Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
ord_max_min
)Compares and returns the minimum of two values. Read more
impl Display for Variable
[src]
Write the JSON representation of a value, converting expref to a JSON string containing the debug dump of the expref variable.
fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl<'a> From<&'a Value> for Variable
[src]
Convert a borrowed Value to a Variable.
impl From<Value> for Variable
[src]
Slightly optimized method for converting from an owned Value.
impl<'de> Deserialize<'de> for Variable
[src]
Serde deserialization for Variable
fn deserialize<D>(deserializer: D) -> Result<Variable, D::Error> where
D: Deserializer<'de>,
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl<'de> Deserializer<'de> for Variable
[src]
type Error = Error
The error type that can be returned if some error occurs during deserialization. Read more
fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Require the Deserializer
to figure out how to drive the visitor based on what data type is in the input. Read more
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting an optional value. Read more
fn deserialize_enum<V>(
self,
_name: &str,
_variants: &'static [&'static str],
visitor: V
) -> Result<V::Value, Error> where
V: Visitor<'de>,
self,
_name: &str,
_variants: &'static [&'static str],
visitor: V
) -> Result<V::Value, Error> where
V: Visitor<'de>,
Hint that the Deserialize
type is expecting an enum value with a particular name and possible variants. Read more
fn deserialize_newtype_struct<V>(
self,
_name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
self,
_name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a newtype struct with a particular name. Read more
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a bool
value.
fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a u8
value.
fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a u16
value.
fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a u32
value.
fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a u64
value.
fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting an i8
value.
fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting an i16
value.
fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting an i32
value.
fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting an i64
value.
fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a f32
value.
fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a f64
value.
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a char
value.
fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a string value and does not benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a string value and would benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a unit value.
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a sequence of values.
fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a byte array and does not benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a byte array and would benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a map of key-value pairs.
fn deserialize_unit_struct<V>(
self,
name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
self,
name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a unit struct with a particular name. Read more
fn deserialize_tuple_struct<V>(
self,
name: &'static str,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
self,
name: &'static str,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a tuple struct with a particular name and number of fields. Read more
fn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a struct with a particular name and fields. Read more
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type is expecting the name of a struct field or the discriminant of an enum variant. Read more
fn deserialize_tuple<V>(
self,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
self,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
Hint that the Deserialize
type is expecting a sequence of values and knows how many values there are without looking at the serialized data. Read more
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error> where
V: Visitor<'de>,
V: Visitor<'de>,
Hint that the Deserialize
type needs to deserialize a value whose type doesn't matter because it is ignored. Read more