[−][src]Trait glsp_engine::FromVal
A type which can be converted from a GameLisp value.
Many functions in the glsp
crate have a generic return value R: FromVal
. They can
automatically convert their return value to many different Rust types.
let numbers: Vec<u8> = glsp::global("numbers")?; let text: Root<Str> = arr.pop()?;
Implementing the FromVal
trait for your own types will also enable them to take advantage of
automatic conversions for RFn
arguments.
struct Rgb(u8, u8, u8); impl FromVal for Rgb { fn from_val(val: &Val) -> GResult<Rgb> { let (r, g, b) = <(u8, u8, u8)>::from_val(val)?; Ok(Rgb(r, g, b)) } } fn invert(src: Rgb) -> Rgb { let Rgb(r, g, b) = src; Rgb(255 - r, 255 - g, 255 - b) } glsp::bind_rfn("invert", rfn!(invert))?;
Writing T::from_val(v)?
is usually the most convenient way to destructure a Val
. FromVal
is part of the prelude, so there's no need to import it into scope.
let f = f64::from_val(val)?;
Required methods
Loading content...Implementations on Foreign Types
impl FromVal for i32
[src]
impl FromVal for i64
[src]
impl FromVal for i128
[src]
impl FromVal for isize
[src]
impl FromVal for char
[src]
impl FromVal for bool
[src]
impl FromVal for i8
[src]
impl FromVal for i16
[src]
impl FromVal for u8
[src]
impl FromVal for u16
[src]
impl FromVal for u32
[src]
impl FromVal for u64
[src]
impl FromVal for u128
[src]
impl FromVal for usize
[src]
impl FromVal for f32
[src]
impl FromVal for f64
[src]
impl FromVal for Ordering
[src]
impl<T: FromVal> FromVal for Vec<T>
[src]
impl<T: FromVal> FromVal for VecDeque<T>
[src]
impl<A> FromVal for SmallVec<A> where
A: Array,
A::Item: FromVal,
[src]
A: Array,
A::Item: FromVal,
impl<T> FromVal for [T; 0] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 1] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 2] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 3] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 4] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 5] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 6] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 7] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 8] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 9] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 10] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 11] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 12] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 13] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 14] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 15] where
T: FromVal,
[src]
T: FromVal,
impl<T> FromVal for [T; 16] where
T: FromVal,
[src]
T: FromVal,
impl<A> FromVal for (A,) where
A: FromVal,
[src]
A: FromVal,
impl<A, B> FromVal for (A, B) where
A: FromVal,
B: FromVal,
[src]
A: FromVal,
B: FromVal,
impl<A, B, C> FromVal for (A, B, C) where
A: FromVal,
B: FromVal,
C: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
impl<A, B, C, D> FromVal for (A, B, C, D) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
impl<A, B, C, D, E> FromVal for (A, B, C, D, E) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
impl<A, B, C, D, E, F> FromVal for (A, B, C, D, E, F) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
impl<A, B, C, D, E, F, G> FromVal for (A, B, C, D, E, F, G) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
impl<A, B, C, D, E, F, G, H> FromVal for (A, B, C, D, E, F, G, H) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
impl<A, B, C, D, E, F, G, H, I> FromVal for (A, B, C, D, E, F, G, H, I) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
I: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
I: FromVal,
impl<A, B, C, D, E, F, G, H, I, J> FromVal for (A, B, C, D, E, F, G, H, I, J) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
I: FromVal,
J: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
I: FromVal,
J: FromVal,
impl<A, B, C, D, E, F, G, H, I, J, K> FromVal for (A, B, C, D, E, F, G, H, I, J, K) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
I: FromVal,
J: FromVal,
K: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
I: FromVal,
J: FromVal,
K: FromVal,
impl<A, B, C, D, E, F, G, H, I, J, K, L> FromVal for (A, B, C, D, E, F, G, H, I, J, K, L) where
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
I: FromVal,
J: FromVal,
K: FromVal,
L: FromVal,
[src]
A: FromVal,
B: FromVal,
C: FromVal,
D: FromVal,
E: FromVal,
F: FromVal,
G: FromVal,
H: FromVal,
I: FromVal,
J: FromVal,
K: FromVal,
L: FromVal,
impl FromVal for String
[src]
impl FromVal for CString
[src]
impl FromVal for PathBuf
[src]
impl FromVal for OsString
[src]
impl<K, V, S> FromVal for HashMap<K, V, S> where
K: Hash + Eq + FromVal,
V: FromVal,
S: BuildHasher + Default,
[src]
K: Hash + Eq + FromVal,
V: FromVal,
S: BuildHasher + Default,