pub trait LuaRead<L>: Sized {
// Required method
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>;
// Provided methods
fn n_values_expected() -> i32 { ... }
fn lua_read(lua: L) -> ReadResult<Self, L> { ... }
fn lua_read_at_maybe_zero_position(
lua: L,
index: i32
) -> ReadResult<Self, L>
where L: AsLua { ... }
}
Expand description
Types that can be obtained from a Lua context.
Most types that implement Push
also implement LuaRead
, but this is not always the case
(for example &'static str
implements Push
but not LuaRead
).
Required Methods§
sourcefn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>
Reads the data from Lua at a given position.
Provided Methods§
fn n_values_expected() -> i32
sourcefn lua_read(lua: L) -> ReadResult<Self, L>
fn lua_read(lua: L) -> ReadResult<Self, L>
Reads the data from Lua.
fn lua_read_at_maybe_zero_position(lua: L, index: i32) -> ReadResult<Self, L>where L: AsLua,
Implementations on Foreign Types§
source§impl<LU, M> LuaRead<LU> for (M,)where
LU: AsLua,
M: LuaRead<LU>,
impl<LU, M> LuaRead<LU> for (M,)where LU: AsLua, M: LuaRead<LU>,
fn n_values_expected() -> i32
fn lua_read_at_position(lua: LU, index: NonZeroI32) -> ReadResult<(M,), LU>
fn lua_read_at_maybe_zero_position(lua: LU, index: i32) -> ReadResult<(M,), LU>
source§impl<L> LuaRead<L> for f32where
L: AsLua,
impl<L> LuaRead<L> for f32where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<f32, L>
source§impl<L> LuaRead<L> for Stringwhere
L: AsLua,
impl<L> LuaRead<L> for Stringwhere L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>
source§impl<L> LuaRead<L> for CStringwhere
L: AsLua,
impl<L> LuaRead<L> for CStringwhere L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>
source§impl<L> LuaRead<L> for u64where
L: AsLua,
impl<L> LuaRead<L> for u64where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<u64, L>
source§impl<LU, L, M> LuaRead<LU> for (L, M)where
LU: AsLua,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, L, M> LuaRead<LU> for (L, M)where LU: AsLua, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position(lua: LU, index: NonZeroI32) -> ReadResult<(L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(L, M), LU>
source§impl<LU, J, K, L, M> LuaRead<LU> for (J, K, L, M)where
LU: AsLua,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, J, K, L, M> LuaRead<LU> for (J, K, L, M)where LU: AsLua, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(J, K, L, M), LU>
source§impl<L> LuaRead<L> for i8where
L: AsLua,
impl<L> LuaRead<L> for i8where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<i8, L>
source§impl<L> LuaRead<L> for i32where
L: AsLua,
impl<L> LuaRead<L> for i32where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<i32, L>
source§impl<L> LuaRead<L> for i16where
L: AsLua,
impl<L> LuaRead<L> for i16where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<i16, L>
source§impl<L, A, B> LuaRead<L> for Result<A, B>where
L: AsLua,
A: for<'a> LuaRead<&'a L>,
B: for<'b> LuaRead<&'b L>,
impl<L, A, B> LuaRead<L> for Result<A, B>where L: AsLua, A: for<'a> LuaRead<&'a L>, B: for<'b> LuaRead<&'b L>,
fn lua_read_at_position( lua: L, index: NonZeroI32 ) -> ReadResult<Result<A, B>, L>
source§impl<LU, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (D, E, F, G, H, I, J, K, L, M)where
LU: AsLua,
D: for<'a> LuaRead<&'a LU>,
E: for<'a> LuaRead<&'a LU>,
F: for<'a> LuaRead<&'a LU>,
G: for<'a> LuaRead<&'a LU>,
H: for<'a> LuaRead<&'a LU>,
I: for<'a> LuaRead<&'a LU>,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (D, E, F, G, H, I, J, K, L, M)where LU: AsLua, D: for<'a> LuaRead<&'a LU>, E: for<'a> LuaRead<&'a LU>, F: for<'a> LuaRead<&'a LU>, G: for<'a> LuaRead<&'a LU>, H: for<'a> LuaRead<&'a LU>, I: for<'a> LuaRead<&'a LU>, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(D, E, F, G, H, I, J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(D, E, F, G, H, I, J, K, L, M), LU>
source§impl<L> LuaRead<L> for ()where
L: AsLua,
impl<L> LuaRead<L> for ()where L: AsLua,
fn lua_read_at_position(_lua: L, _index: NonZeroI32) -> ReadResult<Self, L>
fn lua_read_at_maybe_zero_position(_lua: L, _index: i32) -> ReadResult<Self, L>
source§impl<LU, A, B, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (A, B, C, D, E, F, G, H, I, J, K, L, M)where
LU: AsLua,
A: for<'a> LuaRead<&'a LU>,
B: for<'a> LuaRead<&'a LU>,
C: for<'a> LuaRead<&'a LU>,
D: for<'a> LuaRead<&'a LU>,
E: for<'a> LuaRead<&'a LU>,
F: for<'a> LuaRead<&'a LU>,
G: for<'a> LuaRead<&'a LU>,
H: for<'a> LuaRead<&'a LU>,
I: for<'a> LuaRead<&'a LU>,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, A, B, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (A, B, C, D, E, F, G, H, I, J, K, L, M)where LU: AsLua, A: for<'a> LuaRead<&'a LU>, B: for<'a> LuaRead<&'a LU>, C: for<'a> LuaRead<&'a LU>, D: for<'a> LuaRead<&'a LU>, E: for<'a> LuaRead<&'a LU>, F: for<'a> LuaRead<&'a LU>, G: for<'a> LuaRead<&'a LU>, H: for<'a> LuaRead<&'a LU>, I: for<'a> LuaRead<&'a LU>, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(A, B, C, D, E, F, G, H, I, J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(A, B, C, D, E, F, G, H, I, J, K, L, M), LU>
source§impl<LU, H, I, J, K, L, M> LuaRead<LU> for (H, I, J, K, L, M)where
LU: AsLua,
H: for<'a> LuaRead<&'a LU>,
I: for<'a> LuaRead<&'a LU>,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, H, I, J, K, L, M> LuaRead<LU> for (H, I, J, K, L, M)where LU: AsLua, H: for<'a> LuaRead<&'a LU>, I: for<'a> LuaRead<&'a LU>, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(H, I, J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(H, I, J, K, L, M), LU>
source§impl<LU, F, G, H, I, J, K, L, M> LuaRead<LU> for (F, G, H, I, J, K, L, M)where
LU: AsLua,
F: for<'a> LuaRead<&'a LU>,
G: for<'a> LuaRead<&'a LU>,
H: for<'a> LuaRead<&'a LU>,
I: for<'a> LuaRead<&'a LU>,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, F, G, H, I, J, K, L, M> LuaRead<LU> for (F, G, H, I, J, K, L, M)where LU: AsLua, F: for<'a> LuaRead<&'a LU>, G: for<'a> LuaRead<&'a LU>, H: for<'a> LuaRead<&'a LU>, I: for<'a> LuaRead<&'a LU>, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(F, G, H, I, J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(F, G, H, I, J, K, L, M), LU>
source§impl<L> LuaRead<L> for usizewhere
L: AsLua,
impl<L> LuaRead<L> for usizewhere L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<usize, L>
source§impl<L> LuaRead<L> for f64where
L: AsLua,
impl<L> LuaRead<L> for f64where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<f64, L>
source§impl<L, T> LuaRead<L> for Vec<T>where
L: AsLua,
T: for<'a> LuaRead<PushGuard<&'a LuaTable<L>>> + 'static,
impl<L, T> LuaRead<L> for Vec<T>where L: AsLua, T: for<'a> LuaRead<PushGuard<&'a LuaTable<L>>> + 'static,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>
source§impl<L, T> LuaRead<L> for Option<T>where
L: AsLua,
T: LuaRead<L>,
impl<L, T> LuaRead<L> for Option<T>where L: AsLua, T: LuaRead<L>,
fn lua_read_at_maybe_zero_position( lua: L, index: i32 ) -> ReadResult<Option<T>, L>
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Option<T>, L>
source§impl<L> LuaRead<L> for i64where
L: AsLua,
impl<L> LuaRead<L> for i64where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<i64, L>
source§impl<LU, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (C, D, E, F, G, H, I, J, K, L, M)where
LU: AsLua,
C: for<'a> LuaRead<&'a LU>,
D: for<'a> LuaRead<&'a LU>,
E: for<'a> LuaRead<&'a LU>,
F: for<'a> LuaRead<&'a LU>,
G: for<'a> LuaRead<&'a LU>,
H: for<'a> LuaRead<&'a LU>,
I: for<'a> LuaRead<&'a LU>,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (C, D, E, F, G, H, I, J, K, L, M)where LU: AsLua, C: for<'a> LuaRead<&'a LU>, D: for<'a> LuaRead<&'a LU>, E: for<'a> LuaRead<&'a LU>, F: for<'a> LuaRead<&'a LU>, G: for<'a> LuaRead<&'a LU>, H: for<'a> LuaRead<&'a LU>, I: for<'a> LuaRead<&'a LU>, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(C, D, E, F, G, H, I, J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(C, D, E, F, G, H, I, J, K, L, M), LU>
source§impl<L> LuaRead<L> for u16where
L: AsLua,
impl<L> LuaRead<L> for u16where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<u16, L>
source§impl<LU, K, L, M> LuaRead<LU> for (K, L, M)where
LU: AsLua,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, K, L, M> LuaRead<LU> for (K, L, M)where LU: AsLua, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position(lua: LU, index: NonZeroI32) -> ReadResult<(K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(K, L, M), LU>
source§impl<L, T, const N: usize> LuaRead<L> for [T; N]where
L: AsLua,
T: for<'a> LuaRead<PushGuard<&'a LuaTable<L>>> + 'static,
impl<L, T, const N: usize> LuaRead<L> for [T; N]where L: AsLua, T: for<'a> LuaRead<PushGuard<&'a LuaTable<L>>> + 'static,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>
source§impl<L> LuaRead<L> for u8where
L: AsLua,
impl<L> LuaRead<L> for u8where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<u8, L>
source§impl<L> LuaRead<L> for isizewhere
L: AsLua,
impl<L> LuaRead<L> for isizewhere L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<isize, L>
source§impl<LU, B, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (B, C, D, E, F, G, H, I, J, K, L, M)where
LU: AsLua,
B: for<'a> LuaRead<&'a LU>,
C: for<'a> LuaRead<&'a LU>,
D: for<'a> LuaRead<&'a LU>,
E: for<'a> LuaRead<&'a LU>,
F: for<'a> LuaRead<&'a LU>,
G: for<'a> LuaRead<&'a LU>,
H: for<'a> LuaRead<&'a LU>,
I: for<'a> LuaRead<&'a LU>,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, B, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (B, C, D, E, F, G, H, I, J, K, L, M)where LU: AsLua, B: for<'a> LuaRead<&'a LU>, C: for<'a> LuaRead<&'a LU>, D: for<'a> LuaRead<&'a LU>, E: for<'a> LuaRead<&'a LU>, F: for<'a> LuaRead<&'a LU>, G: for<'a> LuaRead<&'a LU>, H: for<'a> LuaRead<&'a LU>, I: for<'a> LuaRead<&'a LU>, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(B, C, D, E, F, G, H, I, J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(B, C, D, E, F, G, H, I, J, K, L, M), LU>
source§impl<L> LuaRead<L> for boolwhere
L: AsLua,
impl<L> LuaRead<L> for boolwhere L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>
source§impl<LU, G, H, I, J, K, L, M> LuaRead<LU> for (G, H, I, J, K, L, M)where
LU: AsLua,
G: for<'a> LuaRead<&'a LU>,
H: for<'a> LuaRead<&'a LU>,
I: for<'a> LuaRead<&'a LU>,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, G, H, I, J, K, L, M> LuaRead<LU> for (G, H, I, J, K, L, M)where LU: AsLua, G: for<'a> LuaRead<&'a LU>, H: for<'a> LuaRead<&'a LU>, I: for<'a> LuaRead<&'a LU>, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(G, H, I, J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(G, H, I, J, K, L, M), LU>
source§impl<LU, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (E, F, G, H, I, J, K, L, M)where
LU: AsLua,
E: for<'a> LuaRead<&'a LU>,
F: for<'a> LuaRead<&'a LU>,
G: for<'a> LuaRead<&'a LU>,
H: for<'a> LuaRead<&'a LU>,
I: for<'a> LuaRead<&'a LU>,
J: for<'a> LuaRead<&'a LU>,
K: for<'a> LuaRead<&'a LU>,
L: for<'a> LuaRead<&'a LU>,
M: for<'a> LuaRead<&'a LU>,
impl<LU, E, F, G, H, I, J, K, L, M> LuaRead<LU> for (E, F, G, H, I, J, K, L, M)where LU: AsLua, E: for<'a> LuaRead<&'a LU>, F: for<'a> LuaRead<&'a LU>, G: for<'a> LuaRead<&'a LU>, H: for<'a> LuaRead<&'a LU>, I: for<'a> LuaRead<&'a LU>, J: for<'a> LuaRead<&'a LU>, K: for<'a> LuaRead<&'a LU>, L: for<'a> LuaRead<&'a LU>, M: for<'a> LuaRead<&'a LU>,
fn n_values_expected() -> i32
fn lua_read_at_position( lua: LU, index: NonZeroI32 ) -> ReadResult<(E, F, G, H, I, J, K, L, M), LU>
fn lua_read_at_maybe_zero_position( lua: LU, index: i32 ) -> ReadResult<(E, F, G, H, I, J, K, L, M), LU>
source§impl<L> LuaRead<L> for u32where
L: AsLua,
impl<L> LuaRead<L> for u32where L: AsLua,
fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<u32, L>
source§impl<L, K, V> LuaRead<L> for HashMap<K, V>where
L: AsLua,
K: 'static + Hash + Eq + for<'k> LuaRead<&'k LuaTable<L>>,
V: 'static + for<'v> LuaRead<PushGuard<&'v LuaTable<L>>>,
impl<L, K, V> LuaRead<L> for HashMap<K, V>where L: AsLua, K: 'static + Hash + Eq + for<'k> LuaRead<&'k LuaTable<L>>, V: 'static + for<'v> LuaRead<PushGuard<&'v LuaTable<L>>>,
HashMap