Struct barter_data::streams::builder::multi::MultiStreamBuilder
source · pub struct MultiStreamBuilder<Output> {
pub channels: HashMap<ExchangeId, ExchangeChannel<Output>>,
pub futures: Vec<BuilderInitFuture>,
}Expand description
Builder to configure and initialise a common Streams<Output> instance from
multiple StreamBuilder<SubKind>s.
Fields§
§channels: HashMap<ExchangeId, ExchangeChannel<Output>>§futures: Vec<BuilderInitFuture>Implementations§
source§impl<Output> MultiStreamBuilder<Output>
impl<Output> MultiStreamBuilder<Output>
sourcepub fn add<Kind>(self, builder: StreamBuilder<Kind>) -> Selfwhere
Output: From<MarketEvent<Kind::Event>> + Send + 'static,
Kind: SubKind + 'static,
Kind::Event: Send,
pub fn add<Kind>(self, builder: StreamBuilder<Kind>) -> Selfwhere
Output: From<MarketEvent<Kind::Event>> + Send + 'static,
Kind: SubKind + 'static,
Kind::Event: Send,
Add a StreamBuilder<SubKind> to the MultiStreamBuilder. Creates a
Future that calls StreamBuilder::init and maps the SubKind::Event
into a common Output.
Note that the created Future is not awaited until the MultiStreamBuilder::init
method is invoked.
sourcepub async fn init(self) -> Result<Streams<Output>, DataError>
pub async fn init(self) -> Result<Streams<Output>, DataError>
Initialise each StreamBuilder<SubKind> that was added to the
MultiStreamBuilder and map all Streams<SubKind::Event> into a common
Streams<Output>.
Trait Implementations§
source§impl<Output> Debug for MultiStreamBuilder<Output>where
Output: Debug,
impl<Output> Debug for MultiStreamBuilder<Output>where
Output: Debug,
source§impl<Output: Default> Default for MultiStreamBuilder<Output>
impl<Output: Default> Default for MultiStreamBuilder<Output>
source§fn default() -> MultiStreamBuilder<Output>
fn default() -> MultiStreamBuilder<Output>
Returns the “default value” for a type. Read more