Skip to main content

ExchangeWsStream

Type Alias ExchangeWsStream 

Source
pub type ExchangeWsStream<Parser, Transformer> = ExchangeStream<Parser, WsStream, Transformer>;
Expand description

Convenient type alias for an ExchangeStream utilizing a tungstenite WebSocket.

Aliased Type§

pub struct ExchangeWsStream<Parser, Transformer> {
    pub stream: SplitStream<WebSocketStream<MaybeTlsStream<TcpStream>>>,
    pub transformer: Transformer,
    pub buffer: VecDeque<Result<<Transformer as Transformer>::Output, <Transformer as Transformer>::Error>>,
    pub protocol_marker: PhantomData<Parser>,
}

Fields§

§stream: SplitStream<WebSocketStream<MaybeTlsStream<TcpStream>>>§transformer: Transformer§buffer: VecDeque<Result<<Transformer as Transformer>::Output, <Transformer as Transformer>::Error>>§protocol_marker: PhantomData<Parser>

Trait Implementations§

Source§

impl<Exchange, Instrument, Kind, Transformer, Parser> MarketStream<Exchange, Instrument, Kind> for ExchangeWsStream<Parser, Transformer>
where Exchange: Connector + Send + Sync, Instrument: InstrumentData, Kind: SubscriptionKind + Send + Sync, Transformer: ExchangeTransformer<Exchange, Instrument::Key, Kind> + Send, Kind::Event: Send, Parser: StreamParser<Transformer::Input, Message = WsMessage, Error = WsError> + Send,

Source§

fn init<'life0, 'async_trait, SnapFetcher>( subscriptions: &'life0 [Subscription<Exchange, Instrument, Kind>], ) -> Pin<Box<dyn Future<Output = Result<Self, DataError>> + Send + 'async_trait>>
where SnapFetcher: SnapshotFetcher<Exchange, Kind> + 'async_trait, Subscription<Exchange, Instrument, Kind>: Identifier<Exchange::Channel> + Identifier<Exchange::Market>, Self: 'async_trait, 'life0: 'async_trait,