use std::num::NonZeroU64;
use serde::Deserialize;
#[derive(Debug, PartialEq, Deserialize)]
pub struct CliqueParams {
pub period: Option<u64>,
pub epoch: Option<NonZeroU64>
}
#[derive(Debug, PartialEq, Deserialize)]
pub struct Clique {
pub params: CliqueParams,
}
#[cfg(test)]
mod tests {
use super::{Clique, NonZeroU64};
#[test]
fn clique_deserialization() {
let s = r#"{
"params": {
"period": 5,
"epoch": 30000
}
}"#;
let deserialized: Clique = serde_json::from_str(s).unwrap();
assert_eq!(deserialized.params.period, Some(5u64));
assert_eq!(deserialized.params.epoch, NonZeroU64::new(30000));
}
}