Expand description
This crate provides types for read-only git objects backed by bytes provided in git’s serialization format as well as mutable versions of these. Both types of objects can be encoded.
§Feature Flags
serde1
— Data structures implementserde::Serialize
andserde::Deserialize
.verbose-object-parsing-errors
— When parsing objects by default errors will only be available on the granularity of success or failure, and with the above flag enabled details information about the error location will be collected. Use it in applications which expect broken or invalid objects or for debugging purposes. Incorrectly formatted objects aren’t at all common otherwise.
Re-exports§
pub use bstr;
Modules§
- commit
- data
- Contains a borrowed Object bound to a buffer holding its decompressed data.
- decode
- encode
- Encoding utilities
- kind
- tag
- tree
Structs§
- Blob
- A mutable chunk of any
data
. - BlobRef
- A chunk of any
data
. - Commit
- A mutable git commit, representing an annotated state of a working tree along with a reference to its historical commits.
- Commit
Ref - A git commit parsed using
from_bytes()
. - Commit
RefIter - Like
CommitRef
, but asIterator
to support (up to) entirely allocation free parsing. It’s particularly useful to traverse the commit graph without ever allocating arrays for parents. - Data
- A borrowed object using a slice as backing buffer, or in other words a bytes buffer that knows the kind of object it represents.
- Tag
- A mutable git tag.
- TagRef
- Represents a git tag, commonly indicating a software release.
- TagRef
Iter - Like
TagRef
, but asIterator
to support entirely allocation free parsing. It’s particularly useful to dereference only the target chain. - Tree
- A mutable Tree, containing other trees, blobs or commits.
- TreeRef
- A directory snapshot containing files (blobs), directories (trees) and submodules (commits).
- Tree
RefIter - A directory snapshot containing files (blobs), directories (trees) and submodules (commits), lazily evaluated.
Enums§
- Kind
- The four types of objects that git differentiates. #[derive(PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)]
- Object
- Mutable objects with each field being separately allocated and changeable.
- Object
Ref - Immutable objects are read-only structures referencing most data from a byte slice.
Traits§
- WriteTo
- Writing of objects to a
Write
implementation