# simple_jobs ## Very simple persistent jobs A simple wrapper for [`Tokio`] tasks, where the tasks are saved to a backend of choice, and they can be queried for their status. As an example, the crate provides the implementation for saving tasks to the filesystem. ### Defining the backend The trait [`Job`] requires the functions [`Job::save`] and [`Job::load`] that save and restore the struct [`JobInfo`]. ### Using the [`FSJob`] implementation The struct [`FSJob`] implements the trait [`Job`] by saving and restoring the job information from the filesystem. Each job gets a unique file, constructed from the unique job id. #### Example: ```rust async fn example() -> std::io::Result<()> { let job: FSJob = FSJob::new("/tmp".into()); let id = job.submit(|id, job| async move { Ok(0u16) })?; let info = job.load(id)?; println!("Job status: {:?}", info.status); Ok(()) } ``` [`Tokio`]: https://tokio.rs/ License: MIT