pub trait CaptureProvider:
Send
+ Sync
+ 'static {
// Required method
fn capture(&self, capture: ChatTurnCapture) -> Result<(), CaptureFailure>;
// Provided methods
fn contains_capture(
&self,
_capture_id: &[u8; 32],
) -> Result<CaptureCommitState, CaptureFailure> { ... }
fn capture_summary(
&self,
_capture: ConversationSummaryCapture,
) -> Result<(), CaptureFailure> { ... }
}Expand description
Provider seam. Implementations must treat every capture id as an idempotency key. Summary capture is additive so existing turn providers keep source compatibility while adopting the C4 record class.
Required Methods§
fn capture(&self, capture: ChatTurnCapture) -> Result<(), CaptureFailure>
Provided Methods§
Sourcefn contains_capture(
&self,
_capture_id: &[u8; 32],
) -> Result<CaptureCommitState, CaptureFailure>
fn contains_capture( &self, _capture_id: &[u8; 32], ) -> Result<CaptureCommitState, CaptureFailure>
Query whether this idempotency key is already durable after an interrupted/ambiguous call. Providers that cannot query return false; no automatic blind retry is performed in either case.
fn capture_summary( &self, _capture: ConversationSummaryCapture, ) -> Result<(), CaptureFailure>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".