dat 4.3.1

DAT - Distributed Access Token
Documentation
use crate::error::DatError;
use crate::util::{encode_base64_url};
use std::fmt::Display;

pub struct DatPayload {
    pub(crate) plain: Vec<u8>,
    pub(crate) secure: Vec<u8>,
}

impl DatPayload {
    #[inline]
    pub fn plain(&self) -> &[u8] {
        &self.plain
    }

    #[inline]
    pub fn plain_text(&self) -> Result<&str, DatError> {
        Ok(str::from_utf8(&self.plain)?)
    }

    #[inline]
    pub fn secure(&self) -> &[u8] {
        &self.secure
    }

    #[inline]
    pub fn secure_text(&self) -> Result<&str, DatError> {
        Ok(str::from_utf8(&self.secure)?)
    }
}

impl Display for DatPayload {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{} {}", encode_base64_url(&*self.plain), encode_base64_url(&*self.secure))
    }
}