Struct starlark::values::ValueOf

source ·
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>

source§

fn alloc_value(self, _heap: &'v Heap) -> Value<'v>

Allocate the value on a heap and return a reference to the allocated value. Read more
source§

impl<'v, T: Clone + UnpackValue<'v>> Clone for ValueOf<'v, T>

source§

fn clone(&self) -> ValueOf<'v, T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'v, T: Debug + UnpackValue<'v>> Debug for ValueOf<'v, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'v, T: UnpackValue<'v>> Deref for ValueOf<'v, T>

§

type Target = Value<'v>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<'v, T: UnpackValue<'v> + Dupe> Dupe for ValueOf<'v, T>

source§

fn dupe(&self) -> Self

source§

impl<'v, T: UnpackValue<'v>> StarlarkTypeRepr for ValueOf<'v, T>

source§

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>

source§

fn expected() -> String

Description of values acceptable by unpack_value, e. g. list or str.
source§

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>

Unpack a value, but return error instead of None if unpacking fails.
source§

fn unpack_param(value: Value<'v>) -> Result<Self>

Unpack value, but instead of None return error about incorrect argument type.
source§

fn unpack_named_param(value: Value<'v>, param_name: &str) -> Result<Self>

Unpack value, but instead of None return error about incorrect named argument type.
source§

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToAst for T

source§

fn ast(self, begin: usize, end: usize) -> Spanned<Self>

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.