interprocess/
lib.rs

1#![doc = include_str!("../README.md")]
2#![cfg_attr(feature = "doc_cfg", feature(doc_cfg))]
3// If this was in Cargo.toml, it would cover examples as well
4#![warn(
5    missing_docs,
6    clippy::panic_in_result_fn,
7    clippy::missing_assert_message,
8    clippy::indexing_slicing,
9    clippy::arithmetic_side_effects
10)]
11
12mod platform_check;
13
14// TODO(2.3.0) inspect panic points
15
16#[macro_use]
17mod macros;
18
19pub mod bound_util;
20pub mod error;
21pub mod local_socket;
22pub mod unnamed_pipe;
23
24/// Platform-specific functionality for various interprocess communication primitives.
25///
26/// This module houses two modules: `unix` and `windows`, although only one at a time will be
27/// visible, depending on which platform the documentation was built on. If you're using
28/// [Docs.rs](https://docs.rs/interprocess/latest/interprocess), you can view the documentation for
29/// Windows, macOS, Linux and FreeBSD using the Platform menu on the Docs.rs-specific header bar at
30/// the top of the page. Docs.rs builds also have the nightly-only `doc_cfg` feature enabled by
31/// default, with which everything platform-specific has a badge next to it which specifies the
32/// `cfg(...)` conditions for that item to be available.
33pub mod os {
34    #[cfg(unix)]
35    #[cfg_attr(feature = "doc_cfg", doc(cfg(unix)))]
36    pub mod unix;
37    #[cfg(windows)]
38    #[cfg_attr(feature = "doc_cfg", doc(cfg(windows)))]
39    pub mod windows;
40}
41
42mod try_clone;
43pub use try_clone::*;
44
45mod atomic_enum;
46mod misc;
47pub(crate) use {atomic_enum::*, misc::*};
48
49#[cfg(test)]
50#[path = "../tests/index.rs"]
51#[allow(clippy::unwrap_used, clippy::arithmetic_side_effects, clippy::indexing_slicing)]
52mod tests;