moq_lite/message/
setup.rs1use super::{Extensions, Version, Versions};
2use crate::coding::*;
3
4#[derive(Debug, Clone)]
6pub struct ClientSetup {
7 pub versions: Versions,
9
10 pub extensions: Extensions,
12}
13
14impl Message for ClientSetup {
15 fn decode<R: bytes::Buf>(r: &mut R) -> Result<Self, DecodeError> {
17 let versions = Versions::decode(r)?;
18 let extensions = Extensions::decode(r)?;
19
20 Ok(Self { versions, extensions })
21 }
22
23 fn encode<W: bytes::BufMut>(&self, w: &mut W) {
25 self.versions.encode(w);
26 self.extensions.encode(w);
27 }
28}
29
30#[derive(Debug, Clone)]
32pub struct ServerSetup {
33 pub version: Version,
35
36 pub extensions: Extensions,
38}
39
40impl Message for ServerSetup {
41 fn encode<W: bytes::BufMut>(&self, w: &mut W) {
42 self.version.encode(w);
43 self.extensions.encode(w);
44 }
45
46 fn decode<R: bytes::Buf>(r: &mut R) -> Result<Self, DecodeError> {
47 let version = Version::decode(r)?;
48 let extensions = Extensions::decode(r)?;
49
50 Ok(Self { version, extensions })
51 }
52}