cometd_client/types/
event.rs

1use crate::types::{CometdError, Data};
2use std::sync::Arc;
3
4/// Events getting from event receiver channel.
5#[allow(missing_docs)]
6#[derive(Debug)]
7pub enum CometdClientEvent<Msg> {
8    Message(Arc<[Data<Msg>]>),
9    Error(Arc<CometdError>),
10}
11
12// rustc linter AGAIN give false positive on derive -_-"
13impl<Msg> Clone for CometdClientEvent<Msg> {
14    fn clone(&self) -> Self {
15        match *self {
16            Self::Message(ref data) => Self::Message(Arc::clone(data)),
17            Self::Error(ref error) => Self::Error(Arc::clone(error)),
18        }
19    }
20}
21
22impl<Msg> CometdClientEvent<Msg> {
23    #[inline(always)]
24    pub(crate) fn error(error: CometdError) -> Self {
25        Self::Error(Arc::new(error))
26    }
27}