pub trait TranscriptSink: Send {
// Required methods
fn record(&mut self, fact: &StepFact) -> Result<()>;
fn finalize(&mut self) -> Result<TranscriptFingerprint>;
}Expand description
Synchronous, durable observer of StepFacts.
Implementations must record each fact, including syncing it to the underlying storage where applicable, before returning. The executor relies on this to maintain the invariant that the UI never sees a fact that has not been durably persisted.
Required Methods§
Sourcefn record(&mut self, fact: &StepFact) -> Result<()>
fn record(&mut self, fact: &StepFact) -> Result<()>
Record a single fact. Must persist before returning, the file-backed
implementation calls sync_data so a power loss after record
returns cannot drop the fact.
§Errors
Returns the underlying I/O error if the sink cannot persist the fact.
Sourcefn finalize(&mut self) -> Result<TranscriptFingerprint>
fn finalize(&mut self) -> Result<TranscriptFingerprint>
Finalize the transcript and return its fingerprint.
Calling finalize more than once is implementation-defined; the
default expectation is that the second call returns the cached
fingerprint.
§Errors
Returns the underlying I/O error if any pending state cannot be persisted.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".