named_sem/
error.rs

1#[cfg(unix)]
2use std::io;
3
4use thiserror::Error;
5
6/// Common errors when dealing semaphore.
7#[derive(Debug, Error)]
8pub enum Error {
9    /// Invalid character in name
10    #[error("Invalid character in name")]
11    InvalidCharacter,
12    /// Inappropriate count for semaphore
13    #[error("Inappropriate count for sempaphore")]
14    InappropriateCount,
15    /// Failed to create named semaphore.
16    #[cfg(unix)]
17    #[error("Failed to create named semaphore: {0}")]
18    CreateFailed(#[source] io::Error),
19    /// Failed to create named semaphore.
20    #[cfg(windows)]
21    #[error("Failed to create named semaphore: {0}")]
22    CreateFailed(#[source] windows::core::Error),
23    /// Failed to wait semaphore
24    #[cfg(unix)]
25    #[error("Failed to wait semaphore: {0}")]
26    WaitFailed(#[source] io::Error),
27    /// Failed to wait semaphore
28    #[cfg(windows)]
29    #[error("Failed to wait semaphore: {0}")]
30    WaitFailed(#[source] windows::core::Error),
31    /// Wait timeout
32    #[error("Wait timeout")]
33    WaitTimeout,
34    /// Invalid wait timeout limit
35    #[error("Invalid wait timeout limit")]
36    InvalidWaitTimeout,
37    /// Named semaphore would block.
38    ///
39    /// This error will only occur when calling [`NamedSemaphore::try_wait`][crate::NamedSemaphore::try_wait]
40    #[error("Named semaphore would block")]
41    WouldBlock,
42    /// Failed to post semaphore.
43    #[cfg(unix)]
44    #[error("Failed to post semaphore: {0}")]
45    PostFailed(#[source] io::Error),
46    /// Failed to post semaphore.
47    #[cfg(windows)]
48    #[error("Failed to post semaphore: {0}")]
49    PostFailed(#[source] windows::core::Error),
50    /// Unexpected error.
51    #[error("Unexpected error")]
52    Unexpected,
53}