#[non_exhaustive]pub enum IngestProgress {
Started {
total: usize,
},
DocumentSkipped {
uri: String,
},
DocumentDone {
uri: String,
entities: usize,
edges: usize,
},
DocumentFailed {
uri: String,
reason: String,
},
DocumentRejected {
uri: String,
reason: String,
},
Finished,
}Expand description
Incremental progress event emitted by crate::semantic::SemanticMemory::ingest_documents.
Sent on the mpsc::Sender<IngestProgress> channel passed to ingest_documents.
The channel is advisory — a full or dropped receiver never fails the batch.
§Wire contract
Events arrive in this order per batch:
Started → (DocumentSkipped | DocumentDone | DocumentFailed | DocumentRejected)* → Finished
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Started
Emitted once before any document is processed.
DocumentSkipped
A document was skipped because its (source_uri, content_hash) pair is already
in the ingest ledger, or it was a duplicate within the same batch.
DocumentDone
A document was successfully extracted and stored.
Fields
DocumentFailed
A document failed to extract or store; the batch continues.
Fields
DocumentRejected
A document was rejected by the post-extract validator (sanitizer).
Rejected documents write nothing to the graph or ledger. They are counted
separately from failures in IngestReport so operators can distinguish
sanitizer drops from extraction errors.
Fields
Finished
Emitted once after all documents have been processed.
Trait Implementations§
Source§impl Clone for IngestProgress
impl Clone for IngestProgress
Source§fn clone(&self) -> IngestProgress
fn clone(&self) -> IngestProgress
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for IngestProgress
impl RefUnwindSafe for IngestProgress
impl Send for IngestProgress
impl Sync for IngestProgress
impl Unpin for IngestProgress
impl UnsafeUnpin for IngestProgress
impl UnwindSafe for IngestProgress
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request