helix-driver-host 0.1.34

Helix Native 与 FFI 共用的存储、网络和执行驱动
Documentation
use super::MetricEvent;

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RecordOutcome {
    Accepted,
    Disabled,
    DroppedQueueFull,
}

pub trait AsyncMetricSink: Send + Sync {
    fn try_record(&self, event: MetricEvent) -> RecordOutcome;

    fn is_enabled(&self) -> bool {
        true
    }
}

#[derive(Clone, Copy, Debug, Default)]
pub struct NoopMetricSink;

impl AsyncMetricSink for NoopMetricSink {
    #[inline]
    fn try_record(&self, _event: MetricEvent) -> RecordOutcome {
        RecordOutcome::Disabled
    }

    fn is_enabled(&self) -> bool {
        false
    }
}