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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
//! Macros for opening files and directories using ambient authority, with
//! paths known at compile time.
/// Opens a file in read-only mode with ambient authority, using a path known
/// at compile time.
///
/// # Examples
///
/// ```rust
/// use open_ambient::open_ambient_file;
///
/// let file = open_ambient_file!("Cargo.toml").unwrap();
/// ```
#[macro_export]
macro_rules! open_ambient_file {
($path:literal) => {
::cap_std::fs::File::open_ambient(
$path,
::cap_std::ambient_authority_known_at_compile_time(),
)
};
}
/// Opens a file with ambient authority with the specified options, but using a
/// path known at compile time.
///
/// # Examples
///
/// ```rust
/// use cap_std::fs::OpenOptions;
/// use open_ambient::open_ambient_file_with;
///
/// let file = open_ambient_file_with!("Cargo.toml", &OpenOptions::new().read(true)).unwrap();
/// ```
#[macro_export]
macro_rules! open_ambient_file_with {
($path:literal, $opts:expr) => {
::cap_std::fs::File::open_ambient_with(
$path,
$opts,
::cap_std::ambient_authority_known_at_compile_time(),
)
};
}
/// Opens a directory with ambient authority, using a path known at compile
/// time.
///
/// # Examples
///
/// ```rust
/// use open_ambient::open_ambient_dir;
///
/// let dir = open_ambient_dir!("src").unwrap();
/// ```
#[macro_export]
macro_rules! open_ambient_dir {
($path:literal) => {
::cap_std::fs::Dir::open_ambient_dir(
$path,
::cap_std::ambient_authority_known_at_compile_time(),
)
};
}