43 lines
1.2 KiB
Rust
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(())
|
|
}
|
|
}
|