watchexec_supervisor/
errors.rs

1//! Error types.
2
3use std::{
4	io::Error,
5	sync::{Arc, OnceLock},
6};
7
8/// Convenience type for a [`std::io::Error`] which can be shared across threads.
9pub type SyncIoError = Arc<OnceLock<Error>>;
10
11/// Make a [`SyncIoError`] from a [`std::io::Error`].
12#[must_use]
13pub fn sync_io_error(err: Error) -> SyncIoError {
14	let lock = OnceLock::new();
15	lock.set(err).expect("unreachable: lock was just created");
16	Arc::new(lock)
17}