fluvio_controlplane_metadata/message/
messages.rs

1//!
2//! # SmartModule Messages
3//!
4//! SmartModules are sent from SC to all SPUs.
5//!
6use std::fmt::{self, Display};
7use std::fmt::Debug;
8
9use fluvio_protocol::{Encoder, Decoder};
10
11use super::msg_type::Message;
12
13#[derive(Encoder, Decoder, Debug, Eq, PartialEq, Clone, Default)]
14pub struct Messages<S> {
15    pub messages: Vec<Message<S>>,
16}
17
18impl<S> fmt::Display for Messages<S>
19where
20    S: Display,
21{
22    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
23        write!(f, "[")?;
24        for sm in &self.messages {
25            write!(f, "{sm},")?;
26        }
27        write!(f, "]")
28    }
29}
30
31impl<S> Messages<S> {
32    pub fn new(messages: Vec<Message<S>>) -> Self {
33        Self { messages }
34    }
35
36    pub fn push(&mut self, msg: Message<S>) {
37        self.messages.push(msg);
38    }
39}