#![cfg(feature = "isolate")]
use extrasafe::isolate::Isolate;
use std::collections::HashMap;
use std::path::PathBuf;
const EXAMPLE_ISOLATE: &str = "user guide isolate";
fn do_cool_thing() {
println!("I'm going to read some files from /cooldir and do cool stuff with it!");
}
fn setup_isolate(name: &'static str) -> Isolate {
let path = std::env::var("COOL_DIRECTORY").unwrap();
let path = PathBuf::from(path);
Isolate::new(name, do_cool_thing)
.add_bind_mount(path, "/cooldir")
.set_rootfs_size(1)
}
fn main() {
Isolate::main_hook(EXAMPLE_ISOLATE, setup_isolate);
let env_vars = HashMap::from([("COOL_DIRECTORY".to_string(), "/".to_string())]);
let output = Isolate::run(EXAMPLE_ISOLATE, &env_vars).unwrap();
assert!(output.status.success());
println!("stdout: {}", String::from_utf8_lossy(&output.stdout));
}