Skip to content

Commit

Permalink
doc: add Navigation Panel design
Browse files Browse the repository at this point in the history
  • Loading branch information
zjp-CN committed Feb 26, 2024
1 parent 3494411 commit 0f172ae
Showing 1 changed file with 41 additions and 41 deletions.
82 changes: 41 additions & 41 deletions outline-design.txt
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
┌───────────┐
│Item Detail│
└─────┬─────┘
│ ┌───────┐
├─────────┤Modules│
│ └───────┘
│ ┌───────────────────┐ ┌───────────────┐
│ │Data Structures ├─┬────►│Fields/Varaints│
├─────────┤(struct/enum/union)│ │ └───────────────┘
│ └───────────────────┘ │
│ ▲ │
│ │ │ ┌─────┐ For methods in Impls
│ │ ├────►│Impls├────────────────────────┐
│ ┌────────┐ │ │ └───┬─┘ │
├───│Funcions│ │ │ ├─────► Inherent methods │
│ └──┬─────┘ │ │ │ │
│ │ ┌──────────┐ │ │ Sort ├─────► Trait methods │
│ ├──►│Args Types├───┐ │ │ By Name │ │
│ │ └──────────┘ ├─┤ │ In kinds├─────► Auto traits │
│ │ ┌───────────┐ ├─┤ │ │ │
│ └──►│Return Type├──┘ │ │ └─────► Blanket traits │

┌───────────┐ 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 │ └──────────────────┘ │
└─┬────┘ │ │ ITAB│ ┌───────────────────┐ │
│ ┌────────────────┐ │ │ └───►│Sort By Return Type├──┤
│ │Sub/Super traits│ │ │ └───────────────────┘ │
│ │Assoc Types │ │ │ ┌───────────────────┐ │
└──┤Type Parameters │ │ ├─────│Construct Functions│ fn(...) -> Self │
│Method Args │ │ │ └───────────────────┘ │ │
│ ┌──────┐ │ │ ├───►│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) -> ... │ │
│ │ │ │
▼ ▼ │ │
┌────────────────────────────────────────────┐ │ │
│ ┌──► Concrete Types │ │ │
│ │ │ │ │
│Types──┤ │ │ │
│ │ ┌─► Semi Generic │◄───────────────────────────────┴────────────────┘
│ └──► Generic Types──┤ │
│ └─► Fully Generic│
│ │ i.e. non-receiver fn │ │
▼ ▼ │ │
┌────────────────────────────────────────────┐ │ │
│ ┌──► Concrete Types │ │ │
│ │ │ │ │
│Types──┤ │ │ │
│ │ ┌─► Semi Generic │◄───────────────────────────────┴────────────────┘
│ └──► Generic Types──┤ │
│ └─► Fully Generic│
└────────────────────────────────────────────┘

0 comments on commit 0f172ae

Please sign in to comment.