Reroot

Trait Reroot 

Source
pub trait Reroot {
    type Retval;

    // Required method
    fn reroot(self, key: &RerooterKey<'_>) -> Result<Self::Retval, ()>;
}
Expand description

A trait for restoring Managed types to a given SlabArc

For types that are not Managed, this trait should just return the type as-is.

Required Associated Types§

Source

type Retval

The return type. This is used to change the lifetimes, e.g. to convert Self: ManagedArcSlab<'a, _, _> to Retval: ManagedArcSlab<'static, _, _>.

Required Methods§

Source

fn reroot(self, key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Implementations on Foreign Types§

Source§

impl Reroot for bool

Source§

type Retval = bool

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for char

Source§

type Retval = char

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for f32

Source§

type Retval = f32

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for f64

Source§

type Retval = f64

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for i8

Source§

type Retval = i8

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for i16

Source§

type Retval = i16

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for i32

Source§

type Retval = i32

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for i64

Source§

type Retval = i64

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for u8

Source§

type Retval = u8

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for u16

Source§

type Retval = u16

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for u32

Source§

type Retval = u32

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for u64

Source§

type Retval = u64

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl Reroot for ()

Source§

type Retval = ()

Source§

fn reroot(self, _key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl<T> Reroot for Option<T>
where T: Reroot,

Source§

type Retval = Option<<T as Reroot>::Retval>

Source§

fn reroot(self, key: &RerooterKey<'_>) -> Result<Self::Retval, ()>

Source§

impl<T, E> Reroot for Result<T, E>
where T: Reroot, E: Reroot,

Source§

type Retval = Result<<T as Reroot>::Retval, <E as Reroot>::Retval>

Source§

fn reroot( self, key: &RerooterKey<'_>, ) -> Result<Result<T::Retval, E::Retval>, ()>

Implementors§

Source§

impl<'a, const N: usize, const SZ: usize> Reroot for ManagedArcSlab<'a, N, SZ>

Source§

type Retval = ManagedArcSlab<'static, N, SZ>

Source§

impl<'a, const N: usize, const SZ: usize> Reroot for ManagedArcStr<'a, N, SZ>

Source§

type Retval = ManagedArcStr<'static, N, SZ>