pub unsafe trait IntoJulia: Sized + 'static {
    // Required method
    fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
       where T: Target<'scope>;
}
Expand description

Trait implemented by types that can be converted to a Julia value in combination with Value::new. This trait can be derived, it’s recommended to use JlrsReflect.jl to ensure it’s implemented correctly.

If you do choose to implement it manually, you only need to implement the julia_type method which must return the DataType of the type this data will have in Julia. The layout of this type and the type in Rust must match exactly. Incompatible layouts will cause undefined behavior. The type in Rust must always be #[repr(C)]. The DataType must be an isbits-type.

Required Methods§

source

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

Returns the associated Julia type of the implementor.

The layout of that type and the Rust type must match exactly, and it must be an isbits type, otherwise this trait has been implemented incorrectly.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl IntoJulia for bool

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for char

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for f32

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for f64

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for i8

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for i16

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for i32

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for i64

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for isize

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for *mut c_void

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for u8

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for u16

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for u32

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for u64

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for usize

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl IntoJulia for f16

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

source§

impl<U: IntoJulia> IntoJulia for *mut U

source§

fn julia_type<'scope, T>(target: T) -> DataTypeData<'scope, T>
where T: Target<'scope>,

Implementors§

source§

impl IntoJulia for Nothing

source§

impl IntoJulia for Tuple0

source§

impl<F: ParametricVariant> IntoJulia for F

source§

impl<T1> IntoJulia for Tuple1<T1>

source§

impl<T1, T2> IntoJulia for Tuple2<T1, T2>

source§

impl<T1, T2, T3> IntoJulia for Tuple3<T1, T2, T3>

source§

impl<T1, T2, T3, T4> IntoJulia for Tuple4<T1, T2, T3, T4>

source§

impl<T1, T2, T3, T4, T5> IntoJulia for Tuple5<T1, T2, T3, T4, T5>

source§

impl<T1, T2, T3, T4, T5, T6> IntoJulia for Tuple6<T1, T2, T3, T4, T5, T6>

source§

impl<T1, T2, T3, T4, T5, T6, T7> IntoJulia for Tuple7<T1, T2, T3, T4, T5, T6, T7>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8> IntoJulia for Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> IntoJulia for Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> IntoJulia for Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> IntoJulia for Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> IntoJulia for Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> IntoJulia for Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> IntoJulia for Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> IntoJulia for Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> IntoJulia for Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> IntoJulia for Tuple17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> IntoJulia for Tuple18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> IntoJulia for Tuple19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> IntoJulia for Tuple20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> IntoJulia for Tuple21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> IntoJulia for Tuple22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> IntoJulia for Tuple23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> IntoJulia for Tuple24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> IntoJulia for Tuple25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> IntoJulia for Tuple26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> IntoJulia for Tuple27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> IntoJulia for Tuple28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29> IntoJulia for Tuple29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30> IntoJulia for Tuple30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31> IntoJulia for Tuple31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31>

source§

impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> IntoJulia for Tuple32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32>
where T1: IntoJulia + ConstructType + Debug + Clone, T2: IntoJulia + ConstructType + Debug + Clone, T3: IntoJulia + ConstructType + Debug + Clone, T4: IntoJulia + ConstructType + Debug + Clone, T5: IntoJulia + ConstructType + Debug + Clone, T6: IntoJulia + ConstructType + Debug + Clone, T7: IntoJulia + ConstructType + Debug + Clone, T8: IntoJulia + ConstructType + Debug + Clone, T9: IntoJulia + ConstructType + Debug + Clone, T10: IntoJulia + ConstructType + Debug + Clone, T11: IntoJulia + ConstructType + Debug + Clone, T12: IntoJulia + ConstructType + Debug + Clone, T13: IntoJulia + ConstructType + Debug + Clone, T14: IntoJulia + ConstructType + Debug + Clone, T15: IntoJulia + ConstructType + Debug + Clone, T16: IntoJulia + ConstructType + Debug + Clone, T17: IntoJulia + ConstructType + Debug + Clone, T18: IntoJulia + ConstructType + Debug + Clone, T19: IntoJulia + ConstructType + Debug + Clone, T20: IntoJulia + ConstructType + Debug + Clone, T21: IntoJulia + ConstructType + Debug + Clone, T22: IntoJulia + ConstructType + Debug + Clone, T23: IntoJulia + ConstructType + Debug + Clone, T24: IntoJulia + ConstructType + Debug + Clone, T25: IntoJulia + ConstructType + Debug + Clone, T26: IntoJulia + ConstructType + Debug + Clone, T27: IntoJulia + ConstructType + Debug + Clone, T28: IntoJulia + ConstructType + Debug + Clone, T29: IntoJulia + ConstructType + Debug + Clone, T30: IntoJulia + ConstructType + Debug + Clone, T31: IntoJulia + ConstructType + Debug + Clone, T32: IntoJulia + ConstructType + Debug + Clone,