Struct LoadPathList

Source
pub struct LoadPathList(Vec<LoadPath>);
Expand description

A list of load paths.

The order of the provided LoadPaths is important, as it defines the priority in which these paths will be explored. Paths that come first (smaller index) have a higher priority.

Tuple Fields§

§0: Vec<LoadPath>

Implementations§

Source§

impl LoadPathList

Source

pub(crate) fn load_path_list_system() -> LoadPathList

Returns the system mode load paths as LoadPathList.

Contains a LoadPath each for the following directories:

  • /etc/voa/
  • /run/voa/
  • /usr/local/share/voa/
  • /usr/share/voa/
Source

pub(crate) fn load_path_list_user() -> LoadPathList

Returns the user mode load paths as LoadPathList.

Contains a LoadPath each for the following directories:

  • $XDG_CONFIG_HOME/voa/
  • the ./voa/ directory in each directory defined in $XDG_CONFIG_DIRS
  • $XDG_RUNTIME_DIR/voa/
  • $XDG_DATA_HOME/voa/
  • the ./voa/ directory in each directory defined in $XDG_DATA_DIRS
Source

pub fn from_effective_user() -> Self

Returns the paths as LoadPathList, depending on calling user.

Checks the effective User ID of the calling process and if the User ID is < 1000 returns the system mode load path list, else the user mode load path list.

§Safety

Calls the unsafe [libc::geteuid] to determine the effective User ID of the process which may panic. A user is not guaranteed to exist after calling this function!

Returns a list of LoadPath references into which a provided LoadPath may point a symlink.

According to the VOA specification, symlinks from one LoadPath may only point to locations in the same LoadPath or to locations in a LoadPath of lower priority.

If current is not contained in self, an empty list is returned. Otherwise, current and any LoadPath with lower priority will be returned.

§Note

Any ephemeral LoadPath is excluded from the result.

Source

pub fn paths(&self) -> &[LoadPath]

Returns a reference to the list of contained LoadPath instances.

Source

pub fn filter(&self, filter: &LoadPathFilter) -> Vec<&LoadPath>

Returns a filtered list of the contained LoadPath instances

Trait Implementations§

Source§

impl Debug for LoadPathList

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.