use crate::core::{Acqtime, Stamp, WithAcqtime};
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Message<T> {
pub seq: u64,
pub stamp: Stamp,
pub value: T,
}
impl<T> Message<T> {
pub fn map<S, F>(self, f: F) -> Message<S>
where
F: FnOnce(T) -> S,
{
Message {
seq: self.seq,
stamp: self.stamp,
value: f(self.value),
}
}
}
impl<T> WithAcqtime for Message<T> {
fn acqtime(&self) -> Acqtime {
self.stamp.acqtime
}
}