Trait Query

Source
pub trait Query<I, V>
where I: Identity, V: Identifiable<I>,
{ // Required methods fn query(&self, identifier: &I) -> Option<&V>; fn all(&self) -> Vec<&V>; // Provided method fn create_index(&self) -> HashMap<I, Link<'_, I, V>> { ... } }
Expand description

Be able to query some type given an identifier. It must return a type that can be queried for more values like itself.

Query a datastore for a type that can be used to find more like it

Required Methods§

Source

fn query(&self, identifier: &I) -> Option<&V>

Source

fn all(&self) -> Vec<&V>

Provided Methods§

Source

fn create_index(&self) -> HashMap<I, Link<'_, I, V>>

Implementations on Foreign Types§

Source§

impl<'a> Query<ChunkId, Chunk<'a>> for Chunks<'a>

Source§

fn query(&self, identifier: &ChunkId) -> Option<&Chunk<'a>>

Source§

fn all(&self) -> Vec<&Chunk<'a>>

Source§

impl<'a> Query<ModuleIdentifier, Module<'a>> for Modules<'a>

Source§

fn query(&self, _identifier: &ModuleIdentifier) -> Option<&Module<'a>>

Source§

fn all(&self) -> Vec<&Module<'a>>

Source§

fn create_index( &self, ) -> HashMap<ModuleIdentifier, Link<'_, ModuleIdentifier, Module<'a>>>

Source§

impl<'a, I, V> Query<I, V> for HashMap<I, Link<'a, I, V>>
where I: Identity, V: Identifiable<I>,

Source§

fn query(&self, identifier: &I) -> Option<&V>

Source§

fn all(&self) -> Vec<&V>

Source§

impl<'a, I, V, T> Query<I, V> for &'a T
where T: Query<I, V>, I: Identity, V: Identifiable<I>,

Source§

fn query(&self, identifier: &I) -> Option<&V>

Source§

fn all(&self) -> Vec<&V>

Implementors§

Source§

impl<T> Query<<T as GraphDefinition>::Id, Node<T>> for ConcreteGraph<T>
where T: GraphDefinition,