Commit graph

292 commits

Author SHA1 Message Date
d249f604d8 Implement: config_is_valid() 2016-03-16 16:46:53 +01:00
cd55e7d625 Add Aspect building based on configuration 2016-03-16 16:46:53 +01:00
1fe545eb8b Add configuration.rs 2016-03-16 16:46:53 +01:00
a771db9ea4 Add error kind for config errors 2016-03-16 16:46:53 +01:00
9e8ef57f72 Remove {Pre, Post}HookErrorKind types as they are not needed anymore 2016-03-16 16:46:53 +01:00
987b271cc7 Add access type checking error 2016-03-16 16:46:53 +01:00
5ba260943b Make hook execution parallel for NonMutableHookDataAccessor impl for Aspect 2016-03-16 16:46:53 +01:00
7102a57808 Make hook execution parallel for StoreIdAccessor impl for Aspect 2016-03-16 16:46:53 +01:00
d8760c9737 Impl NonMutableHookDataAccessor::access() for Aspect 2016-03-16 16:46:53 +01:00
c4c02f2274 Impl MutableHookDataAccessor::access_mut() for Aspect 2016-03-16 16:46:53 +01:00
2022f4e4bb Impl StoreIdAccessor::access() for Aspect 2016-03-16 16:46:53 +01:00
2c544382a1 We do not need boxes here 2016-03-16 16:46:53 +01:00
679865464b Reimplement hook registration and execution 2016-03-16 16:46:52 +01:00
d6a581e69f Add HookPosition enum 2016-03-16 16:46:52 +01:00
37a505609e Remove hook traits. There can only be one trait: Hook 2016-03-16 16:46:52 +01:00
be1ba5be4b Add Aspect type for hook system 2016-03-16 16:46:52 +01:00
3e62b71605 Add StoreIdAccessor trait 2016-03-16 16:46:52 +01:00
fa9e8e8192 Split hook/mod.rs into several files 2016-03-16 16:46:52 +01:00
3f15fd0fa8 Move hook.rs -> hook/mod.rs 2016-03-16 16:46:52 +01:00
a9600f23b3 Threaded hook execution 2016-03-16 16:46:52 +01:00
79ba3f5151 Hook calling rewrite 2016-03-16 16:46:52 +01:00
0610f0756a Add dep: crossbeam = 0.2.8 2016-03-16 16:46:52 +01:00
3421e8d4d9 Add HookExecutionError error kind 2016-03-16 16:46:52 +01:00
1c40be78a9 Add HookAccessor types for accessing mutable/nonmutable hook calling in a generic way 2016-03-16 16:46:52 +01:00
e1414beb8d Impl Into<HookError> for error kinds to convert errors in a simple way 2016-03-16 16:46:51 +01:00
57831dceb0 Add HookErrorKind enums for Pre and Post errors 2016-03-16 16:46:51 +01:00
d7733aa13a Make hooks configurable
This introduces the Configurable trait and abstracts the
dependency-traits for each trait over a generic "Hook" trait, which
requires Configurable and Debug to be implemented, but has no own
functions.

