Skip to main content

typed_path/
lib.rs

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