1#[cfg(unix)]
2use std::io;
3
4use thiserror::Error;
5
6#[derive(Debug, Error)]
8pub enum Error {
9 #[error("Invalid character in name")]
11 InvalidCharacter,
12 #[error("Inappropriate count for sempaphore")]
14 InappropriateCount,
15 #[cfg(unix)]
17 #[error("Failed to create named semaphore: {0}")]
18 CreateFailed(#[source] io::Error),
19 #[cfg(windows)]
21 #[error("Failed to create named semaphore: {0}")]
22 CreateFailed(#[source] windows::core::Error),
23 #[cfg(unix)]
25 #[error("Failed to wait semaphore: {0}")]
26 WaitFailed(#[source] io::Error),
27 #[cfg(windows)]
29 #[error("Failed to wait semaphore: {0}")]
30 WaitFailed(#[source] windows::core::Error),
31 #[error("Wait timeout")]
33 WaitTimeout,
34 #[error("Invalid wait timeout limit")]
36 InvalidWaitTimeout,
37 #[error("Named semaphore would block")]
41 WouldBlock,
42 #[cfg(unix)]
44 #[error("Failed to post semaphore: {0}")]
45 PostFailed(#[source] io::Error),
46 #[cfg(windows)]
48 #[error("Failed to post semaphore: {0}")]
49 PostFailed(#[source] windows::core::Error),
50 #[error("Unexpected error")]
52 Unexpected,
53}