Skip to main content

Links

Trait Links 

Source
pub trait Links<T: LinkReference>: Send + Sync {
    // Required methods
    fn constants(&self) -> &LinksConstants<T>;
    fn count_links(&self, query: &[T]) -> T;
    fn create_links(
        &mut self,
        query: &[T],
        handler: WriteHandler<'_, T>,
    ) -> Result<Flow, Error<T>>;
    fn each_links(&self, query: &[T], handler: ReadHandler<'_, T>) -> Flow;
    fn update_links(
        &mut self,
        query: &[T],
        change: &[T],
        handler: WriteHandler<'_, T>,
    ) -> Result<Flow, Error<T>>;
    fn delete_links(
        &mut self,
        query: &[T],
        handler: WriteHandler<'_, T>,
    ) -> Result<Flow, Error<T>>;
}
Expand description

Low-level, raw slice-based interface for a doublets link store.

Implementors are required to be Send + Sync. Most users should prefer the higher-level Doublets trait which builds on this one.

Required Methods§

Source

fn constants(&self) -> &LinksConstants<T>

Returns the store’s LinksConstants (any/null/range values).

Counts links that match query.

Creates one or more links matching query and reports each creation via handler.

Iterates over links matching query, calling handler for each.

Updates links matching query to the new values in change, reporting via handler.

Deletes links matching query and reports each deletion via handler.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T: LinkReference, All: Doublets<T> + ?Sized> Links<T> for Box<All>

Source§

fn constants(&self) -> &LinksConstants<T>

Implementors§

Source§

impl<T: LinkReference, L: Doublets<T>, J: TransitionLog<T>> Links<T> for Transaction<'_, T, L, J>

Source§

impl<T: LinkReference, L: Doublets<T>, J: TransitionLog<T>> Links<T> for TransactionsDecorator<T, L, J>

Source§

impl<T: LinkReference, L: Doublets<T>, W: Write + Send + Sync> Links<T> for LoggingDecorator<T, L, W>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for CascadeUniquenessAndUsagesResolver<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for CascadeUsagesResolver<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for InnerReferenceExistenceValidator<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for ItselfConstantToSelfReferenceResolver<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for NoExceptionsDecorator<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for NonExistentDependenciesCreator<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for NonNullContentsLinkDeletionResolver<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for NullConstantToSelfReferenceResolver<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for UniquenessResolver<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for UniquenessValidator<T, L>

Source§

impl<T: LinkReference, L: Doublets<T>> Links<T> for UsagesValidator<T, L>

Source§

impl<T: LinkReference, M: RawMem<Item = LinkPart<T>>, TS: UnitTree<T>, TT: UnitTree<T>, TU: UnitList<T>> Links<T> for doublets::mem::unit::Store<T, M, TS, TT, TU>

Source§

impl<T: LinkReference, MD: RawMem<Item = DataPart<T>>, MI: RawMem<Item = IndexPart<T>>, IS: SplitTree<T>, ES: SplitTree<T>, IT: SplitTree<T>, ET: SplitTree<T>, UL: SplitList<T>> Links<T> for doublets::mem::split::Store<T, MD, MI, IS, ES, IT, ET, UL>