cloudevents/message/
serializer.rs

1use super::{MessageAttributeValue, Result};
2use crate::event::SpecVersion;
3
4/// Serializer for structured mode messages.
5pub trait StructuredSerializer<RETURN: Sized> {
6    fn set_structured_event(self, bytes: Vec<u8>) -> Result<RETURN>;
7}
8
9/// Serializer for binary mode messages.
10pub trait BinarySerializer<RETURN: Sized>
11where
12    Self: Sized,
13{
14    fn set_spec_version(self, spec_version: SpecVersion) -> Result<Self>;
15
16    fn set_attribute(self, name: &str, value: MessageAttributeValue) -> Result<Self>;
17
18    fn set_extension(self, name: &str, value: MessageAttributeValue) -> Result<Self>;
19
20    fn end_with_data(self, bytes: Vec<u8>) -> Result<RETURN>;
21
22    fn end(self) -> Result<RETURN>;
23}