[−][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,