pub struct StreamingValidationOperation {
pub strict: bool,
}Expand description
Streaming validation operation for memory-efficient validation of large files.
Uses the streaming parser from hedl-stream to validate files with O(1) memory
usage regardless of file size. Ideal for:
- Files larger than 100MB
- Validating thousands of files with limited RAM
- Container environments with memory limits
§Memory Profile
- Input: O(1) - buffer size only (~8KB)
- Working:
O(n_ids)- seen ID set for strict validation - Output: O(1) - small statistics struct
- Peak: ~8KB + ID set size (vs. full file size in standard mode)
§Examples
use hedl_cli::batch::{BatchExecutor, StreamingValidationOperation};
use std::path::PathBuf;
let processor = BatchExecutor::default_config();
let files = vec![PathBuf::from("large-file.hedl")];
let operation = StreamingValidationOperation { strict: false };
let results = processor.process_streaming(&files, operation, true)?;
println!("Validated {} files with constant memory", results.success_count());Fields§
§strict: boolEnable strict reference validation
Trait Implementations§
Source§impl Clone for StreamingValidationOperation
impl Clone for StreamingValidationOperation
Source§fn clone(&self) -> StreamingValidationOperation
fn clone(&self) -> StreamingValidationOperation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StreamingValidationOperation
impl Debug for StreamingValidationOperation
Source§impl StreamingBatchOperation for StreamingValidationOperation
impl StreamingBatchOperation for StreamingValidationOperation
Source§type Output = ValidationStats
type Output = ValidationStats
The output type for successful processing
Source§fn process_file_streaming(&self, path: &Path) -> Result<Self::Output, CliError>
fn process_file_streaming(&self, path: &Path) -> Result<Self::Output, CliError>
Process a file using streaming parser. Read more
Source§fn supports_streaming(&self) -> bool
fn supports_streaming(&self) -> bool
Indicate if this operation can run in streaming mode. Read more
Auto Trait Implementations§
impl Freeze for StreamingValidationOperation
impl RefUnwindSafe for StreamingValidationOperation
impl Send for StreamingValidationOperation
impl Sync for StreamingValidationOperation
impl Unpin for StreamingValidationOperation
impl UnwindSafe for StreamingValidationOperation
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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