Commit Graph

326 Commits

Author SHA1 Message Date
Matthias Beyer 56612cf1a0 Fix: unused import 2015-11-27 16:59:44 +01:00
Matthias Beyer 7786eed7f0 Fix: unused import 2015-11-27 16:59:05 +01:00
Matthias Beyer 82e346e89b Fix: unused import 2015-11-27 16:58:38 +01:00
Matthias Beyer 5bd40d208a Fix: unused import 2015-11-27 16:58:19 +01:00
Matthias Beyer e8af265c0c Fix: unused import 2015-11-27 16:57:52 +01:00
Matthias Beyer 6926363f70 Fix: use unimplemented instead of false implementation 2015-11-27 16:55:18 +01:00
Matthias Beyer 8a546dfb26 Fix Bug: Pass iterator value, not currently parsed value 2015-11-27 16:52:09 +01:00
Matthias Beyer 3ed431ad5f Fix: unnecessary parentheses around `if` condition 2015-11-27 16:50:54 +01:00
Matthias Beyer 930a7ecc3f Fix: structure field `dataDump` should have a snake case name such as `data_dump` 2015-11-27 16:50:12 +01:00
Matthias Beyer c8231e5c31 Fix: variable does not need to be mutable 2015-11-27 16:49:25 +01:00
Matthias Beyer c597f6d1f0 Fix compiletime errors 2015-11-24 19:37:22 +01:00
Matthias Beyer a6054d2223 StorageBackendError: Use String instead of str in params 2015-11-24 19:31:22 +01:00
Matthias Beyer f694feacf9 Clone these values when returning them 2015-11-24 19:28:26 +01:00
Matthias Beyer a8bc7ecc47 Make FileHeaderData cloneable 2015-11-24 19:27:57 +01:00
Matthias Beyer 2ed2b17b85 Refactor get_file_by_id() into smaller functions 2015-11-24 16:47:01 +01:00
Matthias Beyer 1b1f0678cb Refactor: File::from_parser_result() shouldnt do error handling, do this in calling code 2015-11-24 16:34:03 +01:00
Matthias Beyer b6af948c0e Implement Storage::get_file_by_id() 2015-11-24 10:59:30 +01:00
Matthias Beyer 176183e718 Refactor helpers for more fine-grained possibilities 2015-11-24 10:59:16 +01:00
Matthias Beyer 4464c32b98 Add helper to build file from Parser return value 2015-11-24 10:58:54 +01:00
Matthias Beyer 8808e911c8 Implement Storage::update_file() 2015-11-24 10:48:30 +01:00
Matthias Beyer 14ae6d623b Refactor: Outsource filepath building 2015-11-24 10:30:52 +01:00
Matthias Beyer f498ffa54c Implement Storage::put_file() 2015-11-24 10:27:42 +01:00
Matthias Beyer 616e0b789b Make Parser::write() public 2015-11-24 10:27:34 +01:00
Matthias Beyer c2135b5c6c Add getter methods for File object contents 2015-11-24 10:27:20 +01:00
Matthias Beyer da792694c5 Add StorageBackend builder 2015-11-23 19:54:08 +01:00
Matthias Beyer e1faad7a28 Add runtime rtp getter (and in cli and configuration types) 2015-11-23 19:48:37 +01:00
Matthias Beyer 14d92d8b2f Add some functions to File, so we can generate file instances with content 2015-11-23 19:27:54 +01:00
Matthias Beyer 91de245836 Rename function to match naming scheme 2015-11-23 19:26:02 +01:00
Matthias Beyer b8fa7c5696 Reset and restart implementation 2015-11-23 19:25:27 +01:00
Matthias Beyer e623b74139 Implement: Storage::createFile() 2015-11-23 19:17:46 +01:00
Matthias Beyer 263a3b7780 Store the file handle in our internal File type 2015-11-23 19:17:46 +01:00
Matthias Beyer 7faa693d5c Move implementation to get a new file on the FS
Now we have a function which creates a new file on the FS and returns
the handle and the FileID object.
2015-11-23 19:17:46 +01:00
Matthias Beyer 48fd3e66f5 Add implementation for Storage::createEmpty() 2015-11-23 19:17:46 +01:00
Matthias Beyer 25de1c6c2a We should use the FileID type in the File 2015-11-23 18:46:09 +01:00
Matthias Beyer bff2bf68c6 We dont need to pass the module here 2015-11-23 18:45:31 +01:00
Matthias Beyer 9aced858ac Outsource file id parsing 2015-11-23 18:42:55 +01:00
Matthias Beyer b0e5f28528 Implement getFileList() 2015-11-23 18:28:24 +01:00
Matthias Beyer 68c6c35f54 Add getFileList(self) to list files from basepath 2015-11-20 15:34:40 +01:00
Matthias Beyer 2af5f404f4 Fix typo in StorageBackend::new() 2015-11-20 15:34:06 +01:00
Matthias Beyer 7e86394b3c add dep: glob 2015-11-20 15:33:40 +01:00
Matthias Beyer e59fbd52c3 Add fn to extract id from path string 2015-11-20 15:33:24 +01:00
Matthias Beyer 42ac04c1a8 Implement StorageBackend::new() 2015-11-10 20:53:35 +01:00
Matthias Beyer 9cff6772c8 Implement StorageBackendError 2015-11-10 20:43:55 +01:00
Matthias Beyer 99a2670803 Add module/command trait 2015-11-10 20:43:53 +01:00
Matthias Beyer ba91e7ee26 The module itself has to be populate the Command instance
This will be done by the module returning a lambda to build the
command instance.
2015-11-10 20:43:35 +01:00
Matthias Beyer f4dbec72ee Add storage/backend setup 2015-11-10 20:43:30 +01:00
Matthias Beyer e73701ace4 Remove old todo module code 2015-11-10 20:33:47 +01:00
Matthias Beyer 159b363d58 Remove the concept of DataParser and Abstract Data types
We use String as type for Data, so we don't have problems with parsing
things and the whole templating foo in the parser gets a lot simpler.
2015-11-10 20:31:05 +01:00
Matthias Beyer e3afb3c0f3 Implement Serialization for FileHeaderData 2015-11-09 18:35:07 +01:00
Matthias Beyer 9167fde4fb Add dependency: serde 2015-11-09 18:35:07 +01:00
Matthias Beyer e8e82f6844 Make functions public 2015-11-09 18:35:07 +01:00
Matthias Beyer fd35a00381 Implement JSON to FileHeaderData parser 2015-11-09 18:35:07 +01:00
Matthias Beyer b211862602 Add json deserializer 2015-11-09 18:35:02 +01:00
Matthias Beyer aa94852e84 Add unimplemented macro in match_header_spec() 2015-11-07 23:40:03 +01:00
Matthias Beyer d260ef20e3 Minify Parser.write() 2015-11-07 23:39:53 +01:00
Matthias Beyer 44994487c6 Minify Parser.read() 2015-11-07 23:39:47 +01:00
Matthias Beyer 2c940d0ca8 Add missing "pub" 2015-11-07 23:39:39 +01:00
Matthias Beyer 850b4579a8 Add type "File" to load a file from disk 2015-11-07 23:39:30 +01:00
Matthias Beyer 111a990b99 Add debugging output in main.rs 2015-11-07 23:38:49 +01:00
Matthias Beyer 1ecb13a8fe Remove early logging, doesnt work 2015-11-07 23:38:40 +01:00
Matthias Beyer b123144202 Fix types
* We can use a str for the key name
* We don't need a box if we have a vec
2015-10-30 18:26:42 +01:00
Matthias Beyer d0af1a493b Make storage modules public 2015-10-30 18:26:42 +01:00
Matthias Beyer 1c2c52fa37 Add "Map" type to FileHeaderSpec and FileHeaderData 2015-10-30 18:09:01 +01:00
Matthias Beyer 9dde3e4f72 Remove path member from MatchError
At this point, this is too complicated to implement for me.
2015-10-30 17:46:25 +01:00
Matthias Beyer 10697feb8a Add error generating
Which required adding of lifetimes
2015-10-30 17:35:21 +01:00
Matthias Beyer caee02c333 Add algorithm to match spec on data 2015-10-30 16:52:02 +01:00
Matthias Beyer f9cc0e41ce Implement Display for FileHeaderSpec 2015-10-30 16:50:02 +01:00
Matthias Beyer 96ca9637d1 Add type MatchError 2015-10-30 16:48:48 +01:00
Matthias Beyer e6fb2f232d FileHeaderSpec, FileHeaderData can derive Debug 2015-10-30 16:47:04 +01:00
Matthias Beyer d54825de6b Move divide_text() into scope of impl Parser 2015-10-30 15:23:29 +01:00
Matthias Beyer b6d52b2616 Implement: Error, Debug, Display for ParserError 2015-10-30 15:22:11 +01:00
Matthias Beyer e426f384f4 Remove old code 2015-10-30 14:48:45 +01:00
Matthias Beyer 589844102d Move parser code out of file.rs 2015-10-30 14:48:45 +01:00
Matthias Beyer 4b8d7b0c4f Add module file 2015-10-30 14:32:22 +01:00
Matthias Beyer 2989cb803d Move module/file to storage/file 2015-10-30 14:31:45 +01:00
Matthias Beyer 52579a3e7c Move: src/storage.rs -> src/storage/mod.rs 2015-10-30 14:31:26 +01:00
Matthias Beyer 50f140edef Implement Parser.write() 2015-10-30 01:05:44 +01:00
Matthias Beyer 11c2fe1260 Implement Abstract Parser which uses Header- and Data-Parser internally 2015-10-30 00:50:35 +01:00
Matthias Beyer 1a4b3f9747 FileDataParser::read() should return Result<> 2015-10-28 21:28:43 +01:00
Matthias Beyer bbefacd0a2 FileHeaderParser::read() should get the string, not a ref to it 2015-10-28 21:28:43 +01:00
Matthias Beyer 380d58a3c0 Move header types/traits outside own module 2015-10-28 21:28:43 +01:00
Matthias Beyer 647d5611c7 Out Traits here must implement the Sized trait 2015-10-28 21:28:43 +01:00
Matthias Beyer 6fa42204cb FileParser -> FileDataParser
Let the FileParser be a FileDataParser, so we have uncoupled the header
parsers from the data parsers.

