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

Tries to represent the value as an array and returns a mutable refference to it

Tries to represent the value as an object and returns a mutable refference to it

Provided Methods

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.

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.

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.

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

Same as get_idx but returns a mutable ref instead

Implementors