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.
-
repositoryprovides theRepositoryExtextension trait, which is the main facade through which users may create, find and access issues. -
issueprovides theIssuetype which represents an issue and provides interfaces for creating and accessing the issue's messages. -
messageprovides theMessagetrait as well as line- and block-oriented iterators for processing a single git-dit message. -
trailerprovides theTrailertype for representing trailers as well as interfaces for specifying, accumulating and matching trailers. -
gcprovides utilities which may be used for garbage collection in git-dit environment. -
iterprovides various iterators for stream-processing, most notably theMessagesiterator. -
errorprovides all error types for the library. -
utilsprovides strictly library internal utilities, which will never be exported. -
test_utilsprovides library internal testing utilities.
We impose a number of restrictions on inter-module dependencies.
-
utils,test_utilsanderrorshall not depend on any other module of the library. -
Generally, sub-modules shall not depend on siblings of its super-module. For example,
trailers::accumulationshall not depend onrepository. The aforementionedutils,test_utilserrormodules are excepted from this rule. Any module or submodule may depend on them. -
However, the
messagemodule and associated sub-modules may depend ontrailerand its submodules.