1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
use Display;
use crateprotobufs;
use NodeId;
/// An enum that defines the possible destinations for a mesh packet.
/// This enum is used to specify the destination of a packet when sending
/// a packet to the radio.
///
/// # Variants
///
/// * `Local` - A packet that should be handled by the connected node.
/// * `Broadcast` - A packet that should be broadcast to all nodes in the mesh.
/// * `Node(u32)` - A packet that should be sent to a specific node in the mesh,
/// specified by the passed `u32` id.
///
/// # Default
///
/// The default value for this enum is `Broadcast`.
/// This trait defines the behavior of a struct that is able to route mesh packets.
/// More generally, this trait defines the behavior of a struct that is able to send
/// and receive mesh packets.
///
/// The primary usage of this trait is to enable the management of packets within the
/// `send_packet` method. This method needs to be able to echo packets back to the client,
/// and is only able to do this if the `send_packet` method has the ability to trigger
/// the handling of arbitrary mesh packets.