use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Clone)]
pub struct Checksum {
pub algorithm: Algorithm,
#[serde(rename = "checksumValue")]
pub value: String,
}
impl Checksum {
pub fn new(algorithm: Algorithm, value: &str) -> Self {
Self {
algorithm,
value: value.to_lowercase(),
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Clone, Copy)]
pub enum Algorithm {
SHA1,
SHA224,
SHA256,
SHA384,
SHA512,
MD2,
MD4,
MD5,
MD6,
#[serde(rename = "SHA3-256")]
SHA3256,
#[serde(rename = "SHA3-384")]
SHA3384,
#[serde(rename = "SHA3-512")]
SHA3512,
#[serde(rename = "BLAKE2b-256")]
BLAKE2B256,
#[serde(rename = "BLAKE2b-384")]
BLAKE2B384,
#[serde(rename = "BLAKE2b-512")]
BLAKE2B512,
BLAKE3,
ADLER32,
}