libgitdit 0.5.0

A library for distributed issue tracking in git
Documentation
# Libgitdit library internals

The purpose of the library is providing an interface for managing git-dit
issues, associated messages and metadata.
Naturally, this is done via types representing different aspects which are
grouped in modules.


## Significant modules

 * `repository` provides the `RepositoryExt` extension trait, which is the main
   facade through which users may create, find and access issues.

 * `issue` provides the `Issue` type which represents an issue and provides
   interfaces for creating and accessing the issue's messages.

 * `message` provides the `Message` trait as well as line- and block-oriented
   iterators for processing a single git-dit message.

 * `trailer` provides the `Trailer` type for representing trailers as well as
   interfaces for specifying, accumulating and matching trailers.

 * `gc` provides utilities which may be used for garbage collection in git-dit
   environment.

 * `iter` provides various iterators for stream-processing, most notably the
   `Messages` iterator.

 * `error` provides all error types for the library.

 * `utils` provides strictly library internal utilities, which will never be
   exported.

 * `test_utils` provides library internal testing utilities.


## Dependencies

We impose a number of restrictions on inter-module dependencies.

 * `utils`, `test_utils` and `error` shall not depend on any other module of the
   library.

 * Generally, sub-modules shall not depend on siblings of its super-module.
   For example, `trailers::accumulation` shall not depend on `repository`.
   The aforementioned `utils`, `test_utils` `error` modules are excepted from
   this rule. Any module or submodule may depend on them.

 * However, the `message` module and associated sub-modules may depend on
   `trailer` and its submodules.