1#![cfg_attr(
6 all(doc, feature = "document-features"),
7 doc = ::document_features::document_features!()
8)]
9#![cfg_attr(all(doc, feature = "document-features"), feature(doc_cfg, doc_auto_cfg))]
10#![deny(missing_docs, rust_2018_idioms, unsafe_code)]
11
12#[path = "oid.rs"]
13mod borrowed;
14pub use borrowed::{oid, Error};
15
16mod object_id;
17pub use object_id::{decode, ObjectId};
18
19pub mod prefix;
21
22#[derive(PartialEq, Eq, Hash, Ord, PartialOrd, Clone, Copy, Debug)]
27#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
28pub struct Prefix {
29 bytes: ObjectId,
30 hex_len: usize,
31}
32
33const SIZE_OF_SHA1_DIGEST: usize = 20;
35
36#[derive(Default, PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)]
38#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
39pub enum Kind {
40 #[default]
42 Sha1 = 1,
43}
44
45mod kind;