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_exe
for 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.