Skip to main content

Walk

Struct Walk 

Source
pub struct Walk {
    pub dirs: Vec<PathBuf>,
    pub stopped: StopReason,
}
Expand description

The directories walked: from the start outward (near to far).

Fields§

§dirs: Vec<PathBuf>

Directories checked in order, [0] is the start.

§stopped: StopReason

Why the walk stopped. pmpx info displays it — “why was no project found” is most often answered by having hit one of these.

Implementations§

Source§

impl Walk

The two questions one walk up can answer.

Both read the same candidate list, so a caller that needs both walks once and asks twice; the stop conditions cannot drift apart because there is only one traversal.

Source

pub fn project_root(&self, is_root: impl Fn(&Path) -> bool) -> Option<PathBuf>

The project root: the nearest walked directory is_root accepts.

is_root comes from the caller, usually “this directory has a .pmpx.toml, or has one of the detect files declared by an installed plugin”. It is a parameter so that this module does not need to know about plugins.

Source

pub fn config_paths(&self) -> Vec<PathBuf>

Collect every .pmpx.toml on this walk, near to far.

The stop conditions match Walk::project_root; this order is the “nearest wins” merge rule of pmpx_project::MergedProjectConfig.

Trait Implementations§

Source§

impl Clone for Walk

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Walk

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for Walk

Source§

impl PartialEq for Walk

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Walk

Auto Trait Implementations§

§

impl Freeze for Walk

§

impl RefUnwindSafe for Walk

§

impl Send for Walk

§

impl Sync for Walk

§

impl Unpin for Walk

§

impl UnsafeUnpin for Walk

§

impl UnwindSafe for Walk

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.