Trait LuaRead

Source
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§

Source

fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>

Reads the data from Lua at a given position.

Provided Methods§

Source

fn n_values_expected() -> i32

Source

fn lua_read(lua: L) -> ReadResult<Self, L>

Reads the data from Lua.

Source

fn lua_read_at_maybe_zero_position(lua: L, index: i32) -> ReadResult<Self, L>
where L: AsLua,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<L> LuaRead<L> for bool
where L: AsLua,

Source§

fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>

Source§

impl<L> LuaRead<L> for f32
where L: AsLua,

Source§

impl<L> LuaRead<L> for f64
where L: AsLua,

Source§

impl<L> LuaRead<L> for i8
where L: AsLua,

Source§

impl<L> LuaRead<L> for i16
where L: AsLua,

Source§

impl<L> LuaRead<L> for i32
where L: AsLua,

Source§

impl<L> LuaRead<L> for i64
where L: AsLua,

Source§

impl<L> LuaRead<L> for isize
where L: AsLua,

Source§

impl<L> LuaRead<L> for u8
where L: AsLua,

Source§

impl<L> LuaRead<L> for u16
where L: AsLua,

Source§

impl<L> LuaRead<L> for u32
where L: AsLua,

Source§

impl<L> LuaRead<L> for u64
where L: AsLua,

Source§

impl<L> LuaRead<L> for ()
where L: AsLua,

Source§

fn lua_read_at_position(_lua: L, _index: NonZeroI32) -> ReadResult<Self, L>

Source§

fn lua_read_at_maybe_zero_position(_lua: L, _index: i32) -> ReadResult<Self, L>

Source§

impl<L> LuaRead<L> for usize
where L: AsLua,

Source§

impl<L> LuaRead<L> for CString
where L: AsLua,

Source§

fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>

Source§

impl<L> LuaRead<L> for String
where L: AsLua,

Source§

fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>

Source§

impl<L> LuaRead<L> for OsString
where L: AsLua,

Source§

fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>

Source§

impl<L> LuaRead<L> for PathBuf
where L: AsLua,

Source§

fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, 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>,

Source§

fn lua_read_at_position( lua: L, index: NonZeroI32, ) -> ReadResult<Result<A, B>, L>

Source§

impl<L, K, V, S> LuaRead<L> for HashMap<K, V, S>
where L: AsLua, K: 'static + Hash + Eq + for<'k> LuaRead<&'k LuaTable<L>>, V: 'static + for<'v> LuaRead<PushGuard<&'v LuaTable<L>>>, S: Default + BuildHasher,

Source§

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>,

Source§

impl<L, T> LuaRead<L> for Vec<T>
where L: AsLua, T: for<'a> LuaRead<PushGuard<&'a LuaTable<L>>> + 'static,

Source§

fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>

Source§

impl<L, T, const N: usize> LuaRead<L> for [T; N]
where L: AsLua, T: for<'a> LuaRead<PushGuard<&'a LuaTable<L>>> + 'static,

Source§

fn lua_read_at_position(lua: L, index: NonZeroI32) -> 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>,

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>,

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>,

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>,

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>,

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>,

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>,

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>,

Source§

impl<LU, I, J, K, L, M> LuaRead<LU> for (I, J, K, L, M)
where LU: AsLua, 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>,

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>,

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>,

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>,

Source§

impl<LU, M> LuaRead<LU> for (M,)
where LU: AsLua, M: LuaRead<LU>,

Implementors§

Source§

impl<'a, L> LuaRead<L> for StringInLua<'a, L>
where L: 'a + AsLua,

Source§

impl<L> LuaRead<L> for AnyLuaString
where L: AsLua,

Source§

impl<L> LuaRead<L> for CDataOnStack<'_, L>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Callable<L>
where L: AsLua,

Source§

impl<L> LuaRead<L> for False
where L: AsLua,

Source§

impl<L> LuaRead<L> for Indexable<L>
where L: AsLua,

Source§

impl<L> LuaRead<L> for IndexableRW<L>
where L: AsLua,

Source§

impl<L> LuaRead<L> for LuaFunction<L>
where L: AsLua,

Source§

impl<L> LuaRead<L> for LuaTable<L>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Nil
where L: AsLua,

Source§

impl<L> LuaRead<L> for Null
where L: AsLua,

Source§

impl<L> LuaRead<L> for Object<L>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<f32>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<f64>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<i8>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<i16>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<i32>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<i64>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<isize>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<u8>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<u16>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<u32>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<u64>
where L: AsLua,

Source§

impl<L> LuaRead<L> for Strict<usize>
where L: AsLua,

Source§

impl<L> LuaRead<L> for ToString
where L: AsLua,

Source§

impl<L> LuaRead<L> for True
where L: AsLua,

Source§

impl<L> LuaRead<L> for Typename
where L: AsLua,

Source§

impl<L, T> LuaRead<L> for CData<T>
where L: AsLua, T: AsCData,

