mithril_common/messages/
cardano_database_digest_list.rs1use serde::{Deserialize, Serialize};
2
3use crate::entities::{HexEncodedDigest, ImmutableFileName};
4
5pub type CardanoDatabaseDigestListMessage = Vec<CardanoDatabaseDigestListItemMessage>;
7
8#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
10pub struct CardanoDatabaseDigestListItemMessage {
11 pub immutable_file_name: ImmutableFileName,
13
14 pub digest: HexEncodedDigest,
16}
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21
22 const CURRENT_JSON: &str = r#"
23 [
24 {
25 "immutable_file_name": "06685.chunk",
26 "digest": "0af556ab2620dd9363bf76963a231abe8948a500ea6be31b131d87907ab09b1e"
27 }
28 ]"#;
29
30 fn golden_current_message() -> CardanoDatabaseDigestListMessage {
31 vec![CardanoDatabaseDigestListItemMessage {
32 immutable_file_name: "06685.chunk".to_string(),
33 digest: "0af556ab2620dd9363bf76963a231abe8948a500ea6be31b131d87907ab09b1e".to_string(),
34 }]
35 }
36
37 #[test]
38 fn test_current_json_deserialized_into_current_message() {
39 let json = CURRENT_JSON;
40 let message: CardanoDatabaseDigestListMessage = serde_json::from_str(json).expect(
41 "This JSON is expected to be successfully parsed into a CardanoDatabaseDigestListMessage instance.",
42 );
43
44 assert_eq!(golden_current_message(), message);
45 }
46}