1#![cfg_attr(
5 all(doc, feature = "document-features"),
6 doc = ::document_features::document_features!()
7)]
8#![cfg_attr(all(doc, feature = "document-features"), feature(doc_cfg, doc_auto_cfg))]
9#![deny(missing_docs, rust_2018_idioms)]
10#![forbid(unsafe_code)]
11
12pub use bstr;
16use bstr::{BStr, BString};
17pub use gix_date as date;
21use gix_date::Time;
22
23mod identity;
24pub mod signature;
26
27#[derive(Default, PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone)]
29#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
30pub struct Identity {
31 pub name: BString,
33 pub email: BString,
35}
36
37#[derive(Default, PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)]
39#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
40pub struct IdentityRef<'a> {
41 #[cfg_attr(feature = "serde", serde(borrow))]
43 pub name: &'a BStr,
44 pub email: &'a BStr,
46}
47
48#[derive(Default, PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone)]
52#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
53pub struct Signature {
54 pub name: BString,
56 pub email: BString,
58 pub time: Time,
60}
61
62#[derive(Default, PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)]
66#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
67pub struct SignatureRef<'a> {
68 #[cfg_attr(feature = "serde", serde(borrow))]
70 pub name: &'a BStr,
71 pub email: &'a BStr,
73 pub time: gix_date::Time,
75}