blob: 4428eed0e1e811a8378d98a2ed6835006a565a31 (
plain)
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
|
# SvgBobRus
<img src="https://img.shields.io/crates/v/svgbob.svg" alt="svgbob’s current version badge" title="svgbob’s current version badge">
SvgBobRus is an ascii to svg converter.
![image](https://ivanceras.github.io/svgbobrus/examples/demo.svg)
The SVG image is generated from the ascii text below.
```text
+------+ +-----+ +-----+ +-----+
| | | | | | | |
| Foo +-->| Bar +---+ Baz |<--+ Moo |
| | | | | | | |
+------+ +-----+ +--+--+ +-----+
^ |
| V
.-------------+-----------------------.
| Hello here and there and everywhere |
'-------------------------------------'
____________
.--------------. \ \
/ a == b \ \ \ __________
( && ) ) process ) \ \
\ 'string' ne '' / / / / process /
'--------------' /___________/ /_________/
__________________
\_________________\
\ \
. another process .
/_________________/
/_________________/
User code ^ ^ OS code
\ /
\ .--'
\ /
User code <--- Mode ----> OS code
/ \
.--' \___
/ \
v v
User code OS code
.---. .---. .---. .---. .---. .---.
OS API '---' '---' '---' '---' '---' '---'
| | | | | |
v v | v | v
.------------. | .-----------. | .-----.
| Filesystem | | | Scheduler | | | MMU |
'------------' | '-----------' | '-----'
| | | |
v | | v
.----. | | .---------.
| IO |<----' | | Network |
'----' | '---------'
| | |
v v v
.---------------------------------------.
| HAL |
'---------------------------------------'
____[]
| ___ |
|| || device
||___|| loads
| ooo |----------------------------------------------------------.
| ooo | | | |
| ooo | | | |
'-----' | | |
| | |
v v v
.-------------------. .---------------------------. .-------------------.
| Loadable module C | | Loadable module A | | Loadable module B |
'-------------------' |---------------------------| | (instrumented) |
| | .-----. | '-------------------'
'------------+-------->| A.o | | |
calls | '-----' | |
| .------------------. | |
| / A.instrumented.o /<---+-------------'
| '------------------' | calls
'---------------------------'
.--------------.
\ \
'--------------'
.--> Base::Class::Derived_A
/
.----> Base::Class::Derived_B
Something -------. / \
\ / .---> Base::Class::Derived
Something::else \ / \
\ \ / '--> Base::Class::Derived
\ \ /
\ \ .-----------> Base::Class::Derived_C
\ \ /
'------ Base::Class
/ \ \ \
' \ \ \
| \ \ \
. \ \ '--- The::Latest
/| \ \ \
With::Some::fantasy ' \ \ '---- The::Latest::Greatest
/| \ \
More::Stuff ' \ '- I::Am::Running::Out::Of::Ideas
/| \
More::Stuff ' \
/ '--- Last::One
More::Stuff V
```
Originally written in elm from the original [project](https://github.com/ivanceras/svgbob)
[Demo site](https://ivanceras.github.io/svgbobrus/)
|