This crate is designed for applications where you need to do some expensive
task, but the main thread can carry on just fine without that task's result.
The most common domain for this type of problem is in asset loading. This crate
allows you to start loading assets and then render/play/use them when they are
finished loading.

usestd::{thread, time::Duration};
useemployer::*;
// Create a new `Employer`// We give it a work function that will be run on each inputletemployer=Employer::new(|i: i32| {
// Sleep to simulate a more complex computationthread::sleep(Duration::from_millis(100));
2*i+1
});
// Start some jobsemployer.start(1);
employer.start(2);
employer.start(3);
// Each job should take about 100 ms, so if we check them// immediately, they should still all be in progressassert!(employer.get(&1).is_in_progress());
assert!(employer.get(&2).is_in_progress());
assert!(employer.get(&3).is_in_progress());
// Sleep the main thread to let the jobs finishthread::sleep(Duration::from_millis(200));
// Check the resultsassert_eq!(employer.get(&1).finished().unwrap(), 3);
assert_eq!(employer.get(&2).finished().unwrap(), 5);
assert_eq!(employer.get(&3).finished().unwrap(), 7);