Configuring is done _without_ the Runtime object, so we can be sure that
the hooks do not have access to the store object.
2016-03-16 16:46:51 +01:00
d9a4512821 Add debug output for hook exec functions 2016-03-16 16:46:51 +01:00
da3554d98e Add debug output for hook register functions 2016-03-16 16:46:51 +01:00
6af5be15ad Hooks must implement Debug 2016-03-16 16:46:51 +01:00
bb0e7e2468 Implement: execute_post_delete_hooks() 2016-03-16 16:46:51 +01:00
f703e8a4cd Implement: execute_post_update_hooks() 2016-03-16 16:46:51 +01:00
7014256407 Implement: execute_post_retrieve_hooks() 2016-03-16 16:46:51 +01:00
5831d3bc7b Implement: execute_post_create_hooks() 2016-03-16 16:46:51 +01:00
196be30d91 Implement: execute_post_read_hooks() 2016-03-16 16:46:51 +01:00
09acddaef9 Implement: execute_pre_delete_hooks() 2016-03-16 16:46:51 +01:00
5aa663987b Implement: execute_pre_update_hooks() 2016-03-16 16:46:51 +01:00
94128f8bcc Implement: execute_pre_retrieve_hooks() 2016-03-16 16:46:50 +01:00
3244b87c7e Implement: execute_pre_create_hooks() 2016-03-16 16:46:50 +01:00
975a2bc8b9 Implement: execute_pre_read_hooks() 2016-03-16 16:46:50 +01:00
ac280ba616 Insert pre/post hook execution functions 2016-03-16 16:46:50 +01:00
3cf2588104 Add error types for pre/post hooks 2016-03-16 16:39:39 +01:00
17b1d6c390 Redefine hook trait system 2016-03-16 16:39:39 +01:00
001c80b72d Hook: Add traits which must be implemented for Hook 2016-03-16 16:39:39 +01:00
b9127381b8 Add hook registering 2016-03-16 16:39:39 +01:00
d99d25a3e1 Add HookRegisterError kind 2016-03-16 16:39:14 +01:00
e969b8678e Add hook traits 2016-03-16 16:39:14 +01:00
361dec4cec Revert "Check whether the StoreId is inside the store, before doing anything on the FS"
This reverts commit 373502217e.
2016-03-12 16:06:10 +01:00
9a918c9252 Merge pull request #242 from matthiasbeyer/libimagstore/revert-id_in_store-check
Revert "Check whether the StoreId is inside the store, before doing a…
2016-03-11 16:02:11 +01:00
6d7065d10e Fix test: StoreId does not start with "/" anymore 2016-03-10 19:12:00 +01:00
a9a64d4ab6 Fix: implicitely create directories on file saving 2016-03-10 19:06:27 +01:00
a3a09ff4ee Fix store creation of libimagstore
The macro may not prefix the StoreId internal PathBuf with '/', so this
path is not absolute. This way we can introduce `storify_id()` which
creates a proper PathBuf into the store out of our StoreId object.

Does not yet do verification whether the path is inside the store,
actually.
2016-03-10 18:46:26 +01:00
3413646934 Revert "Check whether the StoreId is inside the store, before doing anything on the FS"
This reverts commit 373502217e
as this commit was introducing a bug.

The StoreId type says `/test/example` for a store id path, which is
completely valid, as the root (`/`) is the store itself. The
id_in_store() function assumed that the store-id is the full
(file-system) path to the store entry, which is false.

