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