7d40b68407
Rename: StorageBackend -> Storage
2015-12-06 12:49:02 +01:00
da2b482bda
Move Storage Backend code imag::storage::backend -> imag::storage
2015-12-06 12:47:08 +01:00
3a8f2b5493
Refactor: dont use helper but StorageBackendError::new() directly
2015-12-05 15:01:46 +01:00
e6a32eafc0
Outsource StorageBackendError building into helper function
2015-12-05 14:24:58 +01:00
230d00f35a
Remove unused imports
2015-12-05 01:23:06 +01:00
f7a92b6e79
Resort "use"
...
First comes std stuff
Second is external crates
Then we have own modules
All in alphabetical order and as few lines as possible if readability is
preserved.
2015-12-05 01:14:13 +01:00
5953563671
Refactor for readability
2015-12-04 23:39:30 +01:00
f8e870312e
Outsource: ids iterator to files vector
2015-12-04 23:35:48 +01:00
848fb0b4b4
Ensure we build the globstring _with_ the ID in it
2015-12-04 23:11:59 +01:00
261fbdd038
Add id getter for FileID
2015-12-04 23:11:46 +01:00
fd3d2ec8dc
Fixup get_file_by_id()
2015-12-04 22:57:28 +01:00
6473b743a3
Outsource globlist -> Vec<FileID> transformation code snippet
2015-12-04 22:53:31 +01:00
dac4911ea2
(partly) Rewrite StorageBackend::get_file_by_id(), so we can get a file with a partially available ID
2015-12-04 22:49:00 +01:00
253658ece5
Fix: FileID::from() should also succeed if we pass a ID as string
2015-12-04 22:31:09 +01:00
2dfb76bd0d
Reimplement: Parser::divide_text()
2015-12-04 21:56:48 +01:00
5c38e6752b
Fixup glob string generating
2015-12-04 21:56:48 +01:00
08fa8f8655
Add debugging output
2015-12-04 21:56:48 +01:00
2b21d1cb47
StorageBackend::iter_files(): Add caused_by use
2015-12-04 21:56:48 +01:00
90e3f44005
StorageBackend::iter_ids(): Add caused_by() usage
...
Actually not, as there is no Error implementation for the error we get
to handle here.
2015-12-04 21:56:48 +01:00
b6c1a6301f
Use ParserError::with_cause() and build new ParserError object
2015-12-04 21:56:48 +01:00
3a76c05317
ParserError: Add cause
2015-12-04 21:56:47 +01:00
1aaea39b3d
storage/parser::divide_text(): Add debug output
2015-12-04 21:56:33 +01:00
e72c1c68b9
Fix: Output formatting
...
The header-content separator dashes were completely missing. Shame on
me.
2015-12-04 21:56:33 +01:00
e31239b02b
Fix wording in debug message
2015-12-04 21:56:33 +01:00
915cbd24ef
Impl From<PathBuf> for FileID, using From<String> for FileID
2015-12-04 21:56:33 +01:00
3484858c3d
Remove unused code
2015-12-04 21:56:33 +01:00
2ab025a4eb
Add test: match_header_spec() testing
2015-12-04 17:52:30 +01:00
e025cf8835
Add missing Clone for FileHeaderSpec
2015-12-04 17:52:30 +01:00
04443b34bf
Add test: serialize-deserialize-compare
2015-12-04 17:52:30 +01:00
3e75117d69
Add test: Deserialization without Specification should match as well
2015-12-04 17:52:30 +01:00
2dce3151bd
Remove default impl for Error for ParserError
2015-12-04 17:52:30 +01:00
84e7100229
Add test for deserialization
2015-12-04 17:52:30 +01:00
d9019e408e
Remove static livetime in ParserError::short()
2015-12-04 17:51:22 +01:00
03856cd3a1
Reimplement StorageBackendError::{new,build} with Into<String>
2015-12-04 15:18:52 +01:00
be094dcfae
StorageBackend::iter_files() return Result<> with StorageBackendError on error
2015-12-04 14:04:20 +01:00
3df106ce8b
StorageBackend::iter_ids() return Result<> with StorageBackendError on error
2015-12-04 14:02:30 +01:00
1b0f4894ac
Use FileIDType::from() and remove select_id_type_from_str()
2015-12-03 17:37:13 +01:00
ce4d99384b
Impl From<&str> for FileIDType, use implementation in From<String> for FileIDType
2015-12-03 17:36:52 +01:00
f25e3683a1
Add hash type to filepath
2015-12-03 17:33:48 +01:00
5c3d0ecce7
Impl Into<FileIDType> for FileID
2015-12-03 17:33:29 +01:00
445f543159
Impl From<String> for FileIDType
2015-12-03 17:33:16 +01:00
02da675b3f
Impl Into<String> for FileIDType
2015-12-03 17:33:03 +01:00
dbf9ada732
Implement: FileID::from(&String), FileID::from(String)
2015-12-02 22:36:27 +01:00
2c3dd521b8
Add test: file_id_from_string()
2015-12-02 22:35:41 +01:00
557187fbd7
storage/file: Call FileID::new() to build FileID object
2015-12-02 13:43:09 +01:00
292e29a5f1
Backend: Use FileID::from()
2015-12-02 13:43:09 +01:00
d3bdb39468
Reimplement FileID as abstract type, use Into, From traits for conversion
2015-12-02 13:43:09 +01:00
e93aa4ceae
Refactor uses of file-id-parsing functions to ensure we honnor the Result type
2015-12-02 13:06:08 +01:00
3e94e1612f
Add FileIDResult<FileID, FileIDError>
2015-12-02 13:05:48 +01:00
05a9803c05
Fixup: Member name
2015-12-02 12:29:04 +01:00
9231049e30
Remove StorageBackend::build()
2015-12-02 12:28:41 +01:00
731d13e0ba
Create store path on storage backend creation
2015-12-02 12:24:05 +01:00
abee4d4904
Implement StorageBackend::remove_file()
2015-12-02 12:24:05 +01:00
a6ed8e1080
Pass id as &FileID in StorageBackend::get_file_by_id()
2015-12-02 12:24:05 +01:00
103cba0c27
Add File::matches_with(&Regex)
2015-12-02 12:24:05 +01:00
f060c89751
Add helper for building file prefix
...
This helper builds the file prefix for the files of a module.
2015-12-02 12:24:05 +01:00
144398a2ad
Remove explanation member of StorageBackendError to reduce complexibility
2015-12-02 12:24:05 +01:00
4a6d1a74c0
Retry fixing the StorageBackend::cause()
2015-12-02 12:24:05 +01:00
366121b6ed
Reimplement StorageBackend::update_file()
2015-12-02 12:24:05 +01:00
eabf726846
Outsource file to string parsing
2015-12-02 12:24:05 +01:00
e0fefc3da4
Reimplement StorageBackend::put_file()
2015-12-02 12:24:05 +01:00
21d889e1e2
Add caused_by field in StorageBackend
2015-12-02 12:24:05 +01:00
1038880de9
Save storepath in extra variable
2015-12-02 12:24:05 +01:00
c9ebe3b7a1
Pass owner to file path builder helper function
2015-12-02 12:24:05 +01:00
98ec735ea3
Add File::owner() - a getter for the owner of a file
2015-12-02 12:24:05 +01:00
593e98ac5d
A File is bound to a Module
...
A File object must be bound to a Module, as one Module owns the File.
This way we can use the Module internally to build the file path later.
2015-12-02 12:24:05 +01:00
0d751f9ffd
Add some debug output in StorageBackend::build_filepath_with_id()
2015-12-02 12:24:05 +01:00
86286cce1b
Remove livetimes
2015-12-02 12:24:05 +01:00
51f6af6346
We should really use String here
2015-12-02 12:24:05 +01:00
2bab3d48e6
Fix JsonHeaderParser::serialize()
2015-12-02 12:00:20 +01:00
7549db4ffc
Fix JsonHeaderParser::visit_json()
2015-12-02 12:00:20 +01:00
500fb281a0
JsonHeaderParser: Make spec optional
2015-12-02 12:00:20 +01:00
34cf5076f9
Reimplement JsonHeaderParser::write()
2015-12-02 12:00:19 +01:00
df18071d9a
Move JsonHeaderParser::new() out of trait implementation
2015-12-02 12:00:19 +01:00
cf196b2492
Fixup: get_file_ids() - use prefix_of_files_for_module()
2015-12-02 12:00:19 +01:00
0e4a56fe68
Reimplement StorageBackend::new(), create directory if not existing, store storepath in extra variable
2015-12-02 12:00:19 +01:00
1e5c50bc0b
Fixup: Import remove_file()
2015-12-02 12:00:19 +01:00
0796d0ab36
Fixup: File::from_parser_result() gets module now as well
2015-12-02 12:00:19 +01:00
9a0cc75c6f
BackendOperationResult: Add optional type parameter
2015-12-02 12:00:19 +01:00
d35e89f27c
Fixup: get_file_by_id() gets &Module as well, so it can use build_filepath_with_id()
2015-12-02 12:00:19 +01:00
c81800d985
Implement helpers: build_filepath_with_id(), prefix_of_files_for_module()
2015-12-02 12:00:19 +01:00
0363075f9c
Implement StorageBackend::remove_file()
2015-12-02 12:00:19 +01:00
c23a1e22ab
Implement helper write_with_parser()
2015-12-02 12:00:19 +01:00
25b26b03a6
Reimplement StorageBackend::update_file()
2015-12-02 12:00:19 +01:00
8bd782c1a7
Reimplement StorageBackend::put_file()
2015-12-02 12:00:19 +01:00
d141a3670f
Add StorageBackend::iter_files()
2015-12-02 12:00:19 +01:00
1b6711fe10
Add StorageBackend::iter_ids()
2015-12-02 12:00:19 +01:00
d22b991da0
Implement StorageBackendError::build() helper
2015-12-02 12:00:19 +01:00
8ff5dcc9e8
Add StorageBackendError::caused_by member
2015-12-02 12:00:19 +01:00
c73cb88df4
Remove StorageBackendError::explanation member
2015-12-02 12:00:19 +01:00
9493c79104
Reimplement Debug for File
2015-12-02 12:00:12 +01:00
535952c2a5
Implement Display for File
2015-12-02 11:58:07 +01:00
6eb7bee355
Reimplement File::contents() with File::{header(),data()}
2015-12-02 11:58:07 +01:00
09940f3228
Each file must have an owning module
2015-12-02 11:58:07 +01:00
90f08cc1f2
Implement File::{header(),data()} as header/data getters
2015-12-02 11:32:59 +01:00
d89977a09e
Implement File::matches_with(&Regex)
2015-12-02 11:32:14 +01:00
58bd36599f
Implement FileHeaderData::matches_with(&Regex)
2015-12-02 11:30:50 +01:00
8f8badebb3
Fix: FileHeaderData::Key::name must be a &'static str
2015-12-02 11:30:14 +01:00
2a468059aa
parser: Remove livetimes
2015-12-02 11:28:21 +01:00
9edad2800f
Add debugging output in storage parser code
2015-11-27 22:18:26 +01:00