russe/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//! Server-Sent Events (SSE) decoder.

#![forbid(unsafe_code)]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]

mod decoder;
mod encoder;
mod error;
mod event;
mod message;
#[cfg(feature = "reqwest-0_12")]
pub mod reqwest_0_12;

pub use self::{decoder::Decoder, error::Error, event::Event, message::Message};

pub(crate) const NEWLINE: u8 = b'\n';
pub(crate) const SSE_DELIMITER: &[u8] = b"\n\n";

/// Media (MIME) type for SSE (`text/event-stream`).
#[cfg(feature = "mime")]
pub const MEDIA_TYPE: mime::Mime = mime::TEXT_EVENT_STREAM;

/// Media (MIME) type for SSE (`text/event-stream`).
pub const MEDIA_TYPE_STR: &str = "text/event-stream";

#[cfg(test)]
mod tests {
    #[macro_export]
    macro_rules! assert_none {
        ($exp:expr) => {{
            let exp = $exp;
            assert!(exp.is_none(), "Expected None; got: {exp:?}");
        }};
    }
}