pub struct ScanViewOptions {
pub roots: Vec<PathBuf>,
pub scan_args: Vec<String>,
pub max_files: Option<usize>,
}Expand description
What a scan walks.
Fields§
§roots: Vec<PathBuf>AF.2: the paths to scan — each a FILE or a DIRECTORY. A directory is walked; a file is taken as given, without asking whether any source claimed its extension, because naming a file IS the claim.
Empty means “not resolved yet”, not “scan nothing”. The scan then asks every live source for its own roots and falls back to the project root if none answers. It cannot be resolved here, because a source’s answer comes from the guest and the opener runs on the dispatch path.
That is why Default is now empty where it used to be the project
root: the fallback moved to the one place that can see every source’s
answer, rather than being baked in before any of them was asked.
scan_args: Vec<String>OA.11a: the view’s own scan arguments, handed to every source’s begin
uninterpreted. The host routes these; it never reads them.
Separate from roots because they have separate owners. The host must
understand a root — it does the walk — and must not need to understand
this: it is the source’s own vocabulary (org’s agenda dispatcher names
which custom command to run). Folding the two together means a command
key gets taken for a directory path and the scan silently covers
nothing.
Sticky across a refresh exactly as roots is, and for the same reason:
gr re-enters through this path, so an agenda opened for one command
must not quietly revert to the default one. Replaced only when a new
open supplies its own.
max_files: Option<usize>Cap on files offered to a source (not files walked). None =
unlimited. A bound exists because the walk is unattended: a user who
runs the agenda from $HOME should get a slow answer, not a hung one.
Applies to the UNION across roots, not per root — a cap that reset for each configured path would not be a bound.
Trait Implementations§
Source§impl Clone for ScanViewOptions
impl Clone for ScanViewOptions
Source§fn clone(&self) -> ScanViewOptions
fn clone(&self) -> ScanViewOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ScanViewOptions
impl Debug for ScanViewOptions
Source§impl Default for ScanViewOptions
impl Default for ScanViewOptions
Source§fn default() -> ScanViewOptions
fn default() -> ScanViewOptions
Auto Trait Implementations§
impl Freeze for ScanViewOptions
impl RefUnwindSafe for ScanViewOptions
impl Send for ScanViewOptions
impl Sync for ScanViewOptions
impl Unpin for ScanViewOptions
impl UnsafeUnpin for ScanViewOptions
impl UnwindSafe for ScanViewOptions
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more