pub trait ExecutionEventSink: Send + Sync {
// Required methods
fn is_enabled(&self, kind: ExecutionEventKind) -> bool;
fn record(
&self,
permit: EventEmissionPermit,
) -> Result<(), ExecutionEventSinkError>;
// Provided methods
fn enablement(&self) -> ExecutionEventSinkEnablement { ... }
fn device_timing_mode(&self) -> DeviceTimingMode { ... }
fn capture_policy(&self) -> ExecutionEventCapturePolicy { ... }
fn capture_policy_for_request(
&self,
_origin: ExecutorRequestOrigin,
) -> ExecutionEventCapturePolicy { ... }
fn record_device_submission_attribution(
&self,
_attribution: &BoundDeviceSubmissionAttribution,
) -> Result<(), ExecutionEventSinkError> { ... }
fn record_physical_device_submission_timing(
&self,
_completion: &OperationCompletionReceipt,
) -> Result<(), ExecutionEventSinkError> { ... }
fn records_execution_resource_maintenance(&self) -> bool { ... }
fn record_execution_resource_maintenance(
&self,
_maintenance: BoundExecutionResourceMaintenance,
) -> Result<(), ExecutionEventSinkError> { ... }
fn record_batch(
&self,
permit: EventBatchEmissionPermit,
) -> Result<(), ExecutionEventSinkError> { ... }
}Required Methods§
fn is_enabled(&self, kind: ExecutionEventKind) -> bool
fn record( &self, permit: EventEmissionPermit, ) -> Result<(), ExecutionEventSinkError>
Provided Methods§
Sourcefn enablement(&self) -> ExecutionEventSinkEnablement
fn enablement(&self) -> ExecutionEventSinkEnablement
Resolves stable event enablement once when an emitter is constructed.
Dynamically filtered sinks keep the conservative PerKind default.
Permanently disabled and all-event sinks select None or All so the
event hot path does not perform a virtual enablement query.
fn device_timing_mode(&self) -> DeviceTimingMode
fn capture_policy(&self) -> ExecutionEventCapturePolicy
fn capture_policy_for_request( &self, _origin: ExecutorRequestOrigin, ) -> ExecutionEventCapturePolicy
fn record_device_submission_attribution( &self, _attribution: &BoundDeviceSubmissionAttribution, ) -> Result<(), ExecutionEventSinkError>
fn record_physical_device_submission_timing( &self, _completion: &OperationCompletionReceipt, ) -> Result<(), ExecutionEventSinkError>
Sourcefn records_execution_resource_maintenance(&self) -> bool
fn records_execution_resource_maintenance(&self) -> bool
Resource maintenance is a plan/batch event and therefore does not run through a per-request execution cursor. Sinks opt in explicitly so a disabled profile path performs no event construction or serialization.
fn record_execution_resource_maintenance( &self, _maintenance: BoundExecutionResourceMaintenance, ) -> Result<(), ExecutionEventSinkError>
Sourcefn record_batch(
&self,
permit: EventBatchEmissionPermit,
) -> Result<(), ExecutionEventSinkError>
fn record_batch( &self, permit: EventBatchEmissionPermit, ) -> Result<(), ExecutionEventSinkError>
Records one cursor-ordered batch. Sinks with a buffered transport should override this boundary; the default preserves compatibility and order.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".