everscale_network/proto/
rldp.rs

1use tl_proto::{TlRead, TlWrite};
2
3use super::HashRef;
4
5#[derive(Debug, Copy, Clone, TlRead, TlWrite)]
6#[tl(boxed, scheme = "scheme.tl")]
7pub enum Message<'tl> {
8    #[tl(id = "rldp.message")]
9    Message {
10        #[tl(size_hint = 32)]
11        id: HashRef<'tl>,
12        data: &'tl [u8],
13    },
14    #[tl(id = "rldp.answer")]
15    Answer {
16        #[tl(size_hint = 32)]
17        query_id: HashRef<'tl>,
18        data: &'tl [u8],
19    },
20    #[tl(id = "rldp.query")]
21    Query {
22        #[tl(size_hint = 32)]
23        query_id: HashRef<'tl>,
24        max_answer_size: u64,
25        timeout: u32,
26        data: &'tl [u8],
27    },
28}
29
30#[derive(Debug, Copy, Clone, TlRead, TlWrite)]
31#[tl(boxed, scheme = "scheme.tl")]
32pub enum MessagePart<'tl> {
33    #[tl(id = "rldp.messagePart")]
34    MessagePart {
35        #[tl(size_hint = 32)]
36        transfer_id: HashRef<'tl>,
37        fec_type: RaptorQFecType,
38        part: u32,
39        total_size: u64,
40        seqno: u32,
41        data: &'tl [u8],
42    },
43    #[tl(id = "rldp.confirm", size_hint = 40)]
44    Confirm {
45        transfer_id: HashRef<'tl>,
46        part: u32,
47        seqno: u32,
48    },
49    #[tl(id = "rldp.complete", size_hint = 36)]
50    Complete {
51        transfer_id: HashRef<'tl>,
52        part: u32,
53    },
54}
55
56#[derive(Debug, Copy, Clone, Eq, PartialEq, TlRead, TlWrite)]
57#[tl(boxed, id = "fec.raptorQ", size_hint = 12, scheme = "scheme.tl")]
58pub struct RaptorQFecType {
59    pub total_len: u32,
60    pub packet_len: u32,
61    pub packet_count: u32,
62}