sdk_common/src/models/pcd_item_enc.rs

64 lines
2.0 KiB
Rust

use std::hash::Hash;
use serde::{Deserialize, Serialize};
use super::{
pcd_item_enc_attribute_private::PcdItemEncAttributePrivate,
pcd_item_enc_attribute_public::PcdItemEncAttributePublic,
pcd_item_enc_attribute_role_confidential::PcdItemEncAttributeRoleConfidential,
};
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PcdItemEnc {
pub version: i64,
pub item_type: String,
pub name: String,
pub pagination_number_per_pcd: u32,
pub pcd_item_enc_attribute_public_list: Vec<PcdItemEncAttributePublic>,
pub pcd_item_enc_attribute_role_confidential_list: Vec<PcdItemEncAttributeRoleConfidential>,
pub pcd_item_enc_attribute_private_list: Vec<PcdItemEncAttributePrivate>,
}
impl PcdItemEnc {
pub fn new(
version: i64,
item_type: String,
name: String,
pagination_number_per_pcd: u32,
pcd_item_enc_attribute_public_list: Vec<PcdItemEncAttributePublic>,
pcd_item_enc_attribute_role_confidential_list: Vec<PcdItemEncAttributeRoleConfidential>,
pcd_item_enc_attribute_private_list: Vec<PcdItemEncAttributePrivate>,
) -> Self {
PcdItemEnc {
version,
item_type,
name,
pagination_number_per_pcd,
pcd_item_enc_attribute_public_list,
pcd_item_enc_attribute_role_confidential_list,
pcd_item_enc_attribute_private_list,
}
}
pub fn display_info(&self) {
println!("PcdItemEnc:");
println!("Public Attributes:");
for attr in &self.pcd_item_enc_attribute_public_list {
attr.display_info();
}
println!("Role Confidential Attributes:");
for attr in &self.pcd_item_enc_attribute_role_confidential_list {
attr.display_info();
}
println!("Private Attributes:");
for attr in &self.pcd_item_enc_attribute_private_list {
attr.display_info();
}
}
// Additional methods for PcdItemEnc can be added here
}