This crate has a few primary offerings and various accessory functions. The table below gives a brief explanation of all offerings, loosely in order from the highest to lowest abstraction.
|Accelerated wrapper for reading and writing values.||On some reads1|
|Syntactic event emitter for ||Yes|
|Wrappers for ||Yes|
This crate also exposes efficient value normalization which unescapes
characters and removes quotes through the
normalize_* family of functions,
located in the
nom’s definition of “zero-copy”:
If a parser returns a subset of its input data, it will return a slice of that input, without copying.
Due to the syntax of
git-config, we must allocate at the parsing level
(and thus higher level abstractions must allocate as well) in order to
provide a meaningful event stream. That being said, all operations with the
parser is still zero-copy. Higher level abstractions may have operations
that are zero-copy, but are not guaranteed to do so.
However, we intend to be performant as possible, so allocations are limited restricted and we attempt to avoid copying whenever possible.
When read values do not need normalization. ↩
This module provides a high level wrapper around a single
This module handles parsing a
git-config file. Generally speaking, you
want to use a higher abstraction such as
GitConfig unless you have some
explicit reason to work with events instead.
The future home of the
values module (TODO).
Rust containers for valid
Configure security relevant options when loading a git configuration.