//!use crate::Time;use bstr::BStr;mod decode;/// A signature is created by an actor at a certain time.////// Note that this is not a cryptographical signature.#[derive(PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone)]#[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))]pub struct Signature<'a> { /// The actor's name. #[cfg_attr(feature = "serde1", serde(borrow))] pub name: &'a BStr, /// The actor's email. pub email: &'a BStr, /// The time stamp at which the signature was performed. pub time: Time,}impl<'a> Signature<'a> { /// Deserialize a signature from the given `data`. pub fn from_bytes(data: &'a [u8]) -> Result<Signature<'a>, signature::decode::Error> { decode::signature(data) .map(|(_, t)| t) .map_err(signature::decode::Error::from) }}///pub mod signature;
//!
use crate::Time;
use bstr::BStr;
mod decode;
/// A signature is created by an actor at a certain time.
///
/// Note that this is not a cryptographical signature.
#[derive(PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone)]
#[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))]
pub struct Signature<'a> {
/// The actor's name.
#[cfg_attr(feature = "serde1", serde(borrow))]
pub name: &'a BStr,
/// The actor's email.
pub email: &'a BStr,
/// The time stamp at which the signature was performed.
pub time: Time,
}
impl<'a> Signature<'a> {
/// Deserialize a signature from the given `data`.
pub fn from_bytes(data: &'a [u8]) -> Result<Signature<'a>, signature::decode::Error> {
decode::signature(data)
.map(|(_, t)| t)
.map_err(signature::decode::Error::from)
}
}
///
pub mod signature;