moq_transport/message/
pubilsh_namespace_done.rs1use crate::coding::{Decode, DecodeError, Encode, EncodeError, TrackNamespace};
2
3#[derive(Clone, Debug, Eq, PartialEq)]
5pub struct PublishNamespaceDone {
6 pub track_namespace: TrackNamespace,
7}
8
9impl Decode for PublishNamespaceDone {
10 fn decode<R: bytes::Buf>(r: &mut R) -> Result<Self, DecodeError> {
11 let track_namespace = TrackNamespace::decode(r)?;
12
13 Ok(Self { track_namespace })
14 }
15}
16
17impl Encode for PublishNamespaceDone {
18 fn encode<W: bytes::BufMut>(&self, w: &mut W) -> Result<(), EncodeError> {
19 self.track_namespace.encode(w)?;
20
21 Ok(())
22 }
23}
24
25#[cfg(test)]
26mod tests {
27 use super::*;
28 use bytes::BytesMut;
29
30 #[test]
31 fn encode_decode() {
32 let mut buf = BytesMut::new();
33
34 let msg = PublishNamespaceDone {
35 track_namespace: TrackNamespace::from_utf8_path("test/path/to/resource"),
36 };
37 msg.encode(&mut buf).unwrap();
38 let decoded = PublishNamespaceDone::decode(&mut buf).unwrap();
39 assert_eq!(decoded, msg);
40 }
41}