Commit graph

5054 commits

Author SHA1 Message Date
699f4083e9 Add Runtime::store_backend_to_stdout(), make _stdio() variant use stdin properly 2017-06-20 20:57:40 +02:00
e7e3a75924 Add another JSON test for an empty JSON 2017-06-20 20:57:25 +02:00
2790042f6f Propagate parsing errors
This somehow resolved another error as well, where the toml parser
reported an error for the parsed file, despite beeing one in the file.

I don't know how this commit fixed this, but it scares the shit out of
me.
2017-06-20 20:34:47 +02:00
801622ecf2 Add output where paths is set 2017-06-20 20:34:27 +02:00
de3b244a62 Bugfix: Use StoreId::from_full_path()
The rationale is that the walker implementation yields the complete path
rather than the local part.

This patch fixes this issue by using StoreId::from_full_path() rather
than StoreId::new().
2017-06-20 20:33:58 +02:00
cac3e6114e Add debug output to Walk::next() impl 2017-06-20 20:33:54 +02:00
54484a6ee7 Add debug output to StoreId::new_baseless() 2017-06-20 20:33:50 +02:00
2c97d6f194 Merge pull request #974 from matthiasbeyer/libimagstore/embellishments
Remove unnecessary clone() call
2017-06-18 20:03:29 +02:00
f8ed6794c2 Merge pull request #975 from matthiasbeyer/libimagstore/backend-replacement
Libimagstore/backend replacement
2017-06-18 19:44:32 +02:00
a672e4db21 Remove TODO from Store::reset_backend() 2017-06-18 19:33:52 +02:00
d33b435031 Merge pull request #922 from matthiasbeyer/libimagstore/all-entries
Add Store::entries()
2017-06-18 19:17:58 +02:00
bee97c8758 Add Store::entries() 2017-06-18 19:07:15 +02:00
a4188a3100 Add proper impl of Store::reset_backend() 2017-06-18 18:52:27 +02:00
c814171875 Add backend draining 2017-06-18 18:52:21 +02:00
b572e7e8b9 Abstract away the output of the IO backend
This patch refactors the output part of the IO backend into an own
backend which is simply used by the IO-backend.

This way we can have a pure-output backend.
2017-06-18 18:52:03 +02:00
caf77012d9 Add tests to test backend replacing 2017-06-18 18:51:58 +02:00
41f3b10976 Add Runtime::store_backend_to_stdio() function 2017-06-18 13:37:50 +02:00
c0936a0273 Add Store::reset_backend() function for re-setting the backend 2017-06-18 13:37:50 +02:00
97741fd4ee Remove unnecessary clone() call 2017-06-18 13:37:35 +02:00
e75c37fbb2 Merge pull request #973 from matthiasbeyer/libimagstore/io-backend-knows-format
Libimagstore/io backend knows format
2017-06-18 12:47:07 +02:00
266311d743 Change backends to do less ser-/deserialization
This commit changes the backends to do less de/ser, as it now stores the
Entry objects in the backend and does the de/serialization there.

This means the store does only serialize things once from json to toml
in the io backend.

See the diff of the documentation for more details.
2017-06-18 12:32:04 +02:00
52011a59b2 Move serialize/deserialize calls of Entry to backend 2017-06-18 12:32:03 +02:00
cd99873f17 Merge pull request #972 from matthiasbeyer/libimagstore/io-backend
Libimagstore/io backend
2017-06-18 12:31:38 +02:00
3af1042593 Fix fs_to_write() to serialize headers correctly 2017-06-18 11:33:18 +02:00
c013ca8025 Outsource header/content parsing from store.rs to util.rs for reusability 2017-06-18 11:33:18 +02:00
91c427925b Make backend generic over Read/Write 2017-06-18 11:33:18 +02:00
73c1e79084 Implement high-level store test with IO backend 2017-06-18 11:33:18 +02:00
c4b2287876 Move the documentation to the docs 2017-06-18 11:33:18 +02:00
76dfe23f65 Add StdIoFileAbstraction module documentation 2017-06-18 11:33:18 +02:00
e5c8e9a1ac Add simple tests 2017-06-18 11:33:18 +02:00
aede9a112b Add first code draft for JSON mapper implementation 2017-06-18 11:33:17 +02:00
08f9eb3d83 Add new dependencies: Serde* 2017-06-18 11:31:55 +02:00
af2b629a86 Add VersionError kind 2017-06-18 11:31:55 +02:00
4abd9dd7cf Split into module-files 2017-06-18 11:31:55 +02:00
447f2610ef Make StdIo backend abstract over IO->"fs"->IO mapper 2017-06-18 11:31:55 +02:00
146e2a1140 Implement backend code for in-memory IO backend
This commit implements a backend which reads from a Read when created
and writes to a Write when dropped.

This way, one can initialize stores which are build from commandline
feeded JSON or TOML (currently JSON is implemented/about to be
implemented).
2017-06-18 11:31:55 +02:00
f487550f81 Merge pull request #971 from matthiasbeyer/libimagstore/storeid-local-part-altering
Add fn StoreId::local_push() for altering the local part of a StoreId
2017-06-17 21:14:44 +02:00
5b8c138922 Add fn StoreId::local_push() for altering the local part of a StoreId 2017-06-17 17:21:27 +02:00
bc95c5615d Merge pull request #970 from matthiasbeyer/libimagstore/fs-abstraction-pub
Make libimagstore::file_abstraction pub
2017-06-17 14:07:01 +02:00
71e3d3d2d1 Merge pull request #968 from matthiasbeyer/libimagentrytag/validator-helper-enhancement
Add is_tag_str(&str) wrapper for is_tag(String)
2017-06-17 12:54:13 +02:00
1f26460b90 Make libimagstore::file_abstraction pub 2017-06-17 12:51:29 +02:00
ac805dcef7 Add is_tag_str(&str) wrapper for is_tag(String) 2017-06-17 12:34:13 +02:00
c4d4fe9389 Merge pull request #967 from matthiasbeyer/libimagstore/remove-todo-comment
Remove "TODO"-comment
2017-06-13 09:04:14 +02:00
ac8ea872cb Remove "TODO"-comment 2017-06-12 19:29:57 +02:00
a9d2d7c354 Merge pull request #962 from matthiasbeyer/libimagstore/fs-memory-backend-as-dependency-injection
Libimagstore/fs memory backend as dependency injection
2017-06-10 21:01:57 +02:00
15b77ac2c1 Merge pull request #965 from matthiasbeyer/libimagentrytag/clap-validators
Add clap validator for tag string
2017-06-09 14:55:34 +02:00
98c33f7571 Add clap validator for tag string 2017-06-09 13:48:24 +02:00
bec59c1f8a Remove warnings by returning errors explicitely 2017-06-09 13:27:06 +02:00
81449f48d6 Re-export file abstraction types 2017-06-09 13:22:45 +02:00
f82813bc3d Use in-memory backend in store tests 2017-06-09 11:15:55 +02:00