1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#![doc = include_str!("../README.md")]
#![cfg_attr(feature = "doc_cfg", feature(doc_cfg))]
mod platform_check;

// TODO(2.1.0) inspect panic points

#[macro_use]
mod macros;

pub mod bound_util;
pub mod error;
pub mod local_socket;
pub mod unnamed_pipe;

/// Platform-specific functionality for various interprocess communication primitives.
///
/// This module houses two modules: `unix` and `windows`, although only one at a time will be
/// visible, depending on which platform the documentation was built on. If you're using
/// [Docs.rs](https://docs.rs/interprocess/latest/interprocess), you can view the documentation for
/// Windows, macOS, Linux and FreeBSD using the Platform menu on the Docs.rs-specific header bar at
/// the top of the page. Docs.rs builds also have the nightly-only `doc_cfg` feature enabled by
/// default, with which everything platform-specific has a badge next to it which specifies the
/// `cfg(...)` conditions for that item to be available.
pub mod os {
	#[cfg(unix)]
	#[cfg_attr(feature = "doc_cfg", doc(cfg(unix)))]
	pub mod unix;
	#[cfg(windows)]
	#[cfg_attr(feature = "doc_cfg", doc(cfg(windows)))]
	pub mod windows;
}

mod try_clone;
pub use try_clone::*;

mod atomic_enum;
mod misc;
pub(crate) use {atomic_enum::*, misc::*};

#[cfg(test)]
#[path = "../tests/index.rs"]
#[allow(
	clippy::unwrap_used,
	clippy::arithmetic_side_effects,
	clippy::indexing_slicing
)]
mod tests;