Trait TypedDataFields

Source
pub trait TypedDataFields<'lua, T> {
    // Required methods
    fn document(&mut self, doc: &str) -> &mut Self;
    fn add_field<V>(&mut self, name: impl AsRef<str>, value: V)
       where V: IntoLua<'lua> + Clone + 'static + Typed;
    fn add_field_method_get<S, R, M>(&mut self, name: &S, method: M)
       where S: AsRef<str> + ?Sized,
             R: IntoLua<'lua> + Typed,
             M: 'static + MaybeSend + Fn(&'lua Lua, &T) -> Result<R>;
    fn add_field_method_set<S, A, M>(&mut self, name: &S, method: M)
       where S: AsRef<str> + ?Sized,
             A: FromLua<'lua> + Typed,
             M: 'static + MaybeSend + FnMut(&'lua Lua, &mut T, A) -> Result<()>;
    fn add_field_method_get_set<S, R, A, GET, SET>(
        &mut self,
        name: &S,
        get: GET,
        set: SET,
    )
       where S: AsRef<str> + ?Sized,
             R: IntoLua<'lua> + Typed,
             A: FromLua<'lua> + Typed,
             GET: 'static + MaybeSend + Fn(&'lua Lua, &T) -> Result<R>,
             SET: 'static + MaybeSend + Fn(&'lua Lua, &mut T, A) -> Result<()>;
    fn add_field_function_get<S, R, F>(&mut self, name: &S, function: F)
       where S: AsRef<str> + ?Sized,
             R: IntoLua<'lua> + Typed,
             F: 'static + MaybeSend + Fn(&'lua Lua, AnyUserData<'lua>) -> Result<R>;
    fn add_field_function_set<S, A, F>(&mut self, name: &S, function: F)
       where S: AsRef<str> + ?Sized,
             A: FromLua<'lua> + Typed,
             F: 'static + MaybeSend + FnMut(&'lua Lua, AnyUserData<'lua>, A) -> Result<()>;
    fn add_field_function_get_set<S, R, A, GET, SET>(
        &mut self,
        name: &S,
        get: GET,
        set: SET,
    )
       where S: AsRef<str> + ?Sized,
             R: IntoLua<'lua> + Typed,
             A: FromLua<'lua> + Typed,
             GET: 'static + MaybeSend + Fn(&'lua Lua, AnyUserData<'lua>) -> Result<R>,
             SET: 'static + MaybeSend + Fn(&'lua Lua, AnyUserData<'lua>, A) -> Result<()>;
    fn add_meta_field<R, F>(&mut self, meta: MetaMethod, f: F)
       where F: 'static + MaybeSend + Fn(&'lua Lua) -> Result<R>,
             R: IntoLua<'lua> + Typed;
}
Expand description

Typed variant of [UserDataMethods]

Required Methods§

Source

fn document(&mut self, doc: &str) -> &mut Self

Adds documentation to the next field that gets added

Source

fn add_field<V>(&mut self, name: impl AsRef<str>, value: V)
where V: IntoLua<'lua> + Clone + 'static + Typed,

Typed version of add_field

Source

fn add_field_method_get<S, R, M>(&mut self, name: &S, method: M)
where S: AsRef<str> + ?Sized, R: IntoLua<'lua> + Typed, M: 'static + MaybeSend + Fn(&'lua Lua, &T) -> Result<R>,

Typed version of add_field_method_get

Source

fn add_field_method_set<S, A, M>(&mut self, name: &S, method: M)
where S: AsRef<str> + ?Sized, A: FromLua<'lua> + Typed, M: 'static + MaybeSend + FnMut(&'lua Lua, &mut T, A) -> Result<()>,

Typed version of dd_field_method_set

Source

fn add_field_method_get_set<S, R, A, GET, SET>( &mut self, name: &S, get: GET, set: SET, )
where S: AsRef<str> + ?Sized, R: IntoLua<'lua> + Typed, A: FromLua<'lua> + Typed, GET: 'static + MaybeSend + Fn(&'lua Lua, &T) -> Result<R>, SET: 'static + MaybeSend + Fn(&'lua Lua, &mut T, A) -> Result<()>,

Typed version of add_field_method_get and add_field_method_set combined

Source

fn add_field_function_get<S, R, F>(&mut self, name: &S, function: F)
where S: AsRef<str> + ?Sized, R: IntoLua<'lua> + Typed, F: 'static + MaybeSend + Fn(&'lua Lua, AnyUserData<'lua>) -> Result<R>,

Typed version of add_field_function_get

Source

fn add_field_function_set<S, A, F>(&mut self, name: &S, function: F)
where S: AsRef<str> + ?Sized, A: FromLua<'lua> + Typed, F: 'static + MaybeSend + FnMut(&'lua Lua, AnyUserData<'lua>, A) -> Result<()>,

Typed version of add_field_function_set

Source

fn add_field_function_get_set<S, R, A, GET, SET>( &mut self, name: &S, get: GET, set: SET, )
where S: AsRef<str> + ?Sized, R: IntoLua<'lua> + Typed, A: FromLua<'lua> + Typed, GET: 'static + MaybeSend + Fn(&'lua Lua, AnyUserData<'lua>) -> Result<R>, SET: 'static + MaybeSend + Fn(&'lua Lua, AnyUserData<'lua>, A) -> Result<()>,

Typed version of add_field_function_get and add_field_function_set combined

Source

fn add_meta_field<R, F>(&mut self, meta: MetaMethod, f: F)
where F: 'static + MaybeSend + Fn(&'lua Lua) -> Result<R>, R: IntoLua<'lua> + Typed,

Typed version of add_meta_field

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.

Implementors§

Source§

impl<'lua, 'ctx, T: UserData, U: UserDataFields<'lua, T>> TypedDataFields<'lua, T> for WrappedBuilder<'ctx, U>

Source§

impl<'lua, T: TypedUserData> TypedDataFields<'lua, T> for TypedClassBuilder