[−][src]Trait glsp_engine::ToVal
A type which can be converted to a GameLisp value.
Many functions in the glsp
crate receive a generic parameter T: ToVal
. This enables those
functions to accept many different Rust types, which will be silently converted to a
Val
.
glsp::set_global("numbers", (0, 1, 2, 3, 4))?; arr.push("text")?;
Implementing the ToVal
trait for your own types will enable them to take advantage of automatic
conversions for RFn
return values.
struct Rgb(u8, u8, u8); impl ToVal for Rgb { fn to_val(&self) -> GResult<Val> { let Rgb(r, g, b) = self; arr![r, g, b].to_val() } } fn light_sea_green() -> Rgb { Rgb(32, 178, 170) } glsp::bind_rfn("light-sea-green", rfn!(light_sea_green))?;
Invoking a type's to_val
method is usually the most convenient way to
produce a Val
. ToVal
is part of the prelude, so there's no need to
import it into scope.
let thousand = 10.0_f64.pow(3.0).to_val()?;
Required methods
Loading content...Implementations on Foreign Types
impl<'a, T: ?Sized> ToVal for &'a T where
T: ToVal,
[src]
T: ToVal,
impl<'a, T: ?Sized> ToVal for &'a mut T where
T: ToVal,
[src]
T: ToVal,
impl<T> ToVal for Option<T> where
T: ToVal,
[src]
T: ToVal,
impl ToVal for ()
[src]
impl ToVal for i8
[src]
impl ToVal for i16
[src]
impl ToVal for i32
[src]
impl ToVal for u8
[src]
impl ToVal for u16
[src]
impl ToVal for f32
[src]
impl ToVal for char
[src]
impl ToVal for bool
[src]
impl ToVal for Ordering
[src]
impl ToVal for i64
[src]
impl ToVal for i128
[src]
impl ToVal for isize
[src]
impl ToVal for u32
[src]
impl ToVal for u64
[src]
impl ToVal for u128
[src]
impl ToVal for usize
[src]
impl ToVal for f64
[src]
impl<T> ToVal for Vec<T> where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for VecDeque<T> where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<A: Array> ToVal for SmallVec<A> where
&'a A::Item: ToVal,
[src]
&'a A::Item: ToVal,
impl<'a, T: ToVal> ToVal for &'a [T]
[src]
impl<T> ToVal for [T; 0] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 1] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 2] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 3] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 4] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 5] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 6] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 7] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 8] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 9] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 10] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 11] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 12] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 13] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 14] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 15] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 16] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 17] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 18] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 19] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 20] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 21] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 22] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 23] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 24] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 25] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 26] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 27] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 28] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 29] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 30] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 31] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<T> ToVal for [T; 32] where
&'a T: ToVal,
[src]
&'a T: ToVal,
impl<A> ToVal for (A,) where
&'a A: ToVal,
[src]
&'a A: ToVal,
impl<A, B> ToVal for (A, B) where
&'a A: ToVal,
&'a B: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
impl<A, B, C> ToVal for (A, B, C) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
impl<A, B, C, D> ToVal for (A, B, C, D) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
impl<A, B, C, D, E> ToVal for (A, B, C, D, E) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
impl<A, B, C, D, E, F> ToVal for (A, B, C, D, E, F) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
impl<A, B, C, D, E, F, G> ToVal for (A, B, C, D, E, F, G) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
impl<A, B, C, D, E, F, G, H> ToVal for (A, B, C, D, E, F, G, H) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
impl<A, B, C, D, E, F, G, H, I> ToVal for (A, B, C, D, E, F, G, H, I) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
&'a I: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
&'a I: ToVal,
impl<A, B, C, D, E, F, G, H, I, J> ToVal for (A, B, C, D, E, F, G, H, I, J) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
&'a I: ToVal,
&'a J: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
&'a I: ToVal,
&'a J: ToVal,
impl<A, B, C, D, E, F, G, H, I, J, K> ToVal for (A, B, C, D, E, F, G, H, I, J, K) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
&'a I: ToVal,
&'a J: ToVal,
&'a K: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
&'a I: ToVal,
&'a J: ToVal,
&'a K: ToVal,
impl<A, B, C, D, E, F, G, H, I, J, K, L> ToVal for (A, B, C, D, E, F, G, H, I, J, K, L) where
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
&'a I: ToVal,
&'a J: ToVal,
&'a K: ToVal,
&'a L: ToVal,
[src]
&'a A: ToVal,
&'a B: ToVal,
&'a C: ToVal,
&'a D: ToVal,
&'a E: ToVal,
&'a F: ToVal,
&'a G: ToVal,
&'a H: ToVal,
&'a I: ToVal,
&'a J: ToVal,
&'a K: ToVal,
&'a L: ToVal,