pub struct CowMut<'a, T: Clone> { /* private fields */ }Expand description
A structure the engine may write, borrowed so that it is copied only when it is written.
The store shares its interner, topology and edge properties with the
reader’s fold through Arcs. Handing the engine &mut to them meant
Arc::make_mut up front, so every commit that ran the engine copied all
three whole the first time after a fold, though most commits derive
nothing (ledger row 126). Reads go through Deref, which never copies;
the first &mut use (DerefMut) copies the shared value then, once.
Trait Implementations§
Auto Trait Implementations§
impl<'a, T> !UnwindSafe for CowMut<'a, T>
impl<'a, T> Forget for CowMut<'a, T>
impl<'a, T> Freeze for CowMut<'a, T>where
CowSlot<'a, T>: Freeze,
impl<'a, T> RefUnwindSafe for CowMut<'a, T>where
CowSlot<'a, T>: RefUnwindSafe,
impl<'a, T> Send for CowMut<'a, T>where
CowSlot<'a, T>: Send,
impl<'a, T> Sync for CowMut<'a, T>where
CowSlot<'a, T>: Sync,
impl<'a, T> Unpin for CowMut<'a, T>where
CowSlot<'a, T>: Unpin,
impl<'a, T> UnsafeUnpin for CowMut<'a, T>where
CowSlot<'a, T>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.