diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2018-04-24 22:08:31 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2018-04-24 22:16:40 +0200 |
commit | 563c76c375eb704a16e50082d134f8b1bb243a7a (patch) | |
tree | 64f1331fd59836dee2db8437851899fff0f41d22 /doc | |
parent | 19e0471f5b7234c6e09371e3264072ed8fdcc5e1 (diff) |
Remove "stdio" file abstraction from store implementation
Diffstat (limited to 'doc')
-rw-r--r-- | doc/src/02000-store.md | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/doc/src/02000-store.md b/doc/src/02000-store.md index acb2c6d8..7a0b6ac4 100644 --- a/doc/src/02000-store.md +++ b/doc/src/02000-store.md @@ -178,80 +178,3 @@ The `InMemoryFileAbstractionInstance` implementation is corrosponding to the `InMemoryFileAbstraction` implementation - for the in-memory "filesystem". -## The StdIo backend {#sec:thestore:backends:stdio} - -Sidenote: The name is "StdIo" because its main purpose is Stdin/Stdio, but it -is abstracted over Read/Write actually, so it is also possible to use this -backend in other ways, too. - -### Why? {#sec:thestore:backends:stdio:why} - -This is a backend for the imag store which is created -from stdin, by piping contents into the store (via JSON or TOML) and piping the -store contents (as JSON or TOML) to stdout when the backend is destructed. - -This is one of some components which make command-chaining in imag possible. -With this, the application does not have to know whether the store actually -lives on the filesystem or just "in memory". - -### Mappers {#sec:thestore:backends:stdio:mappers} - -The backend contains a "Mapper" which defines how the contents get mapped into -the in-memory store representation: A JSON implementation or a TOML -implementation are possible. - -The following section assumes a JSON mapper. - -The mapper reads the JSON, parses it and translates it to a `Entry`. -Then, the entry is made available to the store codebase. -To summarize what we do right now, lets have a look at the awesome ascii-art -below: - -``` - libimag* - | - v - IO Mapper Store Mapper IO -+--+---------+----------------+--------+--+ -| | | | | | - JSON -> Entry -> JSON -``` - -This is what gets translated where for one imag call with a stdio store backend. - -### The JSON Mapper {#sec:thestore:backends:stdio:json} - -The JSON mapper maps JSON which is read from a source into a HashMap which -represents the in-memory filesystem. - -The strucure is as follows: - -```json -{ - "version": "0.8.0", - "store": { - "example": { - "header": { - "imag": { - "version": "0.8.0", - }, - }, - "content": "hi there!", - }, - }, -} -``` - -### TODO {#sec:thestore:backends:todo} - -If you look at the version history of this file you will see that this -implementation has grown from something complex and probably slow to what we -have today. - -Still, there's one improvement we could make: abstract all the things away so -the `libimag*` crates handle the header without knowing whether it is JSON or -TOML. -With this, we would not even have to translate JSON to TOML anymore. -We should measure whether this would have actually any performance impact before -implementing it. - |