Trait rill_protocol::data::Metric[][src]

pub trait Metric: Debug + Sync + Send + 'static {
    type State: DeserializeOwned + Serialize + Clone + Debug + Send + 'static;
    type Event: DeserializeOwned + Serialize + Clone + Debug + Send + 'static;
    fn stream_type() -> StreamType;
fn apply(state: &mut Self::State, event: TimedEvent<Self::Event>); fn pack_delta(delta: Delta<Self::Event>) -> Result<Vec<u8>, Error> { ... }
fn unpack_delta(data: Vec<u8>) -> Result<Delta<Self::Event>, Error> { ... }
fn pack_state(state: Self::State) -> Result<Vec<u8>, Error> { ... }
fn unpack_state(data: Vec<u8>) -> Result<Self::State, Error> { ... } }

Associated Types

Loading content...

Required methods

fn stream_type() -> StreamType[src]

fn apply(state: &mut Self::State, event: TimedEvent<Self::Event>)[src]

Loading content...

Provided methods

fn pack_delta(delta: Delta<Self::Event>) -> Result<Vec<u8>, Error>[src]

fn unpack_delta(data: Vec<u8>) -> Result<Delta<Self::Event>, Error>[src]

fn pack_state(state: Self::State) -> Result<Vec<u8>, Error>[src]

fn unpack_state(data: Vec<u8>) -> Result<Self::State, Error>[src]

Loading content...

Implementors

impl Metric for CounterMetric[src]

type State = CounterState

type Event = CounterEvent

impl Metric for DictMetric[src]

type State = DictState

type Event = DictEvent

impl Metric for GaugeMetric[src]

type State = GaugeState

type Event = GaugeEvent

impl Metric for HistogramMetric[src]

type State = HistogramState

type Event = HistogramEvent

impl Metric for LoggerMetric[src]

type State = LoggerState

type Event = LoggerEvent

impl Metric for PulseMetric[src]

type State = PulseState

type Event = PulseEvent

impl Metric for TableMetric[src]

type State = TableState

type Event = TableEvent

Loading content...