use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct NFC {
pub encryption_public_key: String,
pub message: String,
pub requires_authentication: bool,
}
impl Default for NFC {
fn default() -> Self {
Self {
encryption_public_key: String::new(),
message: String::new(),
requires_authentication: false,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn make_nfc() {
let nfc = NFC {
encryption_public_key: String::from("ABCDEFG_0011223344556677889900"),
message: String::from("test message"),
..Default::default()
};
let json = serde_json::to_string_pretty(&nfc).unwrap();
println!("{json}");
let json_expected = r#"{
"encryptionPublicKey": "ABCDEFG_0011223344556677889900",
"message": "test message",
"requiresAuthentication": false
}"#;
assert_eq!(json_expected, json);
let nfc: NFC = serde_json::from_str(json_expected).unwrap();
let json = serde_json::to_string_pretty(&nfc).unwrap();
assert_eq!(json_expected, json);
}
}