watchexec/crates/supervisor/src/errors.rs

17 lines
409 B
Rust

//! Error types.
use std::{
io::Error,
sync::{Arc, OnceLock},
};
/// Convenience type for a [`std::io::Error`] which can be shared across threads.
pub type SyncIoError = Arc<OnceLock<Error>>;
/// Make a [`SyncIoError`] from a [`std::io::Error`].
pub fn sync_io_error(err: Error) -> SyncIoError {
let lock = OnceLock::new();
lock.set(err).expect("unreachable: lock was just created");
Arc::new(lock)
}