-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathoutline-design.txt
48 lines (47 loc) · 6.69 KB
/
outline-design.txt
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
┌───────────┐ Navigation Panel
│Item Detail│ ┌────────────────────┐
└─────┬─────┘ │Module Tree │
│ ┌───────┐ │Field/Variant Tree │
├─────────┤Modules│ │ITAB Impl Tree │
│ └───────┘ │Args Type Tree │
│ │Return Type Tree │
│ ┌───────────────────┐ ┌───────────────┐ │Construct Fn Tree │
│ │Data Structures ├─┬────►│Fields/Varaints│ │Non-receiver Fn Tree│
├─────────┤(struct/enum/union)│ │ └───────────────┘ └────────────────────┘
│ └───────────────────┘ │
│ ▲ │
│ │ │ ┌─────┐ For methods in all Impls
│ │ ├────►│Impls├────────────────────────┐
│ ┌────────┐ │ │ └───┬─┘ │
├───│Funcions│ │ │ ├─────► Inherent methods │
│ └──┬─────┘ │ │ │ │
│ │ ┌──────────┐ │ │ Sort ├─────► Trait methods │
│ ├──►│Args Types├───┐ │ │ By Name │ │
│ │ └──────────┘ ├─┤ │ In kinds├─────► Auto traits │
│ │ ┌───────────┐ ├─┤ │ │ │
│ └──►│Return Type├──┘ │ │ └─────► Blanket traits │
│ └───────────┘ │ │ │
│ │ │ ┌───────┘
│ │ │ │ ┌──────────────────┐
│ ┌──────┐ │ │ ├───►│Sort By Args Types├───┐
└───┤Traits│ │ │ No │ └──────────────────┘ │
└─┬────┘ TODO │ │ ITAB│ ┌───────────────────┐ │
│ ┌────────────────┐ │ │ └───►│Sort By Return Type├──┤
│ │Sub/Super traits│ │ │ └───────────────────┘ │
│ │Assoc Types │ │ │ ┌───────────────────┐ │
└──┤Type Parameters │ │ ├─────│Construct Functions│ fn(...) -> Self │
│Method Args │ │ │ └───────────────────┘ │ │
│Method Return │ │ │ ┌───────────────────┐ │ │
└───────┬────────┘ │ └─────│Used as an argument│ │ │
│ │ └───────────────────┘ │ │
│ │ fn(.., Self) -> ... │ │
│ │ i.e. non-receiver fn │ │
▼ ▼ │ │ │
┌────────────────────────────────────────────┐ │ │ │
│ ┌──► Concrete Types │ │ │ │
│ │ │ │ │ │
│Types──┤ │ │ │ │
│ │ ┌─► Semi Generic │◄────────┴───────────────────────┴────────────────┘
│ └──► Generic Types──┤ │
│ └─► Fully Generic│
└────────────────────────────────────────────┘