64 lines
2.0 KiB
Rust
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
|
|
}
|