Trait oso::ToPolarList

source ·
pub trait ToPolarList: Sealed {
    // Required method
    fn to_polar_list(self) -> Vec<PolarValue>
       where Self: Sized;
}
Expand description

Convert tuples to Polar types.

This is a helper trait to convert Rust tuples (of types which implement ToPolar) into a Vec<PolarValue>.

Examples

Empty tuple:

use oso::ToPolarList;

assert_eq!(().to_polar_list(), vec![]);

Mixed tuples:

use oso::{PolarValue, PolarClass, ToPolarList};

#[derive(PolarClass)]
struct MyClass;

let class = MyClass;
let string = "Hello, World!";
let number = 42;

let list = (class, string, number).to_polar_list();

assert_eq!(list.len(), 3);
assert!(matches!(list[0], PolarValue::Instance(_)));
assert_eq!(list[1], PolarValue::String(string.to_string()));
assert_eq!(list[2], PolarValue::Integer(number));

Required Methods§

source

fn to_polar_list(self) -> Vec<PolarValue>
where Self: Sized,

Convert these values into an array of Polar values.

Implementations on Foreign Types§

source§

impl ToPolarList for ()

source§

impl<TupleElement0: ToPolar> ToPolarList for (TupleElement0,)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar> ToPolarList for (TupleElement0, TupleElement1)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar, TupleElement8: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar, TupleElement8: ToPolar, TupleElement9: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar, TupleElement8: ToPolar, TupleElement9: ToPolar, TupleElement10: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar, TupleElement8: ToPolar, TupleElement9: ToPolar, TupleElement10: ToPolar, TupleElement11: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar, TupleElement8: ToPolar, TupleElement9: ToPolar, TupleElement10: ToPolar, TupleElement11: ToPolar, TupleElement12: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar, TupleElement8: ToPolar, TupleElement9: ToPolar, TupleElement10: ToPolar, TupleElement11: ToPolar, TupleElement12: ToPolar, TupleElement13: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar, TupleElement8: ToPolar, TupleElement9: ToPolar, TupleElement10: ToPolar, TupleElement11: ToPolar, TupleElement12: ToPolar, TupleElement13: ToPolar, TupleElement14: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)

source§

impl<TupleElement0: ToPolar, TupleElement1: ToPolar, TupleElement2: ToPolar, TupleElement3: ToPolar, TupleElement4: ToPolar, TupleElement5: ToPolar, TupleElement6: ToPolar, TupleElement7: ToPolar, TupleElement8: ToPolar, TupleElement9: ToPolar, TupleElement10: ToPolar, TupleElement11: ToPolar, TupleElement12: ToPolar, TupleElement13: ToPolar, TupleElement14: ToPolar, TupleElement15: ToPolar> ToPolarList for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)

Implementors§