Rust Tasking
Simple tasking utility that automatically replaces tasks based on descriptors.
Currently only tokio implementation.
Utilities
Task: update by descriptor, abort on drop.
TaskHub: update by a list of descriptors, using Task internally.
Usage
#[derive(PartialEq, Clone, Debug)]
struct MyTaskDescriptor {
data: String,
}
impl TaskDescriptor for MyTaskDescriptor {
fn compare(&self, other: &Self) -> bool {
self == other
}
}
let task = Task::new(
"example",
|MyTaskDescriptor { data }, abort_receiver| async move {
println!("task data: {data}");
abort_receiver.await?;
Ok(())
},
Default::default(),
);
task
.update(MyTaskDescriptor {
data: "foo".to_owned(),
})
.await;
Checkout examples for usage.
License
MIT License.