use digest::{array::ArraySize, block_buffer::BlockSizes, typenum};
pub trait Sealed {}
pub trait OutputSize: ArraySize + Sealed {
type BlockSize: BlockSizes;
}
macro_rules! impl_sizes {
($($variant:ident, $block_size:ident;)*) => {
$(
impl Sealed for typenum::$variant {}
impl OutputSize for typenum::$variant {
type BlockSize = typenum::$block_size;
}
)*
};
}
impl_sizes!(
U4, U184;
U8, U176;
U12, U168;
U16, U160;
U20, U152;
U24, U144;
U28, U136;
U32, U128;
U36, U120;
U40, U112;
U44, U104;
U48, U96;
U52, U88;
U56, U80;
U60, U72;
U64, U64;
);