josekit 0.10.3

JOSE (Javascript Object Signing and Encryption) library for Rust.
Documentation
use crate::Value;

use std::{any::Any, fmt::Debug};

pub trait JoseHeader: Any + Send + Sync + Debug {
    /// Return claim count.
    fn len(&self) -> usize;

    /// Return the value for header claim of a specified key.
    ///
    /// # Arguments
    ///
    /// * `key` - a key name of header claim
    fn claim(&self, key: &str) -> Option<&Value>;

    fn box_clone(&self) -> Box<dyn JoseHeader>;

    fn as_any(&self) -> &dyn Any;

    fn as_any_mut(&mut self) -> &mut dyn Any;

    fn into_any(self: Box<Self>) -> Box<dyn Any>;
}

impl Clone for Box<dyn JoseHeader> {
    fn clone(&self) -> Self {
        self.box_clone()
    }
}