weavatrix-scan 0.4.4

Deterministic, safe repository scanner for code intelligence
Documentation
//! Deterministic, safe repository scanning for code-intelligence tools.
//!
//! `weavatrix-scan` never executes repository code or reads outside the
//! repository boundary. Symbolic links are skipped by default and guarded by
//! boundary/cycle checks when explicitly enabled.
//!
//! Use [`ScanReport::to_portable`] to cross trust boundaries without exposing
//! host paths, and [`ScanReport::content_provider`] to reopen selected content
//! with snapshot verification.

mod cache;
mod config;
mod content;
mod content_visit;
mod control;
mod default_file_types;
mod delta;
mod error;
mod file_types;
mod file_version;
mod glob;
mod hash;
mod hidden;
mod ignore;
mod multi_scanner;
mod parallel;
mod parallel_multi;
mod path;
#[cfg(feature = "serde")]
mod path_serde;
mod pool;
mod portable_report;
mod report;
mod runtime;
mod scan_finalize;
mod scan_limits;
mod scan_match;
mod scan_stream;
mod scanner;
mod selection;
mod snapshot;
mod stateful_walk;
mod stdout;
mod summary;
mod walk_builder;
mod walk_iter;
mod walk_platform;
mod walk_types;
mod walk_visit;
mod walker;
mod watch;
#[cfg(feature = "notify")]
mod watch_notify;

pub use cache::{SCAN_CACHE_FORMAT_VERSION, ScanCache, ScanCacheEntry};
pub use config::{
    CacheValidationPolicy, ContentDiscoveryMode, ContentValidationPolicy, EvidenceMode,
    IgnorePolicy, ScanLimits, ScanOptions, StandardSkips,
};
pub use content_visit::{
    ChangedContentVisitOutcome, ChangedContentVisitReport, ContentFile, ContentFileStatus,
    ContentVisitControl, ContentVisitEvent, ContentVisitMode, ContentVisitReport,
    MultiContentVisitReport,
};
pub use control::CancellationToken;
pub use delta::{DeltaQuality, ModifiedFile, RenamedFile, ScanDelta};
pub use error::{Error, Result};
pub use file_types::NamedFileTypes;
pub use ignore::{IgnoreFile, RepositoryMatch, RepositoryMatcher};
pub use multi_scanner::{MultiScanReport, MultiScanner};
pub use parallel::{
    ParallelVisitReport, ParallelWalkIter, ParallelWalkReport, ParallelWalker, WalkControl,
    WalkEvent,
};
pub use parallel_multi::{
    ParallelMultiVisitReport, ParallelMultiWalkEvent, ParallelMultiWalkReport, ParallelMultiWalker,
};
pub use portable_report::{
    PortableIgnoreSourceEvidence, PortableScanReport, PortableScanWarning, PortableScannedFile,
    PortableSkippedEntry,
};
pub use report::{
    CompactContentEvidence, CompactScanReport, CompactScannedFile, FileIdentity, FileVersion,
    IgnoreSourceEvidence, IgnoreSourceKind, ScanCacheStats, ScanReport, ScanTermination,
    ScanWarning, ScannedFile, SkipKind, SkippedEntry,
};
#[cfg(feature = "rayon")]
pub use runtime::RayonExecutor;
pub use runtime::{ParallelExecutor, ParallelJob, ParallelRuntime};
pub use scan_stream::{ScanSink, ScanSinkControl, ScanStreamReport};
pub use scanner::{Scanner, scan_repository, scan_repository_compact};
pub use selection::{SelectionDecision, SelectionDisposition, SelectionMatcher};
pub use snapshot::{SnapshotContent, SnapshotContentProvider, SnapshotEvidence, SnapshotReadError};
pub use stateful_walk::{
    ParallelStatefulWalker, StatefulWalkBuilder, StatefulWalkEntry, StatefulWalker,
};
pub use summary::ScanSummary;
pub use walk_builder::{MultiWalker, WalkBuilder};
pub use walker::{
    ErrorPolicy, RootSymlinkPolicy, WalkEntry, WalkError, WalkOperation, WalkOptions,
    WalkSkipReason, Walker,
};
pub use watch::{WatchEvent, WatchEventKind, WatchPlan, WatcherEventAdapter};