moq_lite/lite/
info.rs

1use crate::{
2	coding::*,
3	lite::{Message, Version},
4};
5
6#[derive(Clone, Debug)]
7pub struct SessionInfo {
8	pub bitrate: Option<u64>,
9}
10
11impl Message for SessionInfo {
12	fn decode_msg<R: bytes::Buf>(r: &mut R, version: Version) -> Result<Self, DecodeError> {
13		let bitrate = match u64::decode(r, version)? {
14			0 => None,
15			bitrate => Some(bitrate),
16		};
17
18		Ok(Self { bitrate })
19	}
20
21	fn encode_msg<W: bytes::BufMut>(&self, w: &mut W, version: Version) {
22		self.bitrate.unwrap_or(0).encode(w, version);
23	}
24}