Matthias Beyer
1c851bbb79
Rewrite store interface abstraction
...
Because we pull in libimagentryref here to create actual references to
the files we parse here, we need to rewrite the interface to be able to
pass the required information to the libimagentryref API.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-22 14:26:56 +02:00
Matthias Beyer
cb4d5367e4
Rewrite all usages of ModuleEntryPath
...
Because the code was so complex before, we had to create an object and
then cast that object into a `StoreId` rather than just creating a
`StoreId` object right away.
With this patch, we're using the code-generation approach to generate a
function that creates a `StoreId` object based on the name of the
current module. That's way easier and error handling was also improved
by the switch to the new implementation.
The patch also includes a rewrite of all usages of ModuleEntryPath and
changes them to `module_path::new_id()` calls.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-04-13 22:39:39 +02:00
Matthias Beyer
2e7c17d5dc
Fix libimagcontact for new StoreId interface with Entries iterator
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 20:53:29 +01:00
Matthias Beyer
45cb122f53
Add debug output
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-15 19:05:09 +01:00
Matthias Beyer
c29e05bc25
Simplify implementation of ContactStore::all_contacts()
...
This way we alter the underlying iterator for all contacts to only
iterate in the "contact" collection of the store, which results in fewer
disk access because the internal iterator does not yield all pathes from
the store before filtering them.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-02-11 03:22:56 +01:00
Matthias Beyer
9185abcfa5
Update copyright years
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-01-03 18:41:36 +01:00
Matthias Beyer
9fca66aa89
Forbid unsafe code in all crates
2018-11-11 13:05:55 +01:00
Matthias Beyer
4e516ee19d
Update version strings
...
...for the next release, which will be imag 0.10.0!
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-10 11:56:37 +01:00
Matthias Beyer
17d4123898
Update dependencies from git versions to proper versions.
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-11-09 22:14:11 +01:00
Matthias Beyer
2a107477c0
libimagcontact: Move from error-chain to failure
...
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2018-10-30 18:46:28 +01:00
Matthias Beyer
c0f74fcbed
Update dependencies
...
log: 0.3 -> 0.4
uuid: 0.6 -> 0.7
2018-10-06 12:22:15 +02:00
Matthias Beyer
c162856a21
Update dependencies
...
regex: 0.2 -> 1
semver: 0.8 -> 0.9
walkdir: 1 -> 2
2018-10-06 12:21:20 +02:00
Matthias Beyer
f97d9e0d96
Temporarily set vobject to custom fork until we have a new release
2018-09-27 15:05:45 +02:00
Matthias Beyer
946d9891e4
Update dependency: vobject: 0.{4,5} -> 0.6
2018-09-27 15:05:45 +02:00
Matthias Beyer
3d12998603
Update dependency: toml-query: 0.6 -> 0.7
2018-09-27 15:05:44 +02:00
Matthias Beyer
0a7afee454
Update dependency: error-chain: 0.11 -> 0.12
2018-09-27 15:05:25 +02:00
Matthias Beyer
664edc7943
Update version string: 0.8.0 -> 0.9.0
2018-05-09 11:39:33 +02:00
Matthias Beyer
8f03b4a71a
Refactor libimagcontact to fit new store iterator interface
2018-05-01 17:44:00 +02:00
Matthias Beyer
5f3b7b31e7
Add support for storing email properties
...
We have to move the `Email` type at the bottom of the DeserVcard type
because it contains a table and we must emit tables as last values when
de/serializing.
Maybe this will shoot us in the foot later, but only with TOML I guess.
We'll see. For now, this is good.
For that we need to update a dependency: vobject -> 0.5
2018-04-27 16:57:37 +02:00
Matthias Beyer
80c07171aa
Make sure we can deserialize
...
Use default values when field is not there when we deserialize. This
does automatically the right thing.
2018-04-25 13:45:00 +02:00
Matthias Beyer
56c1b78d93
Add getters for DeserVcard helper type
2018-04-25 13:45:00 +02:00
Matthias Beyer
abc142f4b5
Rewrite library
...
libimagcontact stores all contact information in the entry header now.
2018-04-25 12:54:01 +02:00
Matthias Beyer
3eab3af7b0
Remove all libimagentryref usage
2018-04-25 11:30:42 +02:00
Matthias Beyer
d2dceb6640
Update version numbers: 0.7.0 -> 0.8.0
2018-04-19 10:05:53 +02:00
Matthias Beyer
98f8366e4c
Fix documentation in crate metadata
2018-04-17 15:55:08 +02:00
Matthias Beyer
899f3b9eb9
Update dependency: toml-query: 0.4 -> 0.6
2018-04-15 09:15:16 +02:00
Matthias Beyer
e8ae2fb73e
Add type so that we can serialize a Vcard
2018-03-12 17:45:50 +01:00
Matthias Beyer
65d558727e
Change ref creation to use UID from vcard object
2018-03-12 14:43:02 +01:00
Matthias Beyer
252046583a
Merge pull request #1332 from matthiasbeyer/libimagcontact/all-contacts
...
Implement ContactStore::all_contacts()
2018-03-12 14:17:54 +01:00
Matthias Beyer
8a9b2e9a8f
Fix: use Path::file_stem() instead of Path::file_name()
...
Because we don't want to know the extension of the filename here.
2018-03-12 13:30:31 +01:00
Matthias Beyer
3bf1b6ccec
Implement ContactStore::all_contacts()
2018-03-12 12:52:24 +01:00
Matthias Beyer
672873c2f1
Make UniqueContactPathGenerator pub
2018-02-19 12:15:39 +01:00
Matthias Beyer
719daf952b
Refactor libimagcontact for new libimagentryref API
2018-02-19 12:15:39 +01:00
Matthias Beyer
30d2c28a22
Update version string: 0.6.0 -> 0.7.0
2018-02-11 14:22:24 +01:00
Matthias Beyer
3b710e082d
Add missing Cargo.toml metadata
2018-02-10 14:11:46 +01:00
Matthias Beyer
d5a9e4930d
Update dates in license header
...
And add missing header in one file
2018-02-07 02:48:53 +01:00
Matthias Beyer
9a9701fce5
Add flag settings/Contact::is_contact in libimagcontact
2018-01-08 23:46:36 +01:00
Matthias Beyer
3c8dd19d11
Update version strings: 0.5.0 -> 0.6.0
2017-12-25 19:17:07 +01:00
Matthias Beyer
04d5af8d50
Switch to upstream rust-vobject
2017-11-09 11:21:17 +01:00
Matthias Beyer
dfbc69400a
Let ContactData be unpacked and derefd
2017-10-31 19:10:11 +01:00
Matthias Beyer
4fa41faa59
Add iterator for contacts
2017-10-31 19:10:11 +01:00
Matthias Beyer
b05c8c6f6d
Replace search_contact() with all_contacts()
...
We can then use filters to filter out the non relevant ones.
2017-10-31 19:10:11 +01:00
Matthias Beyer
f3d75e97b6
Rely on own clone of rust-vobject
2017-10-31 19:10:10 +01:00
Matthias Beyer
12e8657eb9
Add Contact::is_contact()
2017-10-31 19:09:43 +01:00
Matthias Beyer
f2bd241a59
Add error for header type error
2017-10-31 19:09:43 +01:00
Matthias Beyer
aae19221b6
Impl Contact::get_contact_data()
2017-10-31 19:09:43 +01:00
Matthias Beyer
ce5e7f5252
Impl Store::create_from_path()
2017-10-31 19:09:43 +01:00
Matthias Beyer
c14c19483c
Add lib internal utilities
2017-10-31 19:09:43 +01:00
Matthias Beyer
577f8d313a
Add more error links
2017-10-31 19:09:43 +01:00
Matthias Beyer
04182f5cb6
Add initial layout of code
2017-10-31 19:09:43 +01:00