pub trait ToRelIndex0<Rel> {
type RelIndex<'a>
where
Self: 'a,
Rel: 'a;
fn to_rel_index<'a>(&'a self, rel: &'a Rel) -> Self::RelIndex<'a>;
type RelIndexWrite<'a>
where
Self: 'a,
Rel: 'a;
fn to_rel_index_write<'a>(&'a mut self, rel: &'a mut Rel) -> Self::RelIndexWrite<'a>;
type CRelIndexWrite<'a>
where
Self: 'a,
Rel: 'a;
fn to_c_rel_index_write<'a>(&'a self, rel: &'a Rel) -> Self::CRelIndexWrite<'a>;
}
pub trait ToRelIndex<Rel> {
type RelIndex<'a>
where
Self: 'a,
Rel: 'a;
fn to_rel_index<'a>(&'a self, rel: &'a Rel) -> Self::RelIndex<'a>;
type RelIndexWrite<'a>
where
Self: 'a,
Rel: 'a;
fn to_rel_index_write<'a>(&'a mut self, rel: &'a mut Rel) -> Self::RelIndexWrite<'a>;
}
impl<T, Rel> ToRelIndex0<Rel> for T
where T: ToRelIndex<Rel>
{
type RelIndex<'a>
= T::RelIndex<'a>
where
Self: 'a,
Rel: 'a;
#[inline(always)]
fn to_rel_index<'a>(&'a self, rel: &'a Rel) -> Self::RelIndex<'a> { self.to_rel_index(rel) }
type RelIndexWrite<'a>
= T::RelIndexWrite<'a>
where
Self: 'a,
Rel: 'a;
#[inline(always)]
fn to_rel_index_write<'a>(&'a mut self, rel: &'a mut Rel) -> Self::RelIndexWrite<'a> { self.to_rel_index_write(rel) }
type CRelIndexWrite<'a>
= T::RelIndex<'a>
where
Self: 'a,
Rel: 'a;
#[inline(always)]
fn to_c_rel_index_write<'a>(&'a self, rel: &'a Rel) -> Self::CRelIndexWrite<'a> { self.to_rel_index(rel) }
}