//! Provides a simple wrapper for [`reqwest`] to provide an Event Source //! implementation. You can learn more about Server Sent Events (SSE) take a //! look at [the MDN docs](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) //! This crate uses [`forge_eventsource_stream`] to wrap the underlying Bytes //! stream, and retries failed requests. //! //! # Example //! //! ```ignore //! let mut es = EventSource::get("http://localhost:8000/events"); //! while let Some(event) = es.next().await { //! match event { //! Ok(Event::Open) => println!("Connection Open!"), //! Ok(Event::Message(message)) => println!("Message: {:#?}", message), //! Err(err) => { //! println!("Error: {}", err); //! es.close(); //! } //! } //! } //! ``` #[macro_use] extern crate thiserror; mod error; mod event_source; mod reqwest_ext; pub mod retry; pub use error::{CannotCloneRequestError, Error}; pub use event_source::{Event, EventSource, ReadyState}; pub use reqwest_ext::RequestBuilderExt;