Matthias Beyer
bd9abf3bc7
Add Store::load_in_cache(... FileID)
2015-12-28 17:38:59 +01:00
Matthias Beyer
7170f95825
BM header helpers: Add get_url_from_header()
2015-12-28 17:38:59 +01:00
Matthias Beyer
2e7621d2bd
Add header helpers for BM
2015-12-28 17:38:59 +01:00
Matthias Beyer
e346f56a8e
Fix: BM module name
2015-12-28 17:38:59 +01:00
Matthias Beyer
fda7fd56b9
Fix: Argument for BM::exec()
2015-12-28 17:38:59 +01:00
Matthias Beyer
523e6f8f66
Implement: BM::command_add()
2015-12-28 17:38:59 +01:00
Matthias Beyer
df27e5d2a3
BM subcommands: Pass ArgMatches
2015-12-28 17:38:59 +01:00
Matthias Beyer
c432e8c2c4
Add subcommand calling code
2015-12-28 17:38:59 +01:00
Matthias Beyer
81ead3c68c
Add debug output to FileID::parse()
2015-12-28 17:35:55 +01:00
Matthias Beyer
f24db1eb7d
Add debug output to Store::remove()
2015-12-28 17:35:55 +01:00
Matthias Beyer
e9ea485ed5
Add debug output to Store::load_in_cache()
2015-12-28 17:35:55 +01:00
Matthias Beyer
4ea83d538f
Add Store::load_by_hash()
2015-12-28 17:35:55 +01:00
Matthias Beyer
62ee1d4e96
Add Store::load_for_module()
2015-12-28 17:35:20 +01:00
Matthias Beyer
3a2c8b091e
Add Store::load_in_cache(... FileID)
2015-12-28 17:35:13 +01:00
Matthias Beyer
c6f31496ab
Module helpers: header: Add get_url_from_header()
2015-12-28 17:35:07 +01:00
Matthias Beyer
24e1ea2522
Fix: Debug for File implementation
2015-12-28 17:34:56 +01:00
Matthias Beyer
d20ace3e80
Add Store::ensure_store_path_exists()
2015-12-28 17:34:47 +01:00
Matthias Beyer
c97f4bab56
Add Store::remove(FileID)
2015-12-28 14:40:56 +01:00
Matthias Beyer
bb97778fbb
Rename table title
2015-12-28 14:30:45 +01:00
Matthias Beyer
1fde80800b
Allow the custom function to return an Vec<String> in the FilePrinter trait
2015-12-28 14:29:44 +01:00
Matthias Beyer
51605e1314
Impl FilePrinter for TablePrinter ::print_files_custom()
2015-12-28 13:56:53 +01:00
Matthias Beyer
6455c45630
Impl FilePrinter for SimplePrinter ::print_file_custom()
2015-12-28 13:56:38 +01:00
Matthias Beyer
f0c186f33b
Impl FilePrinter for DebugPrinter ::print_file_custom()
2015-12-28 13:56:20 +01:00
Matthias Beyer
fc42d6b4bf
FilePrinter: Add print_file_custom(), print_files_custom()
2015-12-28 13:56:01 +01:00
Matthias Beyer
74aab89fbb
ui: Change to take Rc<RefCell<File>> instead of File
2015-12-28 13:36:44 +01:00
Matthias Beyer
c8a0c1168d
Initialize store in Runtime object, pass store path directly into Store object
2015-12-28 00:39:55 +01:00
Matthias Beyer
656aa69bfd
Implement Store::persist()
2015-12-28 00:30:25 +01:00
Matthias Beyer
8145b21404
Fix: Parser::write() can get reference tuple
2015-12-28 00:29:45 +01:00
Matthias Beyer
0212fb1929
Fix: Add missing dash
2015-12-28 00:29:21 +01:00
Matthias Beyer
23e4152aaa
Implement Store::load()
2015-12-28 00:04:54 +01:00
Matthias Beyer
f29bcc7430
Store: Put file into cache, return FileID
2015-12-27 23:51:44 +01:00
Matthias Beyer
470f1b1378
Save only module name in File, not whole module
2015-12-27 23:46:08 +01:00
Matthias Beyer
f774effabb
File: Return inner contents as references, not cloned
2015-12-27 23:26:23 +01:00
Matthias Beyer
030b5fc888
Fixup Store
2015-12-27 23:18:55 +01:00
Matthias Beyer
c595f5a1e8
Move File-creation code to Store
2015-12-27 23:17:51 +01:00
Matthias Beyer
cb2c512440
Add Store type
2015-12-27 23:17:51 +01:00
Matthias Beyer
73c7281259
Make File members pub
2015-12-27 23:17:51 +01:00
Matthias Beyer
736c3784a9
Derive: Eq, PartialEq for FileID
2015-12-27 23:17:51 +01:00
Matthias Beyer
6676611f4b
Derive Hash for FileIDType
2015-12-27 23:02:34 +01:00
Matthias Beyer
f60c540ee5
Derive: Hash for FileID
2015-12-27 23:02:20 +01:00
Matthias Beyer
4c252577f2
Derive: Hash for FileHash
2015-12-27 23:02:06 +01:00
Marcel Müller
22b57d5ad9
Implement FromStr for FileIDType
2015-12-27 18:55:27 +01:00
Matthias Beyer
65aa98607e
Add File::persist()
2015-12-27 18:52:25 +01:00
Matthias Beyer
8029057b22
Add File::edit_contents()
2015-12-27 18:52:19 +01:00
Matthias Beyer
961fb27f99
Add File::edit()
2015-12-27 18:52:02 +01:00
Matthias Beyer
4cac382412
Fixup Into<str> for Path -> Impl as Into<String> for Path
2015-12-27 18:00:56 +01:00
Matthias Beyer
3273e77d24
Fixup Into<str> for Path
2015-12-27 18:00:56 +01:00
Matthias Beyer
312bcf9703
Fixup File::get_new_file_id()
2015-12-27 18:00:56 +01:00
Matthias Beyer
003efb6296
Fixup Into<str> for Path
2015-12-27 18:00:56 +01:00
Matthias Beyer
71bf650653
Fixup FileIDType::parse
2015-12-27 18:00:56 +01:00
Matthias Beyer
2585472349
impl Into<String> for FileID
2015-12-27 18:00:56 +01:00
Matthias Beyer
1fc1c73b4a
impl Into<String> for FileIDType
2015-12-27 18:00:56 +01:00
Matthias Beyer
fab2dece59
When generating a new FileID, use the FileHash type
2015-12-27 18:00:31 +01:00
Matthias Beyer
62150c5a61
Add missing lifetimes
2015-12-27 18:00:31 +01:00
Matthias Beyer
63bbede00f
Add missing 'use ...'
2015-12-27 18:00:31 +01:00
Matthias Beyer
8c2af3e931
Add Path type
2015-12-27 18:00:31 +01:00
Matthias Beyer
85a199ffc8
Add module file for storage
2015-12-27 18:00:31 +01:00
Matthias Beyer
00d0bbf4ae
Add basic interface for BM module
2015-12-27 18:00:28 +01:00
Matthias Beyer
7e77d786bb
Remove old code, FileIDType::NONE does not exist, we use Option<>
2015-12-21 19:28:15 +01:00
Matthias Beyer
dcec155505
Move FileIDType to new module, export publicly
2015-12-21 19:20:09 +01:00
Matthias Beyer
8a7d4b8aaf
Add FileHash type, custom type for an ID
2015-12-21 19:20:09 +01:00
Matthias Beyer
dd7b412976
Remove code
2015-12-21 19:20:09 +01:00
Matthias Beyer
3212429c9e
Impl Debug for Parser
2015-12-19 11:47:24 +01:00
Matthias Beyer
d5af28d98d
Impl {Display,Debug} for JsonHeaderParser
2015-12-19 11:47:24 +01:00
Matthias Beyer
ee78c249f0
Remove leftover file from storage backend moving
2015-12-06 13:15:07 +01:00
Matthias Beyer
188aacad75
Move FileHeader{Spec,Data} to own submodules
2015-12-06 13:09:51 +01:00
Matthias Beyer
3b89148cd0
Move storage/file_id.rs -> storage/file/id.rs
2015-12-06 13:02:21 +01:00
Matthias Beyer
95f6f2e97e
Move file.rs to subdirectory
2015-12-06 13:01:02 +01:00
Matthias Beyer
6e0d0058b0
Move key generating to top-level spec helpers
2015-12-06 12:49:31 +01:00
Matthias Beyer
dad856ff2a
Move get_tags() from BM module to module utilities
2015-12-06 12:49:31 +01:00
Matthias Beyer
7d40b68407
Rename: StorageBackend -> Storage
2015-12-06 12:49:02 +01:00
Matthias Beyer
da2b482bda
Move Storage Backend code imag::storage::backend -> imag::storage
2015-12-06 12:47:08 +01:00
Matthias Beyer
ab3ada0914
Move header helpers from module/header/ to module/helpers/
2015-12-05 16:03:05 +01:00
Matthias Beyer
c6a2d39981
Outsource header utilities into header helper
2015-12-05 16:01:30 +01:00
Matthias Beyer
3a8f2b5493
Refactor: dont use helper but StorageBackendError::new() directly
2015-12-05 15:01:46 +01:00
Matthias Beyer
e6a32eafc0
Outsource StorageBackendError building into helper function
2015-12-05 14:24:58 +01:00
Matthias Beyer
9f59478da0
Readability fixes
2015-12-05 11:10:54 +01:00
Matthias Beyer
93393751b2
Remove uneccessary variable
2015-12-05 11:06:22 +01:00
Matthias Beyer
80563cb340
Move tag filtering to sub-function
2015-12-05 11:05:50 +01:00
Matthias Beyer
e8c7df4593
Remove variable, use expression directly
2015-12-05 11:03:05 +01:00
Matthias Beyer
166a0cf5dd
bm: remove_command: Refactor into sub-functions
2015-12-05 11:00:44 +01:00
Matthias Beyer
75cedc1580
Move to rust stable (1.4 atm) so we can use clap
2015-12-05 10:45:33 +01:00
Matthias Beyer
230d00f35a
Remove unused imports
2015-12-05 01:23:06 +01:00
Matthias Beyer
1f8bdef1ed
Remove unused variables
2015-12-05 01:18:12 +01:00
Matthias Beyer
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
Matthias Beyer
5953563671
Refactor for readability
2015-12-04 23:39:30 +01:00
Matthias Beyer
f8e870312e
Outsource: ids iterator to files vector
2015-12-04 23:35:48 +01:00
Matthias Beyer
55f740497b
Beautify get_tags() helper
2015-12-04 23:26:08 +01:00
Matthias Beyer
cd1bb88f20
Rework remove_command()
2015-12-04 23:19:18 +01:00
Matthias Beyer
848fb0b4b4
Ensure we build the globstring _with_ the ID in it
2015-12-04 23:11:59 +01:00
Matthias Beyer
261fbdd038
Add id getter for FileID
2015-12-04 23:11:46 +01:00
Matthias Beyer
87d5852986
Ensure we dont crash if there are no files found
2015-12-04 23:01:37 +01:00
Matthias Beyer
fd3d2ec8dc
Fixup get_file_by_id()
2015-12-04 22:57:28 +01:00
Matthias Beyer
6473b743a3
Outsource globlist -> Vec<FileID> transformation code snippet
2015-12-04 22:53:31 +01:00
Matthias Beyer
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
Matthias Beyer
253658ece5
Fix: FileID::from() should also succeed if we pass a ID as string
2015-12-04 22:31:09 +01:00
Matthias Beyer
2dfb76bd0d
Reimplement: Parser::divide_text()
2015-12-04 21:56:48 +01:00
Matthias Beyer
5c38e6752b
Fixup glob string generating
2015-12-04 21:56:48 +01:00
Matthias Beyer
08fa8f8655
Add debugging output
2015-12-04 21:56:48 +01:00
Matthias Beyer
2b21d1cb47
StorageBackend::iter_files(): Add caused_by use
2015-12-04 21:56:48 +01:00
Matthias Beyer
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
Matthias Beyer
87d9ca7d06
Print table only if there are entries
2015-12-04 21:56:48 +01:00
Matthias Beyer
b6c1a6301f
Use ParserError::with_cause() and build new ParserError object
2015-12-04 21:56:48 +01:00
Matthias Beyer
3a76c05317
ParserError: Add cause
2015-12-04 21:56:47 +01:00
Matthias Beyer
1aaea39b3d
storage/parser::divide_text(): Add debug output
2015-12-04 21:56:33 +01:00
Matthias Beyer
e72c1c68b9
Fix: Output formatting
...
The header-content separator dashes were completely missing. Shame on
me.
2015-12-04 21:56:33 +01:00
Matthias Beyer
e31239b02b
Fix wording in debug message
2015-12-04 21:56:33 +01:00
Matthias Beyer
915cbd24ef
Impl From<PathBuf> for FileID, using From<String> for FileID
2015-12-04 21:56:33 +01:00
Matthias Beyer
db9c4e48ba
ui/TablePrinter: Add debug output
2015-12-04 21:56:33 +01:00
Matthias Beyer
3484858c3d
Remove unused code
2015-12-04 21:56:33 +01:00
Matthias Beyer
2ab025a4eb
Add test: match_header_spec() testing
2015-12-04 17:52:30 +01:00
Matthias Beyer
e025cf8835
Add missing Clone for FileHeaderSpec
2015-12-04 17:52:30 +01:00
Matthias Beyer
04443b34bf
Add test: serialize-deserialize-compare
2015-12-04 17:52:30 +01:00
Matthias Beyer
3e75117d69
Add test: Deserialization without Specification should match as well
2015-12-04 17:52:30 +01:00
Matthias Beyer
74a9523f45
Use box_patterns, so we can unbox in the tests
2015-12-04 17:52:30 +01:00
Matthias Beyer
2dce3151bd
Remove default impl for Error for ParserError
2015-12-04 17:52:30 +01:00
Matthias Beyer
84e7100229
Add test for deserialization
2015-12-04 17:52:30 +01:00
Matthias Beyer
d9019e408e
Remove static livetime in ParserError::short()
2015-12-04 17:51:22 +01:00
Matthias Beyer
03856cd3a1
Reimplement StorageBackendError::{new,build} with Into<String>
2015-12-04 15:18:52 +01:00
Matthias Beyer
c1d497fa6a
Add URL check before adding the "url" to the store
2015-12-04 15:09:03 +01:00
Matthias Beyer
04df3fdf3c
Rewrite BMModule::get_filtered_files_from_backend() with the backend speaking Result<> now instead of Option<>
2015-12-04 14:17:32 +01:00
Matthias Beyer
40ae26d0f2
BMModule::list_command() - we get back an Result<> here
2015-12-04 14:17:03 +01:00
Matthias Beyer
be094dcfae
StorageBackend::iter_files() return Result<> with StorageBackendError on error
2015-12-04 14:04:20 +01:00
Matthias Beyer
3df106ce8b
StorageBackend::iter_ids() return Result<> with StorageBackendError on error
2015-12-04 14:02:30 +01:00
Matthias Beyer
1b0f4894ac
Use FileIDType::from() and remove select_id_type_from_str()
2015-12-03 17:37:13 +01:00
Matthias Beyer
ce4d99384b
Impl From<&str> for FileIDType, use implementation in From<String> for FileIDType
2015-12-03 17:36:52 +01:00
Matthias Beyer
f25e3683a1
Add hash type to filepath
2015-12-03 17:33:48 +01:00
Matthias Beyer
5c3d0ecce7
Impl Into<FileIDType> for FileID
2015-12-03 17:33:29 +01:00
Matthias Beyer
445f543159
Impl From<String> for FileIDType
2015-12-03 17:33:16 +01:00
Matthias Beyer
02da675b3f
Impl Into<String> for FileIDType
2015-12-03 17:33:03 +01:00
Matthias Beyer
dbf9ada732
Implement: FileID::from(&String), FileID::from(String)
2015-12-02 22:36:27 +01:00
Matthias Beyer
2c3dd521b8
Add test: file_id_from_string()
2015-12-02 22:35:41 +01:00
Matthias Beyer
bcc9771f28
module/bm/commands: Use FileID::into()
2015-12-02 13:43:09 +01:00
Matthias Beyer
557187fbd7
storage/file: Call FileID::new() to build FileID object
2015-12-02 13:43:09 +01:00
Matthias Beyer
8ddfb090b4
ui/file: use FileID::into()
2015-12-02 13:43:09 +01:00
Matthias Beyer
292e29a5f1
Backend: Use FileID::from()
2015-12-02 13:43:09 +01:00
Matthias Beyer
d3bdb39468
Reimplement FileID as abstract type, use Into, From traits for conversion
2015-12-02 13:43:09 +01:00
Matthias Beyer
e93aa4ceae
Refactor uses of file-id-parsing functions to ensure we honnor the Result type
2015-12-02 13:06:08 +01:00
Matthias Beyer
3e94e1612f
Add FileIDResult<FileID, FileIDError>
2015-12-02 13:05:48 +01:00
Matthias Beyer
05a9803c05
Fixup: Member name
2015-12-02 12:29:04 +01:00
Matthias Beyer
9231049e30
Remove StorageBackend::build()
2015-12-02 12:28:41 +01:00
Matthias Beyer
731d13e0ba
Create store path on storage backend creation
2015-12-02 12:24:05 +01:00
Matthias Beyer
abee4d4904
Implement StorageBackend::remove_file()
2015-12-02 12:24:05 +01:00
Matthias Beyer
4675f79aae
remove_command(): Be able to run in "checked" mode
2015-12-02 12:24:05 +01:00
Matthias Beyer
c81d0bf0a8
Implement remove_command()
2015-12-02 12:24:05 +01:00
Matthias Beyer
484b1fb865
Outsource file retrieving from list_command() into helper function
2015-12-02 12:24:05 +01:00
Matthias Beyer
6fcccc8297
Implement list_command
2015-12-02 12:24:05 +01:00
Matthias Beyer
42181afde5
Add tags_of_file() to extract tags from a File
2015-12-02 12:24:05 +01:00
Matthias Beyer
a6ed8e1080
Pass id as &FileID in StorageBackend::get_file_by_id()
2015-12-02 12:24:05 +01:00
Matthias Beyer
103cba0c27
Add File::matches_with(&Regex)
2015-12-02 12:24:05 +01:00