Struct tor_config::CfgPath
source · pub struct CfgPath(/* private fields */);Expand description
A path in a configuration file: tilde expansion is performed, along with expansion of certain variables.
The supported variables are:
ARTI_CACHE: an arti-specific cache directory.ARTI_CONFIG: an arti-specific configuration directory.ARTI_SHARED_DATA: an arti-specific directory in the user’s “shared data” space.ARTI_LOCAL_DATA: an arti-specific directory in the user’s “local data” space.PROGRAM_DIR: the directory of the currently executing binary. See documentation forstd::env::current_exefor security notes.USER_HOME: the user’s home directory.
These variables are implemented using the directories crate, and
so should use appropriate system-specific overrides under the
hood. (Some of those overrides are based on environment variables.)
For more information, see that crate’s documentation.
Alternatively, a CfgPath can contain literal PathBuf, which will not be expanded.
Implementations§
source§impl CfgPath
impl CfgPath
sourcepub fn new_literal<P: Into<PathBuf>>(path: P) -> Self
pub fn new_literal<P: Into<PathBuf>>(path: P) -> Self
Construct a new CfgPath designating a literal not-to-be-expanded PathBuf
sourcepub fn path(&self) -> Result<PathBuf, CfgPathError>
pub fn path(&self) -> Result<PathBuf, CfgPathError>
Return the path on disk designated by this CfgPath.
sourcepub fn as_unexpanded_str(&self) -> Option<&str>
pub fn as_unexpanded_str(&self) -> Option<&str>
If the CfgPath is a string that should be expanded, return the (unexpanded) string,
Before use, this string would have be to expanded. So if you want a path to actually use,
call path instead.
Returns None if the CfgPath is a literal PathBuf not intended for expansion.
sourcepub fn as_literal_path(&self) -> Option<&Path>
pub fn as_literal_path(&self) -> Option<&Path>
If the CfgPath designates a literal not-to-be-expanded Path, return a reference to it
Returns None if the CfgPath is a string which should be expanded, which is the
usual case.
Trait Implementations§
source§impl<'de> Deserialize<'de> for CfgPath
impl<'de> Deserialize<'de> for CfgPath
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl PartialEq for CfgPath
impl PartialEq for CfgPath
impl Eq for CfgPath
impl StructuralEq for CfgPath
impl StructuralPartialEq for CfgPath
Auto Trait Implementations§
impl RefUnwindSafe for CfgPath
impl Send for CfgPath
impl Sync for CfgPath
impl Unpin for CfgPath
impl UnwindSafe for CfgPath
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
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.