pub trait Work<Q: QueryContext> {
// Required method
fn execute(&self, state: &mut State<'_, Q>);
}
Expand description
We want both Work and State to not contain things that cannot be moved across threads.
Even without threads, we want the ability to continue execution with a close of a State and Work.
E.g., If a Node would contain a tree-sitter cursor, that would not be safe.