Trait value_trait::Mutable
source · [−]pub trait Mutable: IndexMut<usize> + Value + Sized {
fn as_array_mut(&mut self) -> Option<&mut <Self as ValueAccess>::Array>;
fn as_object_mut(&mut self) -> Option<&mut Self::Object>;
fn insert<K, V>(
&mut self,
k: K,
v: V
) -> Result<Option<Self::Target>, AccessError>
where
K: Into<<Self as ValueAccess>::Key>,
V: Into<<Self as ValueAccess>::Target>,
<Self as ValueAccess>::Key: Hash + Eq,
{ ... }
fn try_insert<K, V>(&mut self, k: K, v: V) -> Option<Self::Target>
where
K: Into<<Self as ValueAccess>::Key>,
V: Into<<Self as ValueAccess>::Target>,
<Self as ValueAccess>::Key: Hash + Eq,
{ ... }
fn remove<Q: ?Sized>(
&mut self,
k: &Q
) -> Result<Option<Self::Target>, AccessError>
where
<Self as ValueAccess>::Key: Borrow<Q> + Hash + Eq,
Q: Hash + Eq + Ord,
{ ... }
fn try_remove<Q: ?Sized>(&mut self, k: &Q) -> Option<Self::Target>
where
<Self as ValueAccess>::Key: Borrow<Q> + Hash + Eq,
Q: Hash + Eq + Ord,
{ ... }
fn push<V>(&mut self, v: V) -> Result<(), AccessError>
where
V: Into<<Self as ValueAccess>::Target>,
{ ... }
fn try_push<V>(&mut self, v: V)
where
V: Into<<Self as ValueAccess>::Target>,
{ ... }
fn pop(&mut self) -> Result<Option<Self::Target>, AccessError> { ... }
fn try_pop(&mut self) -> Option<Self::Target> { ... }
fn get_mut<Q: ?Sized>(&mut self, k: &Q) -> Option<&mut Self::Target>
where
<Self as ValueAccess>::Key: Borrow<Q> + Hash + Eq,
Q: Hash + Eq + Ord,
{ ... }
fn get_idx_mut(&mut self, i: usize) -> Option<&mut Self::Target> { ... }
}Expand description
Mutatability for values
Required Methods
fn as_array_mut(&mut self) -> Option<&mut <Self as ValueAccess>::Array>
fn as_array_mut(&mut self) -> Option<&mut <Self as ValueAccess>::Array>
Tries to represent the value as an array and returns a mutable refference to it
fn as_object_mut(&mut self) -> Option<&mut Self::Object>
fn as_object_mut(&mut self) -> Option<&mut Self::Object>
Tries to represent the value as an object and returns a mutable refference to it
Provided Methods
fn insert<K, V>(
&mut self,
k: K,
v: V
) -> Result<Option<Self::Target>, AccessError> where
K: Into<<Self as ValueAccess>::Key>,
V: Into<<Self as ValueAccess>::Target>,
<Self as ValueAccess>::Key: Hash + Eq,
fn insert<K, V>(
&mut self,
k: K,
v: V
) -> Result<Option<Self::Target>, AccessError> where
K: Into<<Self as ValueAccess>::Key>,
V: Into<<Self as ValueAccess>::Target>,
<Self as ValueAccess>::Key: Hash + Eq,
Insert into this Value as an Object.
Will return an AccessError::NotAnObject if called
on a Value that isn’t an object - otherwise will
behave the same as HashMap::insert
Errors
Will return Err if self is not an object.
fn try_insert<K, V>(&mut self, k: K, v: V) -> Option<Self::Target> where
K: Into<<Self as ValueAccess>::Key>,
V: Into<<Self as ValueAccess>::Target>,
<Self as ValueAccess>::Key: Hash + Eq,
fn try_insert<K, V>(&mut self, k: K, v: V) -> Option<Self::Target> where
K: Into<<Self as ValueAccess>::Key>,
V: Into<<Self as ValueAccess>::Target>,
<Self as ValueAccess>::Key: Hash + Eq,
Tries to insert into this Value as an Object.
If the Value isn’t an object this opoeration will
return None and have no effect.
Remove from this Value as an Object.
Will return an AccessError::NotAnObject if called
on a Value that isn’t an object - otherwise will
behave the same as HashMap::remove
Errors
Will return Err if self is not an Object.
Tries to remove from this Value as an Object.
If the Value isn’t an object this opoeration will
return None and have no effect.
fn push<V>(&mut self, v: V) -> Result<(), AccessError> where
V: Into<<Self as ValueAccess>::Target>,
fn push<V>(&mut self, v: V) -> Result<(), AccessError> where
V: Into<<Self as ValueAccess>::Target>,
Pushes to this Value as an Array.
Will return an AccessError::NotAnArray if called
on a Value that isn’t an Array - otherwise will
behave the same as Vec::push
Errors
Will return Err if self is not an array.
fn try_push<V>(&mut self, v: V) where
V: Into<<Self as ValueAccess>::Target>,
fn try_push<V>(&mut self, v: V) where
V: Into<<Self as ValueAccess>::Target>,
Tries to push to a Value if as an Array.
This funciton will have no effect if Value is of
a different type
Pops from this Value as an Array.
Will return an AccessError::NotAnArray if called
on a Value that isn’t an Array - otherwise will
behave the same as Vec::pop
Errors
Will return Err if self is not an array.
Tries to pop from a Value as an Array.
if the Value is any other type None will
always be returned
Same as get but returns a mutable ref instead
fn get_idx_mut(&mut self, i: usize) -> Option<&mut Self::Target>
fn get_idx_mut(&mut self, i: usize) -> Option<&mut Self::Target>
Same as get_idx but returns a mutable ref instead