Skip to main content

RCClone

Trait RCClone 

Source
pub trait RCClone: Sized {
    // Required methods
    spec fn clone_requires(self, perm: MetaRegionOwners) -> bool;
    spec fn clone_ensures(
        self,
        old_perm: MetaRegionOwners,
        new_perm: MetaRegionOwners,
        res: Self,
    ) -> bool;
    exec fn clone(&self, Tracked(perm): Tracked<&mut MetaRegionOwners>) -> res : Self;
}

Required Methods§

Source

spec fn clone_requires(self, perm: MetaRegionOwners) -> bool

Source

spec fn clone_ensures( self, old_perm: MetaRegionOwners, new_perm: MetaRegionOwners, res: Self, ) -> bool

Source

exec fn clone(&self, Tracked(perm): Tracked<&mut MetaRegionOwners>) -> res : Self

requires
self.clone_requires(*old(perm)),
ensures
res == *self,
self.clone_ensures(*old(perm), *final(perm), res),
final(perm).inv(),
final(perm).slots =~= old(perm).slots,
final(perm).slot_owners.dom() =~= old(perm).slot_owners.dom(),

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl RCClone for ostd::mm::kspace::MappedItem

Source§

impl RCClone for ostd::mm::vm_space::MappedItem

Source§

impl<M: AnyFrameMeta + ?Sized> RCClone for Frame<M>

Source§

impl<M: AnyFrameMeta + Repr<MetaSlotStorage> + OwnerOf> RCClone for Segment<M>