use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct ResourceDetail {
#[serde(skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn resource_detail_roundtrip() {
let r = ResourceDetail {
uid: Some("res-1".to_string()),
name: Some("/etc/shadow".to_string()),
r#type: Some("File".to_string()),
};
let json = serde_json::to_string(&r).unwrap();
let r2: ResourceDetail = serde_json::from_str(&json).unwrap();
assert_eq!(r, r2);
}
}