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}