Skip to main content

crabka_protocol/opt/rustwide/workdir/generated/common/owned/
Assignment.owned.rs

1// AUTO-GENERATED by crabka-protocol-codegen against a9ce3221537b8653448750697915607dc7936cf3. Do not edit.
2
3use bytes::{Buf, BufMut};
4use crate::tagged_fields::{read_tagged_fields, tagged_fields_len, WriteTaggedFields};
5use crate::{Decode, Encode, ProtocolError, UnknownTaggedFields};
6
7#[derive(Debug, Clone, PartialEq, Eq, Default)]
8pub struct Assignment {
9    pub active_tasks: Vec<super::task_ids::TaskIds>,
10    pub standby_tasks: Vec<super::task_ids::TaskIds>,
11    pub warmup_tasks: Vec<super::task_ids::TaskIds>,
12    pub unknown_tagged_fields: UnknownTaggedFields,
13}
14
15impl Encode for Assignment {
16    fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
17        let flex = version >= 0;
18        if version >= 0 { { crate::primitives::array::put_array_len(buf, (self.active_tasks).len(), flex); for it in &self.active_tasks { it.encode(buf, version)?; } } }
19        if version >= 0 { { crate::primitives::array::put_array_len(buf, (self.standby_tasks).len(), flex); for it in &self.standby_tasks { it.encode(buf, version)?; } } }
20        if version >= 0 { { crate::primitives::array::put_array_len(buf, (self.warmup_tasks).len(), flex); for it in &self.warmup_tasks { it.encode(buf, version)?; } } }
21        if flex {
22            let tagged = WriteTaggedFields::new();
23            tagged.write(buf, &self.unknown_tagged_fields);
24        }
25        Ok(())
26    }
27    fn encoded_len(&self, version: i16) -> usize {
28        let flex = version >= 0;
29        let mut n: usize = 0;
30        if version >= 0 { n += { let prefix = crate::primitives::array::array_len_prefix_len((self.active_tasks).len(), flex); let body: usize = (self.active_tasks).iter().map(|it| it.encoded_len(version)).sum(); prefix + body }; }
31        if version >= 0 { n += { let prefix = crate::primitives::array::array_len_prefix_len((self.standby_tasks).len(), flex); let body: usize = (self.standby_tasks).iter().map(|it| it.encoded_len(version)).sum(); prefix + body }; }
32        if version >= 0 { n += { let prefix = crate::primitives::array::array_len_prefix_len((self.warmup_tasks).len(), flex); let body: usize = (self.warmup_tasks).iter().map(|it| it.encoded_len(version)).sum(); prefix + body }; }
33        if flex {
34            let known_pairs: Vec<(u32, usize)> = Vec::new();
35            n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
36        }
37        n
38    }
39}
40
41impl<'de> Decode<'de> for Assignment {
42    fn decode<B: Buf>(buf: &mut B, version: i16) -> Result<Self, ProtocolError> {
43        let flex = version >= 0;
44        let mut out = Self::default();
45        if version >= 0 { out.active_tasks = { let n = crate::primitives::array::get_array_len(buf, flex)?; let mut v = Vec::with_capacity(n); for _ in 0..n { v.push(super::task_ids::TaskIds::decode(buf, version)?); } v }; }
46        if version >= 0 { out.standby_tasks = { let n = crate::primitives::array::get_array_len(buf, flex)?; let mut v = Vec::with_capacity(n); for _ in 0..n { v.push(super::task_ids::TaskIds::decode(buf, version)?); } v }; }
47        if version >= 0 { out.warmup_tasks = { let n = crate::primitives::array::get_array_len(buf, flex)?; let mut v = Vec::with_capacity(n); for _ in 0..n { v.push(super::task_ids::TaskIds::decode(buf, version)?); } v }; }
48        if flex {
49            out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| {
50                Ok(false)
51            })?;
52        }
53        Ok(out)
54    }
55}