use crate::{Address, LocalMessage, Route};
#[derive(Clone, Debug)]
pub struct RelayMessage {
source: Address,
destination: Address,
local_msg: LocalMessage,
}
impl RelayMessage {
pub fn new(source: Address, destination: Address, local_msg: LocalMessage) -> Self {
Self {
source,
destination,
local_msg,
}
}
pub fn source(&self) -> &Address {
&self.source
}
pub fn destination(&self) -> &Address {
&self.destination
}
pub fn onward_route(&self) -> &Route {
self.local_msg.onward_route()
}
pub fn return_route(&self) -> &Route {
self.local_msg.return_route()
}
pub fn payload(&self) -> &[u8] {
self.local_msg.payload()
}
pub fn local_message(&self) -> &LocalMessage {
&self.local_msg
}
pub fn into_local_message(self) -> LocalMessage {
self.local_msg
}
}