pub struct IngestReport {
pub batch_id: String,
pub documents_total: usize,
pub skipped: usize,
pub succeeded: usize,
pub rejected: usize,
pub failed: Vec<IngestFailure>,
pub entities_total: usize,
pub edges_total: usize,
pub dry_run: bool,
pub hub_degree: Vec<HubDegree>,
}Expand description
Aggregate result returned by crate::semantic::SemanticMemory::ingest_documents.
In dry-run mode (dry_run = true), entities_total and edges_total are projected
post-sanitization counts and hub_degree contains the top-N entities by degree.
No writes occur.
In live mode, entities_total and edges_total reflect actual upserts/inserts.
§Dry-run accuracy
Dry-run counts are post-sanitization but pre-quality-gate upper bounds. The live write
path applies self-loop rejection and admission control in insert_edges /
upsert_entities that may reduce the final entity and edge counts relative to the
dry-run projection. Rejected documents do NOT contribute to entities_total or
edges_total in either mode.
Fields§
§batch_id: StringBatch identifier shared by all documents processed in this call.
documents_total: usizeTotal number of documents in the input (after intra-batch dedup).
skipped: usizeNumber of documents skipped (already ingested or intra-batch duplicate).
succeeded: usizeNumber of documents successfully processed.
rejected: usizeNumber of documents rejected by the post-extract validator (sanitizer).
Rejected documents write nothing to the graph or ledger and contribute zero
to entities_total / edges_total. They are distinct from failed documents,
which represent extraction or storage errors.
failed: Vec<IngestFailure>Per-document failure records.
entities_total: usizeTotal entities upserted (live) or projected (dry-run).
Excludes rejected documents. In dry-run mode this is a post-sanitization upper bound; the live run may produce fewer entities after admission control.
edges_total: usizeTotal edges inserted (live) or projected (dry-run).
Excludes rejected documents. In dry-run mode this is a post-sanitization upper bound; the live run may produce fewer edges after self-loop rejection and admission control.
dry_run: booltrue when ingest_documents was called with dry_run = true.
hub_degree: Vec<HubDegree>Top-N entities by projected edge degree. Populated only in dry-run mode (FR-026).
Degrees are computed from post-sanitization extractor output (rejected documents do not contribute). They represent pre-quality-gate upper bounds — not the final graph topology.
Trait Implementations§
Source§impl Clone for IngestReport
impl Clone for IngestReport
Source§fn clone(&self) -> IngestReport
fn clone(&self) -> IngestReport
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 IngestReport
impl Debug for IngestReport
Source§impl Default for IngestReport
impl Default for IngestReport
Source§fn default() -> IngestReport
fn default() -> IngestReport
Auto Trait Implementations§
impl Freeze for IngestReport
impl RefUnwindSafe for IngestReport
impl Send for IngestReport
impl Sync for IngestReport
impl Unpin for IngestReport
impl UnsafeUnpin for IngestReport
impl UnwindSafe for IngestReport
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