#![cfg_attr(docsrs, feature(doc_cfg))]
#![allow(clippy::derive_partial_eq_without_eq)]
#![warn(
missing_docs,
rustdoc::missing_crate_level_docs,
missing_debug_implementations,
rust_2018_idioms,
unreachable_pub
)]
use std::fmt;
pub mod sign;
mod date_time;
#[cfg(feature = "sign-eventstream")]
pub mod event_stream;
#[cfg(feature = "sign-http")]
pub mod http_request;
#[derive(Debug, Eq, PartialEq, Copy, Clone)]
#[non_exhaustive]
pub enum SignatureVersion {
V4,
V4a,
}
impl fmt::Display for SignatureVersion {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
SignatureVersion::V4 => write!(f, "SigV4"),
SignatureVersion::V4a => write!(f, "SigV4a"),
}
}
}
#[derive(Debug)]
pub struct SigningOutput<T> {
output: T,
signature: String,
}
impl<T> SigningOutput<T> {
pub fn new(output: T, signature: String) -> Self {
Self { output, signature }
}
pub fn output(&self) -> &T {
&self.output
}
pub fn signature(&self) -> &str {
&self.signature
}
pub fn into_parts(self) -> (T, String) {
(self.output, self.signature)
}
}