pub struct FileDiscovery { /* private fields */ }Expand description
File discovery engine with glob pattern support.
Discovers files matching specified patterns with configurable filtering and traversal options.
Implementations§
Source§impl FileDiscovery
impl FileDiscovery
Sourcepub fn new(patterns: Vec<String>, config: DiscoveryConfig) -> Self
pub fn new(patterns: Vec<String>, config: DiscoveryConfig) -> Self
Create a new file discovery instance.
§Arguments
patterns- List of file patterns (glob patterns or explicit paths)config- Discovery configuration
§Examples
use hedl_cli::file_discovery::{FileDiscovery, DiscoveryConfig};
let discovery = FileDiscovery::new(
vec!["*.hedl".to_string(), "data/*.hedl".to_string()],
DiscoveryConfig::default()
);Sourcepub fn validate_patterns(&self) -> Result<(), CliError>
pub fn validate_patterns(&self) -> Result<(), CliError>
Validate all patterns before discovery.
Checks that patterns are valid glob expressions.
§Returns
Ok(())- All patterns are validErr(CliError::GlobPattern)- Invalid pattern found
§Examples
use hedl_cli::file_discovery::{FileDiscovery, DiscoveryConfig};
let discovery = FileDiscovery::new(
vec!["*.hedl".to_string()],
DiscoveryConfig::default()
);
assert!(discovery.validate_patterns().is_ok());Sourcepub fn discover(&self) -> Result<Vec<PathBuf>, CliError>
pub fn discover(&self) -> Result<Vec<PathBuf>, CliError>
Discover all files matching the patterns.
Expands glob patterns and applies configured filters.
§Returns
Ok(Vec<PathBuf>)- List of discovered file pathsErr(CliError)- On pattern errors, I/O failures, or no matches
§Errors
Returns error if:
- Pattern is invalid
- No files match any pattern
- Directory traversal fails
§Examples
use hedl_cli::file_discovery::{FileDiscovery, DiscoveryConfig};
let discovery = FileDiscovery::new(
vec!["tests/*.hedl".to_string()],
DiscoveryConfig::default()
);
let files = discovery.discover()?;
println!("Found {} files", files.len());Trait Implementations§
Auto Trait Implementations§
impl Freeze for FileDiscovery
impl RefUnwindSafe for FileDiscovery
impl Send for FileDiscovery
impl Sync for FileDiscovery
impl Unpin for FileDiscovery
impl UnwindSafe for FileDiscovery
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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