use std::fmt::{self, Display};
use std::fmt::Debug;
use fluvio_protocol::{Encoder, Decoder};
use super::msg_type::Message;
#[derive(Encoder, Decoder, Debug, Eq, PartialEq, Clone, Default)]
pub struct Messages<S> {
pub messages: Vec<Message<S>>,
}
impl<S> fmt::Display for Messages<S>
where
S: Display,
{
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "[")?;
for sm in &self.messages {
write!(f, "{sm},")?;
}
write!(f, "]")
}
}
impl<S> Messages<S> {
pub fn new(messages: Vec<Message<S>>) -> Self {
Self { messages }
}
pub fn push(&mut self, msg: Message<S>) {
self.messages.push(msg);
}
}