John Sirois
8ef7b4e0c6
Cleanup HookError
tracing logic.
...
Use `Result::or_else` instead of matching and no-oping the `Ok` case
manually and extract a helper to centralize repeated trace logic.
2016-07-14 20:37:16 -06:00
John Sirois
7f57e5e234
Move from a helper function to a typeclass.
...
This introduces the `FoldResut` trait to move from `func(receiver, ...)`
style to `receiver.func(...)` style. Also add a means to pass the
default result explicitly.
2016-07-14 07:28:54 -06:00
John Sirois
2c40b8734e
Add a fold_ok
utility.
...
Add a utility that folds an iterator into a result and uses it to reduce
boilerplate in the codebase.
2016-07-13 12:43:04 -06:00
9337a14cdd
Update all version strings: 0.1.0 -> 0.2.0
2016-07-12 11:51:20 +02:00
c6f9d91599
Merge pull request #513 from matthiasbeyer/libimagstore/hooks/optionally-deny-mutable-hooks
...
Libimagstore/hooks/optionally deny mutable hooks
2016-07-07 21:52:08 +02:00
7818b523b9
Deny mutable access for hooks if the config says so
2016-07-07 20:29:24 +02:00
eb31da70d1
Remove import: trace_error() function
2016-07-07 17:03:20 +02:00
7f14639c1e
Add configuration parsing/getter for denying of mutable hooks
2016-07-06 19:10:17 +02:00
b4b719b753
Add error kind for denied hooks
2016-07-06 19:09:58 +02:00
d18766b4b4
Remove checking for aborting errors
...
As the Aspect execution catches the aborting hooks and returns them, we
cannot have a non-aborting error here, so there is no point in checking
for aborting errors.
2016-07-06 18:01:00 +02:00
580ea28877
Fix Display impl for StoreId by using lossy string rep if PathBuf::to_str() fails
2016-07-05 13:47:58 +02:00
d7f22020e6
Merge pull request #489 from matthiasbeyer/libimagstore/storify-id
...
Libimagstore/storify
2016-07-04 19:26:42 +02:00
9605d6daa6
Ensure that StoreId::storified() does not alter already storified StoreId objects
2016-07-04 12:49:12 +02:00
a706680fd5
Revert "Store::create() Make outgoing storeid object unstorified"
...
This reverts commit 41d7d1c213
.
2016-07-04 12:46:06 +02:00
31d5dac63d
Revert "Add StoreId::unstorified()"
...
This reverts commit 37380c84b9
.
We do not want such a feature in the store, actually.
StoreId objects are either storified or not, but you cannot unstorify
them.
2016-07-04 12:45:17 +02:00
41d7d1c213
Store::create() Make outgoing storeid object unstorified
2016-07-04 12:44:58 +02:00
9f213ddc31
Add error kind for storeid handling errors
2016-07-04 12:44:58 +02:00
37380c84b9
Add StoreId::unstorified()
2016-07-04 12:44:58 +02:00
12b8f8f331
Move storification of StoreId object to new StoreId::storified() func
2016-07-02 17:52:12 +02:00
ea4487a481
Impl Display for StoreId
2016-06-30 11:02:58 +02:00
45a24de853
store.rs: Replace error boxing and wrapping with result helper from libimagerror
2016-06-27 18:16:43 +02:00
484520842a
lazyfile.rs: Replace error boxing and creation by call to new helper function
2016-06-27 18:00:12 +02:00
0a05b9825c
call helper generator macros in error module
2016-06-27 17:59:46 +02:00
55e6c29275
Add another level of error enclosure
2016-06-08 15:11:53 +02:00
e75b524e53
Add error kinds for Move functions
2016-06-08 15:11:53 +02:00
84a0778a5b
Refactor: Use helper function for equal codelines
2016-06-08 15:08:06 +02:00
3c40df1ae7
Add Store::save_to() to create a copy of an entry
2016-06-08 15:08:06 +02:00
2ce84a3dbf
Add {Pre, Post}Move hooks
2016-06-08 15:08:00 +02:00
12cac663d0
Implement save_as()
2016-06-08 14:03:17 +02:00
f885e6c80b
Implement move_by_id()
2016-06-08 14:03:17 +02:00
5b16771f4f
Add (unimplemented) functions for moving store entries
2016-06-08 14:02:52 +02:00
88e89d7927
Merge pull request #456 from matthiasbeyer/libimagstore/errors-to-identify-store-api-call
...
Add a set of error kinds to identify the store call the error came from
2016-06-06 18:28:48 +02:00
ea5319812d
Merge pull request #439 from matthiasbeyer/libimagstore/fle-and-entry-have-storeid
...
Remove duplicated StoreId member in FileLockEntry, use member from Entry
2016-05-29 02:15:26 +02:00
9d37ffef91
Merge pull request #454 from matthiasbeyer/libimagstore/hook-exec-error-fix
...
Libimagstore/hook exec error fix
2016-05-29 01:31:17 +02:00
55e5255293
Remove duplicated StoreId member in FileLockEntry, use member from Entry
2016-05-29 00:01:05 +02:00
ce12a22ef5
Merge pull request #440 from matthiasbeyer/libimagstore/load-unload-hooks
...
Libimagstore/load unload hooks
2016-05-28 23:59:32 +02:00
64e28f3c31
Fix C/P fail
...
The store executed the wrong hooks here, because of a C/P failure.
This fixes this bug.
2016-05-28 23:47:26 +02:00
812379c46d
Hook data accessors should implement Debug
2016-05-28 23:47:13 +02:00
d85f747066
Add a set of error kinds to identify the store call the error came from
2016-05-28 23:30:50 +02:00
a42b6a10db
Add error tracing support in Aspect implementation
...
This removes the parallelization feature from the Aspect codebase as
std::error::Error does not implement Send, so we cannot send the error
from a child thread to a parent thread.
This is clearly not an optimal implementation now, but we have hook
non-aborting-error tracing support, which is more important than
parallelization support, at least in this early stage of development.
An issue has to be opened for re-implementing parallelization of hooks.
2016-05-28 21:08:55 +02:00
6c7d6c29ea
Rewrite pre-hook execution
2016-05-28 21:08:55 +02:00
eb80714402
HookError: Add optional non-aborting mode
2016-05-28 21:08:07 +02:00
42289a085e
Fix glob() pattern
2016-05-28 17:28:38 +02:00
a6200b67c0
Merge pull request #446 from matthiasbeyer/libimagstore/fix-get
...
Fix Store::get()
2016-05-28 10:35:42 +02:00
19aec6327f
Fix Store::get()
2016-05-27 23:58:37 +02:00
3d9d5795e4
Rewrite hook error module with error macros
2016-05-27 10:15:29 +02:00
cb87b4b5d8
Remove old error code which is unused
2016-05-27 10:13:03 +02:00
183c46a7dd
Use Into implementations to convert error kinds into error types
2016-05-27 10:11:51 +02:00
e91eb2f55d
Use error.into() instead of building full type
2016-05-26 22:19:29 +02:00
5e98bd76b1
Shorten type names in import
2016-05-26 22:19:08 +02:00
25c4bea818
Shorten type names in import
2016-05-26 22:17:08 +02:00
fdb5d1bb24
Replace old error construction code with new libimagerror functionality
2016-05-26 22:16:29 +02:00
2ad5cb48aa
Implement store-unload hooks
2016-05-26 21:04:04 +02:00
f19c057258
Merge pull request #432 from matthiasbeyer/libimagerror/simple-into
...
libimagerror: Impl Into<error name> for all <errorkindname>
2016-05-24 15:23:08 +02:00
41b5d6d230
Merge pull request #400 from matthiasbeyer/libimagutil/match-helper
...
Libimagutil/match helper
2016-05-24 14:41:43 +02:00
b1f43e3ef5
Impl Into<error name> for all <errorkindname>
2016-05-24 14:31:44 +02:00
b6f5b71df1
libimagstore: Refactor code with is_match!() macro
2016-05-23 21:43:20 +02:00
f0b665e5f2
libimagstore: Add dependency: libimagutil
2016-05-23 21:43:10 +02:00
80b9cae5fe
Merge pull request #391 from matthiasbeyer/libimagstore/get
...
Libimagstore/get
2016-05-23 20:01:38 +02:00
e45d9200bf
Adapt error generating code in libimagstore
2016-05-23 17:06:07 +02:00
dd7e146081
impl Into<StoreIdIterator> for GlobStoreIdIterator to be able to convert easily
2016-05-23 14:52:32 +02:00
839ec051a4
Add Store::get_all_versions() for getting all versions of a StoreId entry
2016-05-23 14:52:13 +02:00
df33dec0c3
Add new error kind: StorePathError
2016-05-23 14:51:39 +02:00
b4f17576f6
Add Store::get() for getting or failing if entry does not exist
2016-05-23 14:51:38 +02:00
bf14b9ae4e
Update dependency: fs2 0.2.2 -> 0.2.*
2016-05-23 13:37:26 +02:00
cc8642f54f
libimagstore: Replace error module imports with macro helper
2016-05-19 18:22:03 +02:00
42f7e086a3
Replace error code with macro for code generation
2016-05-17 00:26:35 +02:00
627fa7de46
Replace error code with macro for code generation
2016-05-17 00:26:35 +02:00
a69fd78058
Add dependency: libimagerror
2016-05-17 00:26:35 +02:00
a56f000e3e
Remove unneeded scope
2016-05-15 14:02:30 +02:00
a26a0645bd
Remove iflet by mapping
2016-05-15 14:01:55 +02:00
944a9bf876
Remove unwrap() calls by matching
2016-05-15 14:01:55 +02:00
0b7f815104
Remove unwrap() calls by matching
2016-05-15 14:01:55 +02:00
81810dbcc8
Remove unwrap() calls by matching
2016-05-15 14:01:55 +02:00
604e59ae3c
Remove unwrap() calls by matching
2016-05-15 14:01:55 +02:00
2a6e4c62fe
Remove unwrap() by matching, remove unneeded deref()
2016-05-15 14:01:55 +02:00
8d9bd5154d
Remove unwrap() by matching, remove unneeded deref()
2016-05-15 14:01:55 +02:00
a481200c9a
Replace unwrap() by matching
2016-05-15 14:01:55 +02:00
1e1cbec98b
Replace unwrap() by matching
2016-05-15 14:01:55 +02:00
70b3d3906e
Replace unwrap() by matching
2016-05-15 14:01:55 +02:00
1f66f67791
Replaced unwrap() by matching
2016-05-15 14:01:55 +02:00
7b612ce8fb
Remove iflet by mapping over Option/Result types
2016-05-15 14:01:55 +02:00
f9f5fa5717
Shorten code by using StoreError as SE and StoreErrorKind as SEK
2016-05-15 14:01:55 +02:00
a852da54dd
Remove iflet by using Option::{map_err, and}()
2016-05-15 14:00:40 +02:00
3fb6d507e5
Remove unwrap() by matching
2016-05-15 14:00:40 +02:00
ac8bcde239
Remove unwrap() hell by matching
2016-05-15 14:00:40 +02:00
Andre Bogus
cd224eaeff
roll back closure, remove unneeded slice & imports
2016-05-14 20:12:19 +02:00
Andre Bogus
981707c9c9
more style adaptations
...
again following clippy
2016-05-13 22:27:53 +02:00
b9d8e5728b
Move GlobStoreIdIterator implementation so we can have it non-public
2016-05-12 17:27:41 +02:00
a510e1b6b6
Add error printing (debug) in GlobStoreIdIterator helper type
2016-05-12 17:24:27 +02:00
5972ce7f37
Make StoreIdIterator generic
...
This patch makes the StoreIdIterator type generic over all iterators
with Item = StoreId.
As the StoreIdIterator type was previousely used for iterating over a
glob() result, I had to wrap this result type in another iterator type
which is then wrapped in StoreIdIterator.
With this patch applied, other libraries may use the StoreIdIterator
type to abstract things away in their implementation.
2016-05-12 17:21:04 +02:00
9f528fb929
Merge pull request #390 from matthiasbeyer/update-log
...
Update log
2016-05-11 12:35:27 +02:00
62f6478476
Update log: 0.3.* -> 0.3
2016-05-10 17:54:47 +02:00
87c55d5906
Remove old check from config validation
...
These keys are not used, actually.
2016-05-09 17:11:59 +02:00
285832f45f
Merge pull request #349 from matthiasbeyer/libimagstore/walk
...
Libimagstore/walk
2016-05-09 15:53:17 +02:00
c32065c2d6
Implement Store::walk()
2016-05-07 13:17:23 +02:00
3842e177d7
Make Entry::{from_file,from_str} generic over IntoStoreId
2016-05-04 13:30:19 +02:00
5d6c226953
Make some store functions generic over IntoStoreId
2016-05-04 13:30:19 +02:00
24ddf5d53b
Impl IntoStoreId for StoreId
2016-05-04 13:30:19 +02:00
7e17e213be
Fixup ModuleEntryPath macro type
2016-05-04 13:30:19 +02:00