Skip to main content

Scanner

Struct Scanner 

Source
pub struct Scanner<'a> { /* private fields */ }
Expand description

Scans pack directories and matches files against rules.

Implementations§

Source§

impl<'a> Scanner<'a>

Source

pub fn new(fs: &'a dyn Fs) -> Self

Source

pub fn scan_pack( &self, pack: &Pack, rules: &[Rule], pack_ignore: &[String], ) -> Result<Vec<RuleMatch>>

Scan a pack directory and return all rule matches.

Walks the pack directory (non-recursively for top-level, but directories matched by the directory pattern are included as single entries). Skips hidden files (except .config), special files (.dodot.toml, .dodotignore), and files matching pack-level ignore patterns.

This is a convenience wrapper over [walk_pack] + [match_entries].

Source

pub fn walk_pack( &self, pack_path: &Path, ignore_patterns: &[String], ) -> Result<Vec<PackEntry>>

Walk a pack directory and return raw file entries.

Skips hidden files (except .config), special files (.dodot.toml, .dodotignore), and files matching pack-level ignore patterns. Walk the pack’s top-level children only.

Returns depth-1 entries (files and directories directly under the pack root). Nested files/dirs are not returned — handlers that receive a directory entry decide internally whether and how to recurse (e.g. symlink falls back to per-file mode when protected_paths or targets reach inside the dir).

Preprocessing is the one exception: it still needs to see nested files to discover templates (*.tmpl) and the like. Use Scanner::walk_pack_recursive for that use case.

Source

pub fn walk_pack_recursive( &self, pack_path: &Path, ignore_patterns: &[String], ) -> Result<Vec<PackEntry>>

Walk the pack recursively. Only used by the preprocessing pipeline.

Source

pub fn match_entries( &self, entries: &[PackEntry], rules: &[Rule], pack_name: &str, ) -> Vec<RuleMatch>

Match a list of entries against rules, returning rule matches.

This is the second half of the scan pipeline: given raw entries (from [walk_pack] or from preprocessing), match each against the rule set to determine which handler processes it.

Auto Trait Implementations§

§

impl<'a> Freeze for Scanner<'a>

§

impl<'a> !RefUnwindSafe for Scanner<'a>

§

impl<'a> Send for Scanner<'a>

§

impl<'a> Sync for Scanner<'a>

§

impl<'a> Unpin for Scanner<'a>

§

impl<'a> UnsafeUnpin for Scanner<'a>

§

impl<'a> !UnwindSafe for Scanner<'a>

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more