Hello.
I would like write generic setter for callbacks (closure).
Def:
pub fn set_generic_write_callback<Closure, T>(&mut self, callback: Closure) -> Result<(), String>
where Closure: FnMut(u32, T) -> Result<(), String>,
Closure: 'static + Sized,
Closure : panic::RefUnwindSafe, T: std::fmt::Display + std::default::Default
{
extern "C" fn std_wr_handler<Closure, T>(args: *mut CallbackArgs) -> STATUS_T
where
Closure: FnMut(u32, T) -> Result<(), String>,
Closure: 'static + Sized,
Closure: panic::RefUnwindSafe, T: std::fmt::Display + std::default::Default
{
/// .. any code
}
}
Call:
let mut counter: u16 = 0;
let my_closure: dyn FnMut(u32, bool) -> Result<(), String> = move |p_arg, state |{
counter = counter + 1;
println!("TEST Closure p_arg: {}, state : {}, counter : {:?}", p_arg, _, counter);
return Ok(());
};
/// v.set_generic_write_callback::<dyn FnMut(u32, bool) -> Result<(), String>, bool>(0, /// true).expect("Error");
How to fix?