typed_path/
lib.rs

1#![cfg_attr(feature = "std", doc = include_str!("../README.md"))]
2#![cfg_attr(not(feature = "std"), no_std)]
3
4#[doc = include_str!("../README.md")]
5#[cfg(all(doctest, feature = "std"))]
6pub struct ReadmeDoctests;
7
8extern crate alloc;
9
10mod no_std_compat {
11    #[allow(unused_imports)]
12    pub use alloc::{
13        boxed::Box,
14        string::{String, ToString},
15        vec,
16        vec::Vec,
17    };
18}
19
20#[macro_use]
21mod common;
22#[cfg(all(not(target_family = "wasm"), any(windows, unix)))]
23mod native;
24#[cfg(all(not(target_family = "wasm"), any(windows, unix)))]
25mod platform;
26mod typed;
27mod unix;
28#[cfg(all(feature = "std", not(target_family = "wasm")))]
29pub mod utils;
30mod windows;
31
32mod private {
33    /// Used to mark traits as sealed to prevent implements from others outside of this crate
34    pub trait Sealed {}
35}
36
37pub use common::*;
38#[cfg(all(not(target_family = "wasm"), any(windows, unix)))]
39pub use native::*;
40#[cfg(all(not(target_family = "wasm"), any(windows, unix)))]
41pub use platform::*;
42pub use typed::*;
43pub use unix::*;
44pub use windows::*;
45
46/// Contains constants associated with different path formats.
47pub mod constants {
48    use super::unix::constants as unix_constants;
49    use super::windows::constants as windows_constants;
50
51    /// Contains constants associated with Unix paths.
52    pub mod unix {
53        pub use super::unix_constants::*;
54    }
55
56    /// Contains constants associated with Windows paths.
57    pub mod windows {
58        pub use super::windows_constants::*;
59    }
60}