summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2017-09-23 17:50:23 +0200
committerMatthias Beyer <mail@beyermatthias.de>2017-10-31 19:09:43 +0100
commiteaa9ad5993b50fc28e6c79639c47d301a0610b65 (patch)
treeae11f1345d1a6a239c5df7fbd7123b6db6936e10 /doc
parent434505f1f086da7ed72b808d25da0bf894f58477 (diff)
Add basic documentation on how the lib works
Diffstat (limited to 'doc')
-rw-r--r--doc/src/05100-lib-contacts.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/doc/src/05100-lib-contacts.md b/doc/src/05100-lib-contacts.md
index 4bdd5371..25e69069 100644
--- a/doc/src/05100-lib-contacts.md
+++ b/doc/src/05100-lib-contacts.md
@@ -1,2 +1,49 @@
## libimagcontacts
+The contact library basically only creates references to the actual icalendar
+and vcard files, though it also can parse (via the `vobject` crate) the
+information and return it from an entry directly.
+
+The architecture of indirections is as follows:
+
+```{.numberLines}
+
++--------------------------------+
+| |
+| Store, as ContactStore |
+| |
++----------------+---------------+
+ |
+ | Provides access to
+ |
++----------------v---------------+
+| |
+| (FileLock)Entry as Contact |
+| |
+| which is actually a: |
+| |
+| (FileLock)Entry as Ref |
+| |
++----------------+---------------+
+ |
+ | refers to
+ |
++----------------v---------------+
+| |
+| vcard file (outside store) |
+| |
++----------------+---------------+
+ |
+ | contains
+ |
++----------------v---------------+
+| |
+| vcard data |
+| |
++--------------------------------+
+
+```
+
+As the library is build upon `libimagentryref`, it does not create a new
+subcollection in the store `/contacts`, but uses the infrastructure of
+`libimagentryref` which automatically puts all references in `/ref`.