#[non_exhaustive]pub struct InstallDirs {Show 17 fields
pub prefix: PathBuf,
pub exec_prefix: PathBuf,
pub bindir: PathBuf,
pub sbindir: PathBuf,
pub libdir: PathBuf,
pub libexecdir: PathBuf,
pub includedir: PathBuf,
pub datarootdir: PathBuf,
pub datadir: PathBuf,
pub mandir: PathBuf,
pub docdir: PathBuf,
pub infodir: PathBuf,
pub localedir: PathBuf,
pub localstatedir: PathBuf,
pub runstatedir: PathBuf,
pub sharedstatedir: PathBuf,
pub sysconfdir: PathBuf,
}
Expand description
Struct containing all known Install directories
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.prefix: PathBuf
§exec_prefix: PathBuf
§bindir: PathBuf
§sbindir: PathBuf
§libdir: PathBuf
§libexecdir: PathBuf
§includedir: PathBuf
§datarootdir: PathBuf
§datadir: PathBuf
§mandir: PathBuf
§docdir: PathBuf
§infodir: PathBuf
§localedir: PathBuf
§localstatedir: PathBuf
§runstatedir: PathBuf
§sysconfdir: PathBuf
Implementations§
Source§impl InstallDirs
impl InstallDirs
pub fn with_project_name<S: AsRef<OsStr> + ?Sized>(name: &S) -> Self
pub fn with_exec_target<S: AsRef<OsStr>>(target: &S) -> Self
pub fn with_project_name_and_target<S: AsRef<OsStr>, T: AsRef<OsStr>>( name: &S, target: &T, ) -> Self
pub fn set_project_name<S: AsRef<OsStr> + ?Sized>(&mut self, name: &S)
pub fn set_from_arg(&mut self, key: &str, val: String) -> Result<(), ()>
pub fn canonicalize(self) -> Result<Self, CanonicalizationError>
pub fn canonicalize_dir<S: AsRef<OsStr> + ?Sized, T: Into<PathBuf>>( base: &S, dir: T, ) -> PathBuf
pub fn read_env(&mut self)
Sourcepub fn as_env(&self) -> impl IntoIterator<Item = (&str, &Path)>
pub fn as_env(&self) -> impl IntoIterator<Item = (&str, &Path)>
Obtains an iterator suitable for passing to std::process::Command::envs
.
The resulting iterator contains each field and the value of that field.
The order which the Items are encounted is unspecified
§Example
use install_dirs::dirs::InstallDirs;
use std::process::{Command, Stdio};
let dirs = InstallDirs::defaults();
let cmd = Command::new("printenv")
.stdin(Stdio::null())
.stdout(Stdio::inherit())
.stderr(Stdio::null())
.env_clear()
.envs(dirs.as_env())
.spawn()
.expect("printenv failed to start");
Trait Implementations§
Source§impl Clone for InstallDirs
impl Clone for InstallDirs
Source§fn clone(&self) -> InstallDirs
fn clone(&self) -> InstallDirs
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for InstallDirs
impl RefUnwindSafe for InstallDirs
impl Send for InstallDirs
impl Sync for InstallDirs
impl Unpin for InstallDirs
impl UnwindSafe for InstallDirs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more