everscale_network/proto/
rldp.rs1use 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}