Trait gluon_vm::api::VmType
[−]
[src]
pub trait VmType { type Type: ?Sized + Any; fn make_type(vm: &Thread) -> ArcType { ... } fn extra_args() -> VmIndex { ... } }
Trait which maps a type in rust to a type in gluon
Associated Types
Provided Methods
fn make_type(vm: &Thread) -> ArcType
Creates an gluon type which maps to Self
in rust
fn extra_args() -> VmIndex
How many extra arguments a function returning this type requires. Used for abstract types which when used in return position should act like they still need more arguments before they are called
Implementations on Foreign Types
impl<'vm, T: ?Sized + VmType> VmType for &'vm T
[src]
impl VmType for ()
[src]
impl VmType for u8
[src]
impl VmType for i16
[src]
impl VmType for i32
[src]
impl VmType for i64
[src]
impl VmType for u16
[src]
impl VmType for u32
[src]
impl VmType for u64
[src]
impl VmType for usize
[src]
impl VmType for isize
[src]
impl VmType for f64
[src]
impl VmType for bool
[src]
impl VmType for Ordering
[src]
impl VmType for str
[src]
impl VmType for String
[src]
impl VmType for char
[src]
impl<'s, T: VmType> VmType for Ref<'s, T>
[src]
impl<'s, T> VmType for &'s [T] where
T: VmType + ArrayRepr + 's,
T::Type: Sized,
[src]
T: VmType + ArrayRepr + 's,
T::Type: Sized,
impl<T> VmType for Vec<T> where
T: VmType,
T::Type: Sized,
[src]
T: VmType,
T::Type: Sized,
impl<'s, T: VmType> VmType for *const T
[src]
impl<T: VmType> VmType for Option<T> where
T::Type: Sized,
[src]
T::Type: Sized,
impl<T: VmType, E: VmType> VmType for StdResult<T, E> where
T::Type: Sized,
E::Type: Sized,
[src]
T::Type: Sized,
E::Type: Sized,
impl<_0, _1, _2, _3, _4, _5, _6> VmType for (_0, _1, _2, _3, _4, _5, _6) where
_0: VmType,
_1: VmType,
_2: VmType,
_3: VmType,
_4: VmType,
_5: VmType,
_6: VmType,
_0::Type: Sized,
_1::Type: Sized,
_2::Type: Sized,
_3::Type: Sized,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
[src]
_0: VmType,
_1: VmType,
_2: VmType,
_3: VmType,
_4: VmType,
_5: VmType,
_6: VmType,
_0::Type: Sized,
_1::Type: Sized,
_2::Type: Sized,
_3::Type: Sized,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
impl<_1, _2, _3, _4, _5, _6> VmType for (_1, _2, _3, _4, _5, _6) where
_1: VmType,
_2: VmType,
_3: VmType,
_4: VmType,
_5: VmType,
_6: VmType,
_1::Type: Sized,
_2::Type: Sized,
_3::Type: Sized,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
[src]
_1: VmType,
_2: VmType,
_3: VmType,
_4: VmType,
_5: VmType,
_6: VmType,
_1::Type: Sized,
_2::Type: Sized,
_3::Type: Sized,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
impl<_2, _3, _4, _5, _6> VmType for (_2, _3, _4, _5, _6) where
_2: VmType,
_3: VmType,
_4: VmType,
_5: VmType,
_6: VmType,
_2::Type: Sized,
_3::Type: Sized,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
[src]
_2: VmType,
_3: VmType,
_4: VmType,
_5: VmType,
_6: VmType,
_2::Type: Sized,
_3::Type: Sized,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
impl<_3, _4, _5, _6> VmType for (_3, _4, _5, _6) where
_3: VmType,
_4: VmType,
_5: VmType,
_6: VmType,
_3::Type: Sized,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
[src]
_3: VmType,
_4: VmType,
_5: VmType,
_6: VmType,
_3::Type: Sized,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
impl<_4, _5, _6> VmType for (_4, _5, _6) where
_4: VmType,
_5: VmType,
_6: VmType,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
[src]
_4: VmType,
_5: VmType,
_6: VmType,
_4::Type: Sized,
_5::Type: Sized,
_6::Type: Sized,
impl<_5, _6> VmType for (_5, _6) where
_5: VmType,
_6: VmType,
_5::Type: Sized,
_6::Type: Sized,
[src]
_5: VmType,
_6: VmType,
_5::Type: Sized,
_6::Type: Sized,
impl<R: VmType> VmType for fn() -> R
[src]
impl<'s, R: VmType> VmType for Fn() -> R + 's
[src]
impl<A: VmType, R: VmType> VmType for fn(_: A) -> R
[src]
impl<'s, A: VmType, R: VmType> VmType for Fn(A) -> R + 's
[src]
impl<A: VmType, B: VmType, R: VmType> VmType for fn(_: A, _: B) -> R
[src]
impl<'s, A: VmType, B: VmType, R: VmType> VmType for Fn(A, B) -> R + 's
[src]
impl<A: VmType, B: VmType, C: VmType, R: VmType> VmType for fn(_: A, _: B, _: C) -> R
[src]
impl<'s, A: VmType, B: VmType, C: VmType, R: VmType> VmType for Fn(A, B, C) -> R + 's
[src]
impl<A: VmType, B: VmType, C: VmType, D: VmType, R: VmType> VmType for fn(_: A, _: B, _: C, _: D) -> R
[src]
impl<'s, A: VmType, B: VmType, C: VmType, D: VmType, R: VmType> VmType for Fn(A, B, C, D) -> R + 's
[src]
impl<A: VmType, B: VmType, C: VmType, D: VmType, E: VmType, R: VmType> VmType for fn(_: A, _: B, _: C, _: D, _: E) -> R
[src]
impl<'s, A: VmType, B: VmType, C: VmType, D: VmType, E: VmType, R: VmType> VmType for Fn(A, B, C, D, E) -> R + 's
[src]
impl<A: VmType, B: VmType, C: VmType, D: VmType, E: VmType, F: VmType, R: VmType> VmType for fn(_: A, _: B, _: C, _: D, _: E, _: F) -> R
[src]
impl<'s, A: VmType, B: VmType, C: VmType, D: VmType, E: VmType, F: VmType, R: VmType> VmType for Fn(A, B, C, D, E, F) -> R + 's
[src]
impl<A: VmType, B: VmType, C: VmType, D: VmType, E: VmType, F: VmType, G: VmType, R: VmType> VmType for fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> R
[src]
impl<'s, A: VmType, B: VmType, C: VmType, D: VmType, E: VmType, F: VmType, G: VmType, R: VmType> VmType for Fn(A, B, C, D, E, F, G) -> R + 's
[src]
Implementors
impl VmType for A type Type = A;
impl VmType for B type Type = B;
impl VmType for C type Type = C;
impl VmType for D type Type = D;
impl VmType for E type Type = E;
impl VmType for F type Type = F;
impl VmType for G type Type = G;
impl VmType for H type Type = H;
impl VmType for I type Type = I;
impl VmType for J type Type = J;
impl VmType for K type Type = K;
impl VmType for L type Type = L;
impl VmType for M type Type = M;
impl VmType for N type Type = N;
impl VmType for O type Type = O;
impl VmType for P type Type = P;
impl VmType for Q type Type = Q;
impl VmType for R type Type = R;
impl VmType for X type Type = X;
impl VmType for Y type Type = Y;
impl VmType for Z type Type = Z;
impl<T: FieldTypes> VmType for Record<T> type Type = Record<T::Type>;
impl VmType for Hole type Type = Hole;
impl<T: VmType> VmType for Generic<T> type Type = T::Type;
impl<'vm, T> VmType for WithVM<'vm, T> where
T: VmType, type Type = T::Type;impl<F> VmType for FutureResult<F> where
F: Future,
F::Item: VmType, type Type = <F::Item as VmType>::Type;impl<T: VmType, E> VmType for RuntimeResult<T, E> type Type = T::Type;
impl<T> VmType for IO<T> where
T: VmType,
T::Type: Sized, type Type = IO<T::Type>;impl<T, V> VmType for OpaqueValue<T, V> where
T: Deref<Target = Thread>,
V: VmType,
V::Type: Sized, type Type = V::Type;impl<'vm, T: VmType> VmType for Array<'vm, T> where
T::Type: Sized, type Type = Array<'static, T::Type>;impl<'vm, T: Any> VmType for Root<'vm, T> type Type = T;
impl<'vm> VmType for RootStr<'vm> type Type = <str as VmType>::Type;
impl<T, R: ?Sized> VmType for PushAsRef<T, R> where
T: AsRef<R>,
R: 'static,
&'static R: VmType, type Type = <&'static R as VmType>::Type;impl<'vm, F: VmType> VmType for Primitive<F> type Type = F::Type;
impl<'vm, F: VmType> VmType for RefPrimitive<'vm, F> type Type = F::Type;
impl<T, F> VmType for Function<T, F> where
T: Deref<Target = Thread>,
F: VmType, type Type = F::Type;impl<T: VmType> VmType for Sender<T> where
T::Type: Sized, type Type = Sender<T::Type>;impl<T: VmType> VmType for Receiver<T> where
T::Type: Sized, type Type = Receiver<T::Type>;impl VmType for Thread type Type = Self;
impl VmType for RootedThread type Type = Thread;
impl<T> VmType for Reference<T> where
T: VmType,
T::Type: Sized, type Type = Reference<T::Type>;