1use crate::{
2 coding::*,
3 lite::{self, Message, Parameters},
4};
5
6#[derive(Debug, Clone)]
8pub struct ClientSetup {
9 pub versions: Versions,
11
12 pub parameters: Parameters,
14}
15
16impl Message for ClientSetup {
17 fn decode_msg<R: bytes::Buf>(r: &mut R, version: lite::Version) -> Result<Self, DecodeError> {
19 let versions = Versions::decode(r, version)?;
20 let parameters = Parameters::decode(r, version)?;
21
22 Ok(Self { versions, parameters })
23 }
24
25 fn encode_msg<W: bytes::BufMut>(&self, w: &mut W, version: lite::Version) {
27 self.versions.encode(w, version);
28 self.parameters.encode(w, version);
29 }
30}
31
32#[derive(Debug, Clone)]
34pub struct ServerSetup {
35 pub version: Version,
37
38 pub parameters: Parameters,
40}
41
42impl Message for ServerSetup {
43 fn encode_msg<W: bytes::BufMut>(&self, w: &mut W, version: lite::Version) {
44 self.version.encode(w, version);
45 self.parameters.encode(w, version);
46 }
47
48 fn decode_msg<R: bytes::Buf>(r: &mut R, version: lite::Version) -> Result<Self, DecodeError> {
49 let version = Version::decode(r, version)?;
50 let parameters = Parameters::decode(r, version)?;
51
52 Ok(Self { version, parameters })
53 }
54}