Trait value_trait::Object

source ·
pub trait Object {
    type Key;
    type Element;

    // Required methods
    fn get<Q>(&self, k: &Q) -> Option<&Self::Element>
       where Self::Key: Borrow<Q> + Hash + Eq,
             Q: Hash + Eq + Ord + ?Sized;
    fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut Self::Element>
       where Self::Key: Borrow<Q> + Hash + Eq,
             Q: Hash + Eq + Ord + ?Sized;
    fn insert<K, V>(&mut self, k: K, v: V) -> Option<Self::Element>
       where K: Into<Self::Key>,
             V: Into<Self::Element>,
             Self::Key: Hash + Eq;
    fn remove<Q>(&mut self, k: &Q) -> Option<Self::Element>
       where Self::Key: Borrow<Q>,
             Q: Hash + Eq + Ord + ?Sized;
    fn iter<'i>(
        &'i self,
    ) -> Box<dyn Iterator<Item = (&Self::Key, &Self::Element)> + 'i>;
    fn keys<'i>(&'i self) -> Box<dyn Iterator<Item = &Self::Key> + 'i>;
    fn values<'i>(&'i self) -> Box<dyn Iterator<Item = &Self::Element> + 'i>;
    fn len(&self) -> usize;

    // Provided method
    fn is_empty(&self) -> bool { ... }
}
Expand description

A JSON Object

Required Associated Types§

source

type Key

The key in the objects

source

type Element

The values in the object

Required Methods§

source

fn get<Q>(&self, k: &Q) -> Option<&Self::Element>
where Self::Key: Borrow<Q> + Hash + Eq, Q: Hash + Eq + Ord + ?Sized,

Gets a ref to a value based on a key, returns None if the current Value isn’t an Object or doesn’t contain the key it was asked for.

source

fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut Self::Element>
where Self::Key: Borrow<Q> + Hash + Eq, Q: Hash + Eq + Ord + ?Sized,

Gets the value of a key as a mutable reference.

source

fn insert<K, V>(&mut self, k: K, v: V) -> Option<Self::Element>
where K: Into<Self::Key>, V: Into<Self::Element>, Self::Key: Hash + Eq,

Inserts a value

source

fn remove<Q>(&mut self, k: &Q) -> Option<Self::Element>
where Self::Key: Borrow<Q>, Q: Hash + Eq + Ord + ?Sized,

Removes a value from the object

source

fn iter<'i>( &'i self, ) -> Box<dyn Iterator<Item = (&Self::Key, &Self::Element)> + 'i>

Iterates over the key value paris

source

fn keys<'i>(&'i self) -> Box<dyn Iterator<Item = &Self::Key> + 'i>

Iterates over the keys

source

fn values<'i>(&'i self) -> Box<dyn Iterator<Item = &Self::Element> + 'i>

Iterates over the values

source

fn len(&self) -> usize

Number of key/value pairs

Provided Methods§

source

fn is_empty(&self) -> bool

Returns if the array is empty

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<MapK, MapE> Object for HashMap<MapK, MapE>
where MapK: Hash + Eq,

§

type Key = MapK

§

type Element = MapE

source§

fn get<Q>(&self, k: &Q) -> Option<&Self::Element>
where Self::Key: Borrow<Q> + Hash + Eq, Q: Hash + Eq + Ord + ?Sized,

source§

fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut Self::Element>
where Self::Key: Borrow<Q> + Hash + Eq, Q: Hash + Eq + Ord + ?Sized,

source§

fn insert<K, V>(&mut self, k: K, v: V) -> Option<Self::Element>
where K: Into<Self::Key>, V: Into<Self::Element>, Self::Key: Hash + Eq,

source§

fn remove<Q>(&mut self, k: &Q) -> Option<Self::Element>
where Self::Key: Borrow<Q> + Hash + Eq, Q: Hash + Eq + Ord + ?Sized,

source§

fn iter<'i>( &'i self, ) -> Box<dyn Iterator<Item = (&Self::Key, &Self::Element)> + 'i>

source§

fn keys<'i>(&'i self) -> Box<dyn Iterator<Item = &Self::Key> + 'i>

source§

fn values<'i>(&'i self) -> Box<dyn Iterator<Item = &Self::Element> + 'i>

source§

fn len(&self) -> usize

source§

impl<MapK, MapE, S: BuildHasher> Object for HashMap<MapK, MapE, S>
where MapK: Hash + Eq,

§

type Key = MapK

§

type Element = MapE

source§

fn get<Q>(&self, k: &Q) -> Option<&Self::Element>
where Self::Key: Borrow<Q> + Hash + Eq, Q: Hash + Eq + Ord + ?Sized,

source§

fn get_mut<Q>(&mut self, k: &Q) -> Option<&mut Self::Element>
where Self::Key: Borrow<Q> + Hash + Eq, Q: Hash + Eq + Ord + ?Sized,

source§

fn insert<K, V>(&mut self, k: K, v: V) -> Option<Self::Element>
where K: Into<Self::Key>, V: Into<Self::Element>, Self::Key: Hash + Eq,

source§

fn remove<Q>(&mut self, k: &Q) -> Option<Self::Element>
where Self::Key: Borrow<Q> + Hash + Eq, Q: Hash + Eq + Ord + ?Sized,

source§

fn iter<'i>( &'i self, ) -> Box<dyn Iterator<Item = (&Self::Key, &Self::Element)> + 'i>

source§

fn keys<'i>(&'i self) -> Box<dyn Iterator<Item = &Self::Key> + 'i>

source§

fn values<'i>(&'i self) -> Box<dyn Iterator<Item = &Self::Element> + 'i>

source§

fn len(&self) -> usize

Implementors§