typesystem
+------------------------------------------+
| |
| +------------+ |
| | typebuffer | 2 |
| +------------+------------+ <----------+
| | | |
| | | |
| v3 | |
| +---------+------------+ 5 | +-----+-----+
| | typebuffer_interface | <--+ | | container |
| +-----------+----------+ | | +-----------+
| | | | ^1
| | +----------+-----+ | |
| | | put_rewriter | 4 | +--+--+
| | +----------------+ <-------------+ T |
| | | +--+--+
| | | ^7
| | 6 +-----------------+ | |
| +--> | get_rewriter +-----------------+
| +-----------------+ |
| | `
+------------------------------------------+
figure 1: overview of typesystems, without type ids.
- A container for type 'T' is created.
- The container is used by the typebuffer adapter.
- The typebuffer_interface is used to access the adapter.
- The rewriter then exams 'T' and converts it if necessary.
- The typebuffer_interface is used to store 'T'.
- The typebuffer_interface is used to retrieve 'T'.
- A rewriter exams 'U' and converts it to 'T' if necessary.