This commit does not introduce a fix but revert the check.
2016-03-10 18:14:53 +01:00
df1fd31771 libimagstore: Update glob 0.2.10 -> 0.2.11 2016-03-07 17:46:58 +01:00
257fe1880e EntryHeader: Function to get toml object 2016-03-06 11:51:09 +01:00
74634227e0 Use unused result 2016-03-01 21:23:09 +01:00
22e9f8a93b Remove unused import 2016-03-01 21:21:14 +01:00
1a8106dfd2 Add missing error-forwarding 2016-03-01 21:20:53 +01:00
38b9e15615 Remove unreachable statement 2016-03-01 21:19:15 +01:00
08c37c5fcb Remove unused "mut" from EntryHeader::delete() 2016-03-01 21:18:17 +01:00
ed3da38701 Remove unused "mut" from EntryHeader::read_with_sep() 2016-03-01 21:18:10 +01:00
309e70df14 Remove unused "mut" from EntryHeader::set_with_sep() 2016-03-01 21:18:04 +01:00
85e69f083e Remove unused "mut" from EntryHeader::insert_with_sep() 2016-03-01 21:17:49 +01:00
4390c39a6c Remove unused "mut" from Store::delete() 2016-03-01 21:17:40 +01:00
8dfccba0b8 Remove unused "mut" from Store::retrieve_copy() 2016-03-01 21:17:33 +01:00
87bf7854c7 store: Update regex = 0.1.54 2016-02-23 13:13:22 +01:00
df4bc13018 use lazy_static so we do not compile regex multiple times 2016-02-20 21:06:47 +01:00
0cab0f114d Merge pull request #149 from matthiasbeyer/libimagstore/header-field-path-util
Add header field addressing by str
2016-02-14 16:10:56 +01:00
9951422dc4 Impl From<Table> for EntryHeader 2016-02-12 22:07:15 +01:00
794e7617e3 Impl Into<Table> for EntryHeader 2016-02-12 22:02:33 +01:00
df9313c599 Add EntryHeader::insert_with_sep() 2016-02-12 21:57:53 +01:00
54ba22d0ef Add EntryHeader::set_with_sep() 2016-02-12 21:56:48 +01:00
bca0143343 Add EntryHeader::read_with_sep() which allows seperator modification 2016-02-12 21:55:06 +01:00
a4fa1bac07 Add split-char setting 2016-02-12 21:50:44 +01:00
6397068ddc Add test for EntryHeader::delete() 2016-02-12 20:02:57 +01:00
cb87f31a23 Add EntryHeader::delete() 2016-02-12 20:02:56 +01:00
30e8afeced Add tests for inserting values 2016-02-12 20:02:56 +01:00
965c3445a1 Add test for setting value at new path 2016-02-12 20:02:56 +01:00
dd53e467d7 Add EntryHeader::set() test 2016-02-12 20:02:56 +01:00
b4362f5c65 Alter: EntryHeader should contain a Value, not the BTreeMap<> 2016-02-12 20:02:56 +01:00
74a9b844ca Add debugging output in tests 2016-02-12 20:02:41 +01:00
60ccf58f84 Merge pull request #148 from neithernut/impl-store-retrieve_copy
Implement Store::retrieve_copy()
2016-02-12 18:59:56 +01:00
103a0dea17 Add test: EntryHeader::read() 2016-02-11 15:45:48 +01:00
731a446546 Implement EntryHeader::read() 2016-02-11 15:45:47 +01:00
548aee8d5f Implement EntryHeader::set() 2016-02-11 15:45:47 +01:00
4d94f8a67f Implement: EntryHeader::insert() 2016-02-11 15:45:47 +01:00
3b09e0c214 Move helper functions outside of walk_header(), so we can use them 2016-02-11 15:45:47 +01:00
42aade5cef Add tests for path-to-value extractor functionality 2016-02-11 15:43:58 +01:00
4759076249 Implement walk_header() 2016-02-11 15:43:58 +01:00
a2e3598c01 Add more error types for header walking 2016-02-11 15:43:58 +01:00
0727fca797 Add tokenizer helper function 2016-02-11 15:43:58 +01:00
2f6cfb5868 Add interface for header field addressing by str 2016-02-11 15:43:58 +01:00
00ccc22ef5 Add some debugging output for {create,retrieve,delete} 2016-02-09 20:09:12 +01:00
d85f985694 Fixup path-includes-path checker 2016-02-09 20:08:58 +01:00
ddd54e03ad Add store path getter 2016-02-09 13:45:13 +01:00
a0afc9245b Merge pull request #186 from TheNeikos/verify-toml_table
Verify that nothing but tables exist in base table
2016-02-07 01:54:35 +01:00
ebb076c9fd Merge pull request #184 from matthiasbeyer/libimagstore/fix-179
Check whether the StoreId is inside the store
2016-02-07 01:45:48 +01:00
Marcel Müller
e315fa9dcf
Remove unwrap in drop and warn users 2016-02-07 01:28:16 +01:00
Marcel Müller
9ba2439da3
Add debug output 2016-02-07 01:28:15 +01:00
Marcel Müller
6173cff762
Verify that nothing but tables exist in base table 2016-02-07 01:27:50 +01:00