pub struct PlayStream { /* private fields */ }Expand description
Meant for active & live games, gives a streamable version of the plays in a game.
The PlayStream is meant to be for consistently polling the MLB API for live play-by-play updates.
The list of events can be seen on PlayStreamEvent
§Examples
PlayStream::new(/* game id */).run(|event: PlayStreamEvent, meta: &LiveFeedMetadata, data: &LiveFeedData| {
match event {
PlayStreamEvent::GameStart => println!("Game Start"),
PlayStreamEvent::StartPlay(play) => println!("{} vs. {}", play.matchup.batter.full_name, play.matchup.pitcher.full_name),
PlayStreamEvent::PlayEvent(play_event) => {
match play_event {
PlayEvent::Action { details, .. } => println!("{}", details.description),
PlayEvent::Pitch { details, common, .. } => println!("{} -> {}", details.call, common.count),
PlayEvent::Stepoff { .. } => println!("Stepoff"),
PlayEvent::NoPitch { .. } => println!("No Pitch"),
PlayEvent::Pickoff { .. } => println!("Pickoff"),
}
},
PlayStreamEvent::PlayEventReviewStart(review) => println!("PlayEventReviewStart; {}", review.review_type),
PlayStreamEvent::PlayEventReviewEnd(review) => println!("PlayEventReviewEnd; {}", review.review_type),
PlayStreamEvent::PlayReviewStart(review) => println!("PlayReviewStart; {}", review.review_type),
PlayStreamEvent::PlayReviewEnd(review) => println!("PlayReviewEnd; {}", review.review_type),
PlayStreamEvent::EndPlay(play) => println!("{}", play.result.completed_play_details.as_ref().expect("Completed play").description),
PlayStreamEvent::GameEnd(_, _, _, _) => println!("GameEnd"),
}
}).await?;Implementations§
Source§impl PlayStream
impl PlayStream
Sourcepub async fn run<F: FnMut(PlayStreamEvent<'_>, &LiveFeedMetadata, &LiveFeedData) -> Result<ControlFlow<()>, Error>>(
self,
f: F,
) -> Result<(), Error>
pub async fn run<F: FnMut(PlayStreamEvent<'_>, &LiveFeedMetadata, &LiveFeedData) -> Result<ControlFlow<()>, Error>>( self, f: F, ) -> Result<(), Error>
Sourcepub async fn run_custom_error<E: From<Error>, F: FnMut(PlayStreamEvent<'_>, &LiveFeedMetadata, &LiveFeedData) -> Result<ControlFlow<()>, E>>(
self,
f: F,
) -> Result<(), E>
pub async fn run_custom_error<E: From<Error>, F: FnMut(PlayStreamEvent<'_>, &LiveFeedMetadata, &LiveFeedData) -> Result<ControlFlow<()>, E>>( self, f: F, ) -> Result<(), E>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PlayStream
impl RefUnwindSafe for PlayStream
impl Send for PlayStream
impl Sync for PlayStream
impl Unpin for PlayStream
impl UnsafeUnpin for PlayStream
impl UnwindSafe for PlayStream
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more