1mod error;
2mod event;
3mod group;
4mod subject;
5
6pub use error::{DecodeError, EncodeError};
7pub use event::Event;
8pub use group::EventGroup;
9pub use subject::{Segment, Subject};
10
11pub use hermes_macros::Event;
13
14pub fn encode<E: serde::Serialize>(event: &E) -> Result<Vec<u8>, EncodeError> {
16 bincode::serde::encode_to_vec(event, bincode::config::standard()).map_err(Into::into)
17}
18
19pub fn decode<E: serde::de::DeserializeOwned>(bytes: &[u8]) -> Result<E, DecodeError> {
21 let (val, _len) = bincode::serde::decode_from_slice(bytes, bincode::config::standard())?;
22 Ok(val)
23}
24
25pub use serde;