Narsil / rdev

Simple library to listen and send events to keyboard and mouse (MacOS, Windows, Linux)
MIT License
503 stars 124 forks source link

make grab FnMut #124

Open tokuhirom opened 9 months ago

tokuhirom commented 9 months ago

I want to use a mutable object in callback.

I want to write a code like this:

    let mut handler = Handler::new(6);
    if let Err(error) = grab(move |event| {
        handler.callback(event)
    }) {
        println!("Error: {:?}", error)
    }

struct Handler {
    buffer: VecDeque<Key>,
    capacity: usize,
    modifiers: HashSet<Modifier>,
}

impl Handler {
    fn new(capacity: usize) -> Handler {
        Handler {
            buffer: VecDeque::with_capacity(capacity),
            capacity,
            modifiers: HashSet::new(),
        }
    }

    fn callback(&mut self, event: Event) -> Option<Event> {
        // implement here.
    }
}
BeezBeez commented 4 months ago

Hi ! Any news about this PR ?

I need grab callback to be FnMut too.