mailf0rm/src/body.rs

43 lines
1.2 KiB
Rust

// crate imports
// use super::message::Message;
// external imports
use serde::{Serialize, Deserialize};
use chrono::{DateTime, Utc};
use schemars::JsonSchema;
#[derive(Serialize, Deserialize, JsonSchema, Clone, Debug)]
pub struct Body {
timestamp: DateTime<Utc>,
content: String, // Consider making a buffer instead
// #[serde(serialize_with = "Body::digest", deserialize_with = "Body::verify")]
digest: String, // TODO: hmac-sha512
}
impl Body {
pub fn new() -> Self {
Self {
timestamp: chrono::offset::Utc::now(),
content: String::new(),
digest: String::new(),
}
}
pub fn timestamp(&self) -> &DateTime<Utc> {
&self.timestamp
}
pub fn reset_timestamp(&mut self) {
self.timestamp = chrono::offset::Utc::now()
}
pub fn content(&self) -> &str {
&self.content
}
pub fn set_content(&mut self, content: &str) {
self.content = content.to_string();
}
pub fn digest(&self) -> String {
String::new() // TODO: hmac-sha512
}
pub fn verify(&self, digest: &str) -> std::result::Result<(), std::io::Error> {
Ok(())
}
}