crabka_protocol/opt/rustwide/workdir/generated/
GetTelemetrySubscriptionsRequest.borrowed.rs1use bytes::BufMut;
4use crate::tagged_fields::{read_tagged_fields, tagged_fields_len, WriteTaggedFields};
5use crate::{DecodeBorrow, Encode, ProtocolError, UnknownTaggedFields};
6
7pub const API_KEY: i16 = 71;
8pub const MIN_VERSION: i16 = 0;
9pub const MAX_VERSION: i16 = 0;
10pub const FLEXIBLE_MIN: i16 = 0;
11
12#[inline]
13fn is_flexible(version: i16) -> bool { version >= FLEXIBLE_MIN }
14
15#[derive(Debug, Clone, PartialEq, Eq)]
16pub struct GetTelemetrySubscriptionsRequest {
17 pub client_instance_id: crate::primitives::uuid::Uuid,
18 pub unknown_tagged_fields: UnknownTaggedFields,
19}
20
21impl Default for GetTelemetrySubscriptionsRequest {
22 fn default() -> Self {
23 Self {
24 client_instance_id: Default::default(),
25 unknown_tagged_fields: Default::default(),
26 }
27 }
28}
29
30impl GetTelemetrySubscriptionsRequest {
31 pub fn to_owned(&self) -> crate::owned::get_telemetry_subscriptions_request::GetTelemetrySubscriptionsRequest {
32 crate::owned::get_telemetry_subscriptions_request::GetTelemetrySubscriptionsRequest {
33 client_instance_id: (self.client_instance_id),
34 unknown_tagged_fields: self.unknown_tagged_fields.clone(),
35 }
36 }
37}
38
39impl Encode for GetTelemetrySubscriptionsRequest {
40 fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
41 if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
42 return Err(ProtocolError::UnsupportedVersion { api_key: API_KEY, version });
43 }
44 let flex = is_flexible(version);
45 if version >= 0 { crate::primitives::uuid::put_uuid(buf, self.client_instance_id) }
46 if flex {
47 let tagged = WriteTaggedFields::new();
48 tagged.write(buf, &self.unknown_tagged_fields);
49 }
50 Ok(())
51 }
52 fn encoded_len(&self, version: i16) -> usize {
53 let flex = is_flexible(version);
54 let mut n: usize = 0;
55 if version >= 0 { n += 16; }
56 if flex {
57 let known_pairs: Vec<(u32, usize)> = Vec::new();
58 n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
59 }
60 n
61 }
62}
63
64impl<'de> DecodeBorrow<'de> for GetTelemetrySubscriptionsRequest {
65 fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
66 if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
67 return Err(ProtocolError::UnsupportedVersion { api_key: API_KEY, version });
68 }
69 let flex = is_flexible(version);
70 let mut out = Self::default();
71 if version >= 0 { out.client_instance_id = crate::primitives::uuid::get_uuid(buf)?; }
72 if flex {
73 out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| {
74 Ok(false)
75 })?;
76 }
77 Ok(out)
78 }
79}