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
use std;
use strum;
use cratesession;
// NOTE: Currently Global only refers to CTX::MID and Message only refers to
// CTX::GMSG and CTX::MID through the GMSG parameter. It would seem that we
// could use those two types as parameters directly, without needing a full
// context. The only problem is that when dealing with a concrete
// implementation of a session::Context, referring to these associated types
// must be "disambiguated" with the syntax:
//
// Message <
// <Mycontext as session::Context>::MID,
// <Mycontext as session::Context>::GMSG> ... ,
//
// which is must more verbose than simply:
//
// Message <Mycontext>
pub type IdReprType = u16;
/// Unique ID for each global message type used in a given session context.
/// The global message type.
/// A local message type with partial mapping from global message type and
/// total mapping into global message type.
////////////////////////////////////////////////////////////////////////////////
// functions
////////////////////////////////////////////////////////////////////////////////