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
|
#[doc = "The document model"];
type ast_id = int;
type cratedoc = ~{
topmod: moddoc,
};
type moddoc = ~{
id: ast_id,
name: str,
path: [str],
brief: option<str>,
desc: option<str>,
mods: modlist,
fns: fnlist
};
type fndoc = ~{
id: ast_id,
name: str,
brief: option<str>,
desc: option<str>,
args: [argdoc],
return: retdoc,
sig: option<str>
};
type argdoc = ~{
name: str,
desc: option<str>,
ty: option<str>
};
type retdoc = {
desc: option<str>,
ty: option<str>
};
// Just to break the structural recursive types
enum modlist = [moddoc];
enum fnlist = [fndoc];
|