Trait jlrs::convert::unbox::Unbox

source ·
pub unsafe trait Unbox {
    type Output: Sized + Clone;

    // Provided method
    unsafe fn unbox(value: Value<'_, '_>) -> Self::Output { ... }
}
Expand description

A trait implemented by types that can be extracted from a Julia value with Value::unbox.

This trait can be derived, it’s recommended to use JlrsReflect.jl to ensure it’s implemented correctly. All layouts generated by JlrsReflect.jl will implement this trait and ValidLayout, which checks if the conversion is valid at runtime.

If you do choose to implement it manually, you only need to provide the associated Output type if the type matches the layout of the data in Julia. The default implementation of unbox dereferences the value as &Self::Output and clones it. If this implementation is incorrect it must be overridden.

Required Associated Types§

source

type Output: Sized + Clone

The type of the unboxed data. Must be #[repr(C)].

Provided Methods§

source

unsafe fn unbox(value: Value<'_, '_>) -> Self::Output

Unbox the value as Self::Output.

Safety: The default implementation assumes that Self::Output is the correct layout for the data that value points to.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Unbox for bool

§

type Output = Bool

source§

unsafe fn unbox(value: Value<'_, '_>) -> Bool

source§

impl Unbox for char

§

type Output = Char

source§

unsafe fn unbox(value: Value<'_, '_>) -> Char

source§

impl Unbox for f32

§

type Output = f32

source§

unsafe fn unbox(value: Value<'_, '_>) -> f32

source§

impl Unbox for f64

§

type Output = f64

source§

unsafe fn unbox(value: Value<'_, '_>) -> f64

source§

impl Unbox for i8

§

type Output = i8

source§

unsafe fn unbox(value: Value<'_, '_>) -> i8

source§

impl Unbox for i16

§

type Output = i16

source§

unsafe fn unbox(value: Value<'_, '_>) -> i16

source§

impl Unbox for i32

§

type Output = i32

source§

unsafe fn unbox(value: Value<'_, '_>) -> i32

source§

impl Unbox for i64

§

type Output = i64

source§

unsafe fn unbox(value: Value<'_, '_>) -> i64

source§

impl Unbox for isize

§

type Output = isize

source§

unsafe fn unbox(value: Value<'_, '_>) -> isize

source§

impl Unbox for *mut c_void

§

type Output = *mut c_void

source§

unsafe fn unbox(value: Value<'_, '_>) -> *mut c_void

source§

impl Unbox for u8

§

type Output = u8

source§

unsafe fn unbox(value: Value<'_, '_>) -> u8

source§

impl Unbox for u16

§

type Output = u16

source§

unsafe fn unbox(value: Value<'_, '_>) -> u16

source§

impl Unbox for u32

§

type Output = u32

source§

unsafe fn unbox(value: Value<'_, '_>) -> u32

source§

impl Unbox for u64

§

type Output = u64

source§

unsafe fn unbox(value: Value<'_, '_>) -> u64

source§

impl Unbox for usize

§

type Output = usize

source§

unsafe fn unbox(value: Value<'_, '_>) -> usize

source§

impl Unbox for String

§

type Output = Result<String, Vec<u8>>

source§

unsafe fn unbox(value: Value<'_, '_>) -> Self::Output

source§

impl Unbox for f16

§

type Output = f16

source§

impl<T: IntoJulia> Unbox for *mut T

Implementors§

source§

impl Unbox for Bool

§

type Output = Bool

source§

impl Unbox for Char

§

type Output = Char

source§

impl Unbox for Nothing

source§

impl Unbox for SSAValue

source§

impl Unbox for Tuple0

source§

impl<T1> Unbox for Tuple1<T1>
where T1: ValidField + Clone + Debug,

§

type Output = Tuple1<T1>

source§

impl<T1, T2> Unbox for Tuple2<T1, T2>
where T1: ValidField + Clone + Debug, T2: ValidField + Clone + Debug,

§

type Output = Tuple2<T1, T2>

source§

impl<T1, T2, T3> Unbox for Tuple3<T1, T2, T3>
where T1: ValidField + Clone + Debug, T2: ValidField + Clone + Debug, T3: ValidField + Clone + Debug,

§

type Output = Tuple3<T1, T2, T3>

source§

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

§

type Output = Tuple4<T1, T2, T3, T4>

source§

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

§

type Output = Tuple5<T1, T2, T3, T4, T5>

source§

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

§

type Output = Tuple6<T1, T2, T3, T4, T5, T6>

source§

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

§

type Output = Tuple7<T1, T2, T3, T4, T5, T6, T7>

source§

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

§

type Output = Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>

source§

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

§

type Output = Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9>

source§

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

§

type Output = Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>

source§

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

§

type Output = 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> Unbox for Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>

§

type Output = 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> Unbox for Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>

§

type Output = 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> Unbox for Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>

§

type Output = 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> Unbox for Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>

§

type Output = 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> Unbox for Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>

§

type Output = 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> Unbox for Tuple17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>

§

type Output = 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> Unbox for Tuple18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>

§

type Output = 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> Unbox for Tuple19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>

§

type Output = 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> Unbox for Tuple20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>

§

type Output = 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> Unbox for Tuple21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>

§

type Output = 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> Unbox for Tuple22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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> Unbox 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>

§

type Output = 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>

source§

impl<T: ParametricVariant + Clone> Unbox for T

§

type Output = T