Struct starlark::values::OwnedFrozenValueTyped
source · pub struct OwnedFrozenValueTyped<T: StarlarkValue<'static>> { /* private fields */ }
Expand description
Same as OwnedFrozenValue
but it is known to contain T
.
Implementations§
source§impl<T: StarlarkValue<'static>> OwnedFrozenValueTyped<T>
impl<T: StarlarkValue<'static>> OwnedFrozenValueTyped<T>
sourcepub unsafe fn to_frozen_value(&self) -> FrozenValue
pub unsafe fn to_frozen_value(&self) -> FrozenValue
Erase the type.
This operation is unsafe because returned value is not bound by the heap lifetime. So if the heap is dropped, the returned value quetly becomes invalid.
sourcepub fn to_owned_frozen_value(&self) -> OwnedFrozenValue
pub fn to_owned_frozen_value(&self) -> OwnedFrozenValue
Erase the type.
sourcepub fn into_owned_frozen_ref(self) -> OwnedFrozenRef<T>
pub fn into_owned_frozen_ref(self) -> OwnedFrozenRef<T>
Convert to an owned ref.
sourcepub fn owner(&self) -> &FrozenHeapRef
pub fn owner(&self) -> &FrozenHeapRef
Obtain a reference to the FrozenHeap that owns this value.
sourcepub unsafe fn owned_frozen_value(&self, heap: &FrozenHeap) -> FrozenValue
pub unsafe fn owned_frozen_value(&self, heap: &FrozenHeap) -> FrozenValue
Extract a FrozenValue
by passing the FrozenHeap
which will keep it alive.
sourcepub fn owned_value<'v>(&self, heap: &'v FrozenHeap) -> Value<'v>
pub fn owned_value<'v>(&self, heap: &'v FrozenHeap) -> Value<'v>
Extract a Value
by passing the FrozenHeap
which will promise to keep it alive.
sourcepub fn map<U: StarlarkValue<'static>>(
&self,
f: impl FnOnce(FrozenValueTyped<'_, T>) -> FrozenValueTyped<'_, U>
) -> OwnedFrozenValueTyped<U>
pub fn map<U: StarlarkValue<'static>>( &self, f: impl FnOnce(FrozenValueTyped<'_, T>) -> FrozenValueTyped<'_, U> ) -> OwnedFrozenValueTyped<U>
Operate on the FrozenValue
stored inside.
Safe provided you don’t store the argument FrozenValue
after the closure has returned.
Using this function is discouraged when possible.
sourcepub fn try_map<U: StarlarkValue<'static>, E>(
&self,
f: impl FnOnce(FrozenValueTyped<'_, T>) -> Result<FrozenValueTyped<'_, U>, E>
) -> Result<OwnedFrozenValueTyped<U>, E>
pub fn try_map<U: StarlarkValue<'static>, E>( &self, f: impl FnOnce(FrozenValueTyped<'_, T>) -> Result<FrozenValueTyped<'_, U>, E> ) -> Result<OwnedFrozenValueTyped<U>, E>
Trait Implementations§
source§impl<T: StarlarkValue<'static> + Allocative> Allocative for OwnedFrozenValueTyped<T>
impl<T: StarlarkValue<'static> + Allocative> Allocative for OwnedFrozenValueTyped<T>
source§impl<T: StarlarkValue<'static>> Clone for OwnedFrozenValueTyped<T>
impl<T: StarlarkValue<'static>> Clone for OwnedFrozenValueTyped<T>
source§impl<T: Debug + StarlarkValue<'static>> Debug for OwnedFrozenValueTyped<T>
impl<T: Debug + StarlarkValue<'static>> Debug for OwnedFrozenValueTyped<T>
source§impl<T: StarlarkValue<'static>> Deref for OwnedFrozenValueTyped<T>
impl<T: StarlarkValue<'static>> Deref for OwnedFrozenValueTyped<T>
source§impl<T: StarlarkValue<'static>> Dupe for OwnedFrozenValueTyped<T>
impl<T: StarlarkValue<'static>> Dupe for OwnedFrozenValueTyped<T>
Auto Trait Implementations§
impl<T> !RefUnwindSafe for OwnedFrozenValueTyped<T>
impl<T> Send for OwnedFrozenValueTyped<T>where
T: Sync,
impl<T> Sync for OwnedFrozenValueTyped<T>where
T: Sync,
impl<T> Unpin for OwnedFrozenValueTyped<T>
impl<T> !UnwindSafe for OwnedFrozenValueTyped<T>
Blanket Implementations§
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