use std::{
fmt::{self, Debug, Formatter},
marker::PhantomData,
};
use data::{Flow, LinkReference, LinksConstants};
use super::macros::{decorator_struct, forward};
use crate::{
data::{ReadHandler, WriteHandler},
Doublets, Error, Link, Links,
};
decorator_struct! {
NoExceptionsDecorator
}
impl<T: LinkReference, L: Doublets<T>> Links<T> for NoExceptionsDecorator<T, L> {
forward!(count_links, each_links);
#[inline]
fn create_links(
&mut self,
query: &[T],
handler: WriteHandler<'_, T>,
) -> Result<Flow, Error<T>> {
Ok(self
.links
.create_links(query, handler)
.unwrap_or(Flow::Break))
}
#[inline]
fn update_links(
&mut self,
query: &[T],
change: &[T],
handler: WriteHandler<'_, T>,
) -> Result<Flow, Error<T>> {
Ok(self
.links
.update_links(query, change, handler)
.unwrap_or(Flow::Break))
}
#[inline]
fn delete_links(
&mut self,
query: &[T],
handler: WriteHandler<'_, T>,
) -> Result<Flow, Error<T>> {
Ok(self
.links
.delete_links(query, handler)
.unwrap_or(Flow::Break))
}
}