Trait ComponentList

Source
pub trait ComponentList: 'static + Sized {
    const LEN: usize;

    // Required methods
    fn into_tys(types: &mut [ValueType]);
    fn into_values(self, values: &mut [Value]) -> Result<()>;
    fn from_values(values: &[Value]) -> Result<Self>;
}
Expand description

Marks a list of components that can be passed as parameters and results.

Required Associated Constants§

Source

const LEN: usize

The length of the component list.

Required Methods§

Source

fn into_tys(types: &mut [ValueType])

Stores the types of this list into the given slice. Panics if the slice is not big enough.

Source

fn into_values(self, values: &mut [Value]) -> Result<()>

Attempts to convert this component list into values, storing them in the provided slice.

Source

fn from_values(values: &[Value]) -> Result<Self>

Attempts to convert a list of values into a component list of this type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl ComponentList for ()

Source§

const LEN: usize = 0usize

Source§

fn into_tys(_types: &mut [ValueType])

Source§

fn from_values(_values: &[Value]) -> Result<Self>

Source§

fn into_values(self, _values: &mut [Value]) -> Result<()>

Source§

impl<A: ComponentType> ComponentList for (A,)

Source§

const LEN: usize = 1usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType> ComponentList for (A, B)

Source§

const LEN: usize = 2usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType> ComponentList for (A, B, C)

Source§

const LEN: usize = 3usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType> ComponentList for (A, B, C, D)

Source§

const LEN: usize = 4usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType, E: ComponentType> ComponentList for (A, B, C, D, E)

Source§

const LEN: usize = 5usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType, E: ComponentType, F: ComponentType> ComponentList for (A, B, C, D, E, F)

Source§

const LEN: usize = 6usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType, E: ComponentType, F: ComponentType, G: ComponentType> ComponentList for (A, B, C, D, E, F, G)

Source§

const LEN: usize = 7usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType, E: ComponentType, F: ComponentType, G: ComponentType, H: ComponentType> ComponentList for (A, B, C, D, E, F, G, H)

Source§

const LEN: usize = 8usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType, E: ComponentType, F: ComponentType, G: ComponentType, H: ComponentType, I: ComponentType> ComponentList for (A, B, C, D, E, F, G, H, I)

Source§

const LEN: usize = 9usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType, E: ComponentType, F: ComponentType, G: ComponentType, H: ComponentType, I: ComponentType, J: ComponentType> ComponentList for (A, B, C, D, E, F, G, H, I, J)

Source§

const LEN: usize = 10usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType, E: ComponentType, F: ComponentType, G: ComponentType, H: ComponentType, I: ComponentType, J: ComponentType, K: ComponentType> ComponentList for (A, B, C, D, E, F, G, H, I, J, K)

Source§

const LEN: usize = 11usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Source§

impl<A: ComponentType, B: ComponentType, C: ComponentType, D: ComponentType, E: ComponentType, F: ComponentType, G: ComponentType, H: ComponentType, I: ComponentType, J: ComponentType, K: ComponentType, L: ComponentType> ComponentList for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

const LEN: usize = 12usize

Source§

fn into_tys(types: &mut [ValueType])

Source§

fn into_values(self, values: &mut [Value]) -> Result<()>

Source§

fn from_values(values: &[Value]) -> Result<Self>

Implementors§