use std::fmt;
use time::OffsetDateTime;
pub mod account_sas;
pub mod service_sas;
pub trait SasToken {
fn token(&self) -> azure_core::Result<String>;
}
pub(crate) fn format_date(d: OffsetDateTime) -> String {
azure_core::date::to_rfc3339(&d.replace_nanosecond(0).unwrap())
}
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub enum SasProtocol {
Https,
HttpHttps,
}
impl fmt::Display for SasProtocol {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
SasProtocol::Https => write!(f, "https"),
SasProtocol::HttpHttps => write!(f, "http,https"),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
use time::macros::datetime;
#[test]
fn test_format_date_truncation() {
let date = datetime!(2022-08-22 15:11:43.4185122 +00:00:00);
assert_eq!(format_date(date), "2022-08-22T15:11:43Z");
}
}