Commit graph

218 commits

Author SHA1 Message Date
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