Skip to main content

ExecutionEventSink

Trait ExecutionEventSink 

Source
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§

Provided Methods§

Source

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.

Source

fn device_timing_mode(&self) -> DeviceTimingMode

Source

fn capture_policy(&self) -> ExecutionEventCapturePolicy

Source

fn capture_policy_for_request( &self, _origin: ExecutorRequestOrigin, ) -> ExecutionEventCapturePolicy

Source

fn record_device_submission_attribution( &self, _attribution: &BoundDeviceSubmissionAttribution, ) -> Result<(), ExecutionEventSinkError>

Source

fn record_physical_device_submission_timing( &self, _completion: &OperationCompletionReceipt, ) -> Result<(), ExecutionEventSinkError>

Source

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.

Source

fn record_execution_resource_maintenance( &self, _maintenance: BoundExecutionResourceMaintenance, ) -> Result<(), ExecutionEventSinkError>

Source

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".

Implementors§