pub enum Variable {
Null,
Bool(bool),
Number(Decimal),
String(Rc<str>),
Array(Rc<RefCell<Vec<Variable>>>),
Object(Rc<RefCell<HashMap<Rc<str>, Variable, RandomState>>>),
Dynamic(Rc<dyn DynamicVariable>),
}
Variants§
Null
Bool(bool)
Number(Decimal)
String(Rc<str>)
Array(Rc<RefCell<Vec<Variable>>>)
Object(Rc<RefCell<HashMap<Rc<str>, Variable, RandomState>>>)
Dynamic(Rc<dyn DynamicVariable>)
Implementations§
Source§impl Variable
impl Variable
pub fn from_array(arr: Vec<Variable>) -> Variable
pub fn from_object(obj: HashMap<Rc<str>, Variable, RandomState>) -> Variable
pub fn empty_object() -> Variable
pub fn empty_array() -> Variable
pub fn as_str(&self) -> Option<&str>
pub fn as_rc_str(&self) -> Option<Rc<str>>
pub fn as_array(&self) -> Option<Rc<RefCell<Vec<Variable>>>>
pub fn is_array(&self) -> bool
pub fn as_object( &self, ) -> Option<Rc<RefCell<HashMap<Rc<str>, Variable, RandomState>>>>
pub fn is_object(&self) -> bool
pub fn as_bool(&self) -> Option<bool>
pub fn as_number(&self) -> Option<Decimal>
pub fn type_name(&self) -> &'static str
pub fn dynamic<T>(&self) -> Option<&T>where
T: DynamicVariable + 'static,
pub fn to_value(&self) -> Value
pub fn dot(&self, key: &str) -> Option<Variable>
pub fn dot_remove(&self, key: &str) -> Option<Variable>
pub fn dot_insert(&self, key: &str, variable: Variable) -> Option<Variable>
pub fn merge(&mut self, patch: &Variable) -> Variable
pub fn merge_clone(&mut self, patch: &Variable) -> Variable
pub fn shallow_clone(&self) -> Variable
pub fn deep_clone(&self) -> Variable
pub fn depth_clone(&self, depth: usize) -> Variable
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Variable
impl<'de> Deserialize<'de> for Variable
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Variable, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Variable, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for Variable
impl Serialize for Variable
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Eq for Variable
Auto Trait Implementations§
impl Freeze for Variable
impl !RefUnwindSafe for Variable
impl !Send for Variable
impl !Sync for Variable
impl Unpin for Variable
impl !UnwindSafe for Variable
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
, but without panic on OOM.