Trait freya::prelude::AnyStorage
pub trait AnyStorage: Default {
type Ref<'a, T: 'static + ?Sized>: Deref<Target = T>;
type Mut<'a, T: 'static + ?Sized>: DerefMut<Target = T>;
// Required methods
fn downcast_lifetime_ref<'a, 'b, T>(
ref_: Self::Ref<'a, T>
) -> Self::Ref<'b, T>
where 'a: 'b,
T: 'static + ?Sized;
fn downcast_lifetime_mut<'a, 'b, T>(
mut_: Self::Mut<'a, T>
) -> Self::Mut<'b, T>
where 'a: 'b,
T: 'static + ?Sized;
fn try_map_mut<T, U>(
mut_ref: Self::Mut<'_, T>,
f: impl FnOnce(&mut T) -> Option<&mut U>
) -> Option<Self::Mut<'_, U>>
where T: 'static + ?Sized,
U: 'static + ?Sized;
fn try_map<T, U>(
ref_: Self::Ref<'_, T>,
f: impl FnOnce(&T) -> Option<&U>
) -> Option<Self::Ref<'_, U>>
where U: 'static + ?Sized,
T: ?Sized;
fn data_ptr(&self) -> *const ();
fn manually_drop(&self) -> bool;
fn recycle(location: &MemoryLocation<Self>);
fn claim() -> MemoryLocation<Self>;
// Provided methods
fn map_mut<T, U>(
mut_ref: Self::Mut<'_, T>,
f: impl FnOnce(&mut T) -> &mut U
) -> Self::Mut<'_, U>
where T: 'static + ?Sized,
U: 'static + ?Sized { ... }
fn map<T, U>(
ref_: Self::Ref<'_, T>,
f: impl FnOnce(&T) -> &U
) -> Self::Ref<'_, U>
where U: 'static + ?Sized,
T: ?Sized { ... }
fn owner() -> Owner<Self> { ... }
}
Expand description
A trait for any storage backing type.
Required Associated Types§
Required Methods§
fn downcast_lifetime_ref<'a, 'b, T>(ref_: Self::Ref<'a, T>) -> Self::Ref<'b, T>where
'a: 'b,
T: 'static + ?Sized,
fn downcast_lifetime_ref<'a, 'b, T>(ref_: Self::Ref<'a, T>) -> Self::Ref<'b, T>where
'a: 'b,
T: 'static + ?Sized,
Downcast a reference in a Ref to a more specific lifetime
This function enforces the variance of the lifetime parameter 'a
in Ref. Rust will typically infer this cast with a concrete type, but it cannot with a generic type.
fn downcast_lifetime_mut<'a, 'b, T>(mut_: Self::Mut<'a, T>) -> Self::Mut<'b, T>where
'a: 'b,
T: 'static + ?Sized,
fn downcast_lifetime_mut<'a, 'b, T>(mut_: Self::Mut<'a, T>) -> Self::Mut<'b, T>where
'a: 'b,
T: 'static + ?Sized,
Downcast a mutable reference in a RefMut to a more specific lifetime
This function enforces the variance of the lifetime parameter 'a
in Mut. Rust will typically infer this cast with a concrete type, but it cannot with a generic type.
fn try_map_mut<T, U>(
mut_ref: Self::Mut<'_, T>,
f: impl FnOnce(&mut T) -> Option<&mut U>
) -> Option<Self::Mut<'_, U>>
fn try_map_mut<T, U>( mut_ref: Self::Mut<'_, T>, f: impl FnOnce(&mut T) -> Option<&mut U> ) -> Option<Self::Mut<'_, U>>
Try to map the mutable ref.
fn try_map<T, U>(
ref_: Self::Ref<'_, T>,
f: impl FnOnce(&T) -> Option<&U>
) -> Option<Self::Ref<'_, U>>
fn try_map<T, U>( ref_: Self::Ref<'_, T>, f: impl FnOnce(&T) -> Option<&U> ) -> Option<Self::Ref<'_, U>>
Try to map the ref.
fn data_ptr(&self) -> *const ()
fn data_ptr(&self) -> *const ()
Get the data pointer. No guarantees are made about the data pointer. It should only be used for debugging.
fn manually_drop(&self) -> bool
fn manually_drop(&self) -> bool
Drop the value from the storage. This will return true if the value was taken.
fn recycle(location: &MemoryLocation<Self>)
fn recycle(location: &MemoryLocation<Self>)
Recycle a memory location. This will drop the memory location and return it to the runtime.
fn claim() -> MemoryLocation<Self>
fn claim() -> MemoryLocation<Self>
Claim a new memory location. This will either create a new memory location or recycle an old one.
Provided Methods§
fn map_mut<T, U>(
mut_ref: Self::Mut<'_, T>,
f: impl FnOnce(&mut T) -> &mut U
) -> Self::Mut<'_, U>
fn map_mut<T, U>( mut_ref: Self::Mut<'_, T>, f: impl FnOnce(&mut T) -> &mut U ) -> Self::Mut<'_, U>
Map the mutable ref.