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(), ) }; }