[−][src]Trait glsp::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<T> ToVal for [T; 21] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for Vec<T> where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for u16
[src]
impl ToVal for u64
[src]
impl<T> ToVal for [T; 26] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for str
[src]
impl<T> ToVal for [T; 10] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 0] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for isize
[src]
impl<A, B, C, D, E, F, G, H, I> ToVal for (A, B, C, D, E, F, G, H, I) where
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
&'a I: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
&'a I: for<'a> ToVal,
impl ToVal for i32
[src]
impl<T> ToVal for [T; 20] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for u8
[src]
impl<T> ToVal for [T; 27] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 7] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for PathBuf
[src]
impl<A, B, C, D> ToVal for (A, B, C, D) where
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
impl<T> ToVal for [T; 29] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 30] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 3] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for i16
[src]
impl<T> ToVal for VecDeque<T> where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for Ordering
[src]
impl<A, B, C, D, E, F> ToVal for (A, B, C, D, E, F) where
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
impl<A, B> ToVal for (A, B) where
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
impl ToVal for f64
[src]
impl ToVal for usize
[src]
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: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
&'a I: for<'a> ToVal,
&'a J: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
&'a I: for<'a> ToVal,
&'a J: for<'a> ToVal,
impl ToVal for u32
[src]
impl<'a, T> ToVal for &'a T where
T: ToVal + ?Sized,
[src]
T: ToVal + ?Sized,
impl ToVal for f32
[src]
impl<T> ToVal for [T; 6] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<A> ToVal for (A,) where
&'a A: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
impl<T> ToVal for [T; 2] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for Option<T> where
T: ToVal,
[src]
T: ToVal,
impl<T> ToVal for [T; 8] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 1] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<K, V> ToVal for BTreeMap<K, V> where
K: ToVal,
V: ToVal,
[src]
K: ToVal,
V: ToVal,
impl<T> ToVal for [T; 25] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> 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: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
&'a I: for<'a> ToVal,
&'a J: for<'a> ToVal,
&'a K: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
&'a I: for<'a> ToVal,
&'a J: for<'a> ToVal,
&'a K: for<'a> ToVal,
impl<T> ToVal for [T; 5] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for String
[src]
impl ToVal for OsString
[src]
impl<A, B, C, D, E> ToVal for (A, B, C, D, E) where
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
impl<'a, T> ToVal for &'a mut T where
T: ToVal + ?Sized,
[src]
T: ToVal + ?Sized,
impl<A> ToVal for SmallVec<A> where
A: Array,
&'a <A as Array>::Item: for<'a> ToVal,
[src]
A: Array,
&'a <A as Array>::Item: for<'a> ToVal,
impl ToVal for CString
[src]
impl<T> ToVal for [T; 32] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<K, V, S> ToVal for HashMap<K, V, S> where
K: ToVal,
V: ToVal,
[src]
K: ToVal,
V: ToVal,
impl ToVal for i64
[src]
impl<A, B, C, D, E, F, G> ToVal for (A, B, C, D, E, F, G) where
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
impl<A, B, C> ToVal for (A, B, C) where
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
impl<T> ToVal for [T; 12] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 14] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 9] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for ()
[src]
impl<T> ToVal for [T; 19] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for i128
[src]
impl<T> ToVal for [T; 13] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> 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: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
&'a I: for<'a> ToVal,
&'a J: for<'a> ToVal,
&'a K: for<'a> ToVal,
&'a L: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
&'a I: for<'a> ToVal,
&'a J: for<'a> ToVal,
&'a K: for<'a> ToVal,
&'a L: for<'a> ToVal,
impl<T> ToVal for [T; 15] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 31] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 16] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 22] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for i8
[src]
impl ToVal for bool
[src]
impl ToVal for OsStr
[src]
impl ToVal for char
[src]
impl ToVal for u128
[src]
impl<T> ToVal for [T; 24] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 17] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 28] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 11] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<A, B, C, D, E, F, G, H> ToVal for (A, B, C, D, E, F, G, H) where
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
[src]
&'a A: for<'a> ToVal,
&'a B: for<'a> ToVal,
&'a C: for<'a> ToVal,
&'a D: for<'a> ToVal,
&'a E: for<'a> ToVal,
&'a F: for<'a> ToVal,
&'a G: for<'a> ToVal,
&'a H: for<'a> ToVal,
impl<T> ToVal for [T; 18] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<'a, T> ToVal for &'a [T] where
T: ToVal,
[src]
T: ToVal,
impl<T> ToVal for [T; 4] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl<T> ToVal for [T; 23] where
&'a T: for<'a> ToVal,
[src]
&'a T: for<'a> ToVal,
impl ToVal for Path
[src]
impl ToVal for CStr
[src]
Loading content...
Implementors
impl ToVal for Callable
[src]
impl ToVal for Deque
[src]
impl ToVal for Expander
[src]
impl ToVal for GIterLen
[src]
impl ToVal for Iterable
[src]
impl ToVal for Num
[src]
impl ToVal for Val
[src]
impl ToVal for RFn
[src]
impl ToVal for Root<Arr>
[src]
impl ToVal for Root<Class>
[src]
impl ToVal for Root<Coro>
[src]
impl ToVal for Root<GFn>
[src]
impl ToVal for Root<GIter>
[src]
impl ToVal for Root<Obj>
[src]
impl ToVal for Root<RData>
[src]
impl ToVal for Root<Str>
[src]
impl ToVal for Root<Tab>
[src]
impl ToVal for Sym
[src]
impl<T> ToVal for RRoot<T> where
T: RStore,
[src]
T: RStore,