pub struct ValueOf<'v, T: UnpackValue<'v>> {
pub value: Value<'v>,
pub typed: T,
}
Expand description
A wrapper that keeps the original value on the heap for use elsewhere,
and also, when unpacked, unpacks the value to validate it is of
the correct type. Has an UnpackValue
instance, so often used as
an argument to #[starlark_module]
defined
functions.
Two container specializations of this are ListOf
and DictOf
, which
validate the types of their containers on unpack, but do not store the
resulting Vec/Map
Fields§
§value: Value<'v>
The original Value
on the same heap.
typed: T
The value that was unpacked.
Trait Implementations§
source§impl<'v, T: UnpackValue<'v>> AllocValue<'v> for ValueOf<'v, T>
impl<'v, T: UnpackValue<'v>> AllocValue<'v> for ValueOf<'v, T>
source§impl<'v, T: UnpackValue<'v>> Deref for ValueOf<'v, T>
impl<'v, T: UnpackValue<'v>> Deref for ValueOf<'v, T>
source§impl<'v, T: UnpackValue<'v>> StarlarkTypeRepr for ValueOf<'v, T>
impl<'v, T: UnpackValue<'v>> StarlarkTypeRepr for ValueOf<'v, T>
source§fn starlark_type_repr() -> Ty
fn starlark_type_repr() -> Ty
The representation of a type that a user would use verbatim in starlark type annotations
source§impl<'v, T: UnpackValue<'v>> UnpackValue<'v> for ValueOf<'v, T>
impl<'v, T: UnpackValue<'v>> UnpackValue<'v> for ValueOf<'v, T>
source§fn unpack_value(value: Value<'v>) -> Option<Self>
fn unpack_value(value: Value<'v>) -> Option<Self>
Given a
Value
, try and unpack it into the given type, which may involve some element of conversion.source§fn unpack_value_err(value: Value<'v>) -> Result<Self>
fn unpack_value_err(value: Value<'v>) -> Result<Self>
Unpack a value, but return error instead of
None
if unpacking fails.source§fn unpack_param(value: Value<'v>) -> Result<Self>
fn unpack_param(value: Value<'v>) -> Result<Self>
Unpack value, but instead of
None
return error about incorrect argument type.impl<'v, T: Copy + UnpackValue<'v>> Copy for ValueOf<'v, T>
Auto Trait Implementations§
impl<'v, T> !RefUnwindSafe for ValueOf<'v, T>
impl<'v, T> Send for ValueOf<'v, T>where
T: Send,
impl<'v, T> !Sync for ValueOf<'v, T>
impl<'v, T> Unpin for ValueOf<'v, T>where
T: Unpin,
impl<'v, T> UnwindSafe for ValueOf<'v, T>where
T: UnwindSafe,
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