Source§

impl<L: AsLua> LuaRead<L> for AnyHashableLuaValue

Source§

impl<L: AsLua> LuaRead<L> for AnyLuaValue

Source§

impl<L: AsLua> LuaRead<L> for LuaState

Source§

impl<L: AsLua> LuaRead<L> for StaticLua

Source§

impl<LU, A, B, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for AsTable<(A, B, C, D, E, F, G, H, I, J, K, L, M)>
where LU: AsLua, A: for<'a> LuaRead<PushGuard<&'a LU>>, B: for<'a> LuaRead<PushGuard<&'a LU>>, C: for<'a> LuaRead<PushGuard<&'a LU>>, D: for<'a> LuaRead<PushGuard<&'a LU>>, E: for<'a> LuaRead<PushGuard<&'a LU>>, F: for<'a> LuaRead<PushGuard<&'a LU>>, G: for<'a> LuaRead<PushGuard<&'a LU>>, H: for<'a> LuaRead<PushGuard<&'a LU>>, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, B, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for AsTable<(B, C, D, E, F, G, H, I, J, K, L, M)>
where LU: AsLua, B: for<'a> LuaRead<PushGuard<&'a LU>>, C: for<'a> LuaRead<PushGuard<&'a LU>>, D: for<'a> LuaRead<PushGuard<&'a LU>>, E: for<'a> LuaRead<PushGuard<&'a LU>>, F: for<'a> LuaRead<PushGuard<&'a LU>>, G: for<'a> LuaRead<PushGuard<&'a LU>>, H: for<'a> LuaRead<PushGuard<&'a LU>>, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, C, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for AsTable<(C, D, E, F, G, H, I, J, K, L, M)>
where LU: AsLua, C: for<'a> LuaRead<PushGuard<&'a LU>>, D: for<'a> LuaRead<PushGuard<&'a LU>>, E: for<'a> LuaRead<PushGuard<&'a LU>>, F: for<'a> LuaRead<PushGuard<&'a LU>>, G: for<'a> LuaRead<PushGuard<&'a LU>>, H: for<'a> LuaRead<PushGuard<&'a LU>>, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, D, E, F, G, H, I, J, K, L, M> LuaRead<LU> for AsTable<(D, E, F, G, H, I, J, K, L, M)>
where LU: AsLua, D: for<'a> LuaRead<PushGuard<&'a LU>>, E: for<'a> LuaRead<PushGuard<&'a LU>>, F: for<'a> LuaRead<PushGuard<&'a LU>>, G: for<'a> LuaRead<PushGuard<&'a LU>>, H: for<'a> LuaRead<PushGuard<&'a LU>>, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, E, F, G, H, I, J, K, L, M> LuaRead<LU> for AsTable<(E, F, G, H, I, J, K, L, M)>
where LU: AsLua, E: for<'a> LuaRead<PushGuard<&'a LU>>, F: for<'a> LuaRead<PushGuard<&'a LU>>, G: for<'a> LuaRead<PushGuard<&'a LU>>, H: for<'a> LuaRead<PushGuard<&'a LU>>, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, F, G, H, I, J, K, L, M> LuaRead<LU> for AsTable<(F, G, H, I, J, K, L, M)>
where LU: AsLua, F: for<'a> LuaRead<PushGuard<&'a LU>>, G: for<'a> LuaRead<PushGuard<&'a LU>>, H: for<'a> LuaRead<PushGuard<&'a LU>>, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, G, H, I, J, K, L, M> LuaRead<LU> for AsTable<(G, H, I, J, K, L, M)>
where LU: AsLua, G: for<'a> LuaRead<PushGuard<&'a LU>>, H: for<'a> LuaRead<PushGuard<&'a LU>>, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, H, I, J, K, L, M> LuaRead<LU> for AsTable<(H, I, J, K, L, M)>
where LU: AsLua, H: for<'a> LuaRead<PushGuard<&'a LU>>, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, I, J, K, L, M> LuaRead<LU> for AsTable<(I, J, K, L, M)>
where LU: AsLua, I: for<'a> LuaRead<PushGuard<&'a LU>>, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, J, K, L, M> LuaRead<LU> for AsTable<(J, K, L, M)>
where LU: AsLua, J: for<'a> LuaRead<PushGuard<&'a LU>>, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, K, L, M> LuaRead<LU> for AsTable<(K, L, M)>
where LU: AsLua, K: for<'a> LuaRead<PushGuard<&'a LU>>, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, L, M> LuaRead<LU> for AsTable<(L, M)>
where LU: AsLua, L: for<'a> LuaRead<PushGuard<&'a LU>>, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<LU, M> LuaRead<LU> for AsTable<(M,)>
where LU: AsLua, M: for<'a> LuaRead<PushGuard<&'a LU>>,

Source§

impl<T, L> LuaRead<L> for UserdataOnStack<'_, T, L>
where L: AsLua, T: Any,