pub trait ObjectAbsorb: Send + Sync {
// Required method
fn absorb(&self, job: IndexJob) -> Result<()>;
}Expand description
The object-level ingress, called by the drain and by nothing else here.
The indexer knows extents; it does not know what a git object is, and it must
not learn — the split is what keeps the pack grammar out of this file and the
channel out of the store’s. The implementor is
GitStore’s absorber, which is the same object
a read falls back to, so the background path and the fallback path are one
path (LAW 5).
The argument is an IndexJob — 24 bytes, Copy, no buffer. Zero-copy
handoff survives the extra hop.
Required Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".