This way we can make the parsing process multithreaded.
2015-10-28 21:28:43 +01:00
Matthias Beyer 1166f313a3 Add divide_text() function 2015-10-28 17:43:19 +01:00
Matthias Beyer bdb0792040 Add extern crate regex 2015-10-28 17:39:53 +01:00
Matthias Beyer 6ec4a701d3 Implement ParserError 2015-10-28 17:39:51 +01:00
Matthias Beyer ec1df06b24 Add file header types
for specifying header structure and parsing it from "raw" text.
2015-10-28 17:03:52 +01:00
Matthias Beyer b98dea3946 Rename "Config" to "CliConfig" 2015-10-27 00:02:42 +01:00
Matthias Beyer 904d3fa8c0 Pass configuration from cfg file to Runtime as well 2015-10-27 00:01:11 +01:00
Matthias Beyer 497cdde581 Logger should respect configuration 2015-10-26 23:59:24 +01:00
Matthias Beyer 754ad0c6cb Add store path configuration 2015-10-26 23:56:54 +01:00
Matthias Beyer 099d63f13a Implement simple configuration module 2015-10-26 23:52:01 +01:00
Matthias Beyer 32e585e7eb Add configuration module 2015-10-26 22:30:15 +01:00
Matthias Beyer 04567f594d Fix: Runtime.is_{verbose,debugging} 2015-10-26 21:27:04 +01:00
Matthias Beyer 7f224e8f58 Replace all output with macros from logging library 2015-10-26 20:58:52 +01:00
Matthias Beyer 127c99f16f Remove old logging functions 2015-10-26 20:53:49 +01:00
Matthias Beyer c41ec1d85c Add logger with logging library 2015-10-26 20:53:12 +01:00
Matthias Beyer f7421cf252 Runtime print helpers should get a &'static str 2015-10-25 20:10:49 +01:00
Matthias Beyer c39d43fbd3 Runtime publishes config 2015-10-25 20:10:49 +01:00
Matthias Beyer 9fb50dac68 Fix type for ModuleError::mk() 2015-10-25 19:54:54 +01:00
Matthias Beyer 3556e5adc6 Refactor complete CLI code 2015-10-25 19:52:31 +01:00
Matthias Beyer e19f7117e6 Add ApplicationError type 2015-10-25 18:43:47 +01:00
Matthias Beyer 4d83b7c63f Implement Module for TodoModule 2015-10-25 18:43:47 +01:00
Matthias Beyer 911384331b Add ModuleError 2015-10-25 18:43:47 +01:00
Matthias Beyer 7036f93936 Fixup TodoModule::new() 2015-10-25 18:43:47 +01:00
Matthias Beyer c50d097831 Cleanup module confusion 2015-10-25 18:43:47 +01:00
Matthias Beyer 63daf452dc Add todo module 2015-10-25 18:43:47 +01:00
Matthias Beyer 02029b9b26 Export cli::Config here 2015-10-25 18:43:47 +01:00
Matthias Beyer 034d71b21d Rewrite 2015-10-25 18:43:46 +01:00
Matthias Beyer 1cea0e48e0 cleanup 2015-10-25 18:43:46 +01:00
Matthias Beyer bff720018c Module trait cleanups 2015-10-25 18:43:46 +01:00
Matthias Beyer 1d98cf7634 Fix: Module functions should get &self, not self 2015-10-19 17:38:39 +02:00
Matthias Beyer 170d57cbdf Add Module::shutdown() in trait 2015-10-19 17:36:24 +02:00
Matthias Beyer 19ab3d425f Remove error foo from module 2015-10-19 17:36:24 +02:00
Matthias Beyer 18ebf8ad83 Remove error foo from storage 2015-10-19 17:36:24 +02:00
Matthias Beyer 3df9343412 Revert "Add error module for error handling"
This reverts commit e9b122f612.
2015-10-19 17:31:13 +02:00
Matthias Beyer f1a67dba10 Revert "Add: impl ImagError for ModuleError"
This reverts commit 7b1f9cfbac.
2015-10-19 17:31:07 +02:00
Matthias Beyer b3508f5dc3 Add trait Storage 2015-10-18 21:59:23 +02:00
Matthias Beyer 7b1f9cfbac Add: impl ImagError for ModuleError 2015-10-18 21:49:31 +02:00
Matthias Beyer e9b122f612 Add error module for error handling 2015-10-18 21:42:44 +02:00
Matthias Beyer e3ca30d4b1 Add module trait 2015-10-18 21:15:17 +02:00
Matthias Beyer 98c782212c We should use references here 2015-10-18 21:15:05 +02:00
Matthias Beyer bd6df27aec Add runtime module 2015-10-18 20:52:52 +02:00
Matthias Beyer 8d4a1fa45e cli: export data and add helper functions for accessing data 2015-10-18 20:52:35 +02:00
Matthias Beyer 8fc4a4653b Minify function 2015-10-18 20:36:58 +02:00
Matthias Beyer 186a4e8b73 Initial import 2015-10-18 20:22:23 +02:00