Remove libimagerror, visualize that libimagrt is used in the full stack

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
This commit is contained in:
Matthias Beyer 2019-11-09 17:02:59 +01:00
parent 55274ad1cd
commit d97dfc2d52

View file

@ -43,9 +43,9 @@ These are all libraries. There are also binary crates in the imag project
With the things from above, a module could have the following architecture: With the things from above, a module could have the following architecture:
``` ```
+---------------------------------------------+
| imag-foo |
+-----------------------------------+---------+ +-----------------------------------+---------+
| imag-foo | |
+-----------------------------------+ |
| libimagfoo | | | libimagfoo | |
+-----------------+-----------------+ | +-----------------+-----------------+ |
| | | | | | | |
@ -57,11 +57,7 @@ With the things from above, a module could have the following architecture:
| | imag | | | imag |
+-----------------------------------+ | +-----------------------------------+ |
| | | | | |
| libimagrt | | | libimagstore | rt |
| | error |
+-----------------------------------+ |
| | |
| libimagstore | |
| | | | | |
+-----------------------------------+---------+ +-----------------------------------+---------+
``` ```
@ -70,17 +66,19 @@ External dependencies are not listed in this graphic.
The foundation of all imag modules is the store, as one can see in the The foundation of all imag modules is the store, as one can see in the
visualization from above. visualization from above.
Above the store library there is the libimagrt, which provides the basic runtime Above the store level, entry libraries and domain libraries are used to
and access to the `Store` object. implement functionality.
Cross-cutting, there is the error library (and possibly The highest level of all imag modules is the commandline interface
the util library, but we do not care about this one here), which is used through on top of the domain library. In between can be any number of entry extension
all levels. The highest level of all imag modules is the commandline interface
on top of the domain library. In between can be any number of entry extension
libraries, or none if not needed. libraries, or none if not needed.
libimagrt is used by the binary to construct the runtime, which itself
constructs and initializes the Store, so this library is used in the full stack
more or less.
Theoretically, the commandline interface crate could be replaced to build a Theoretically, the commandline interface crate could be replaced to build a
terminal user interface, graphical user interface or web interface. terminal user interface, graphical user interface or web interface.
## Types ## Types
The imag core, hence the libimagstore, libimagrt and libimagerror, provide a set The imag core, hence the libimagstore, libimagrt and libimagerror, provide a set