Skip to main content

edc_web_components/models/
policy_definition.rs

1use crate::models::PolicyKind;
2use edc_connector_client::types::policy::PolicyDefinition;
3
4#[derive(Clone, Debug, PartialEq)]
5pub struct PolicyDefinitionItem {
6  pub id: String,
7  pub name: String,
8  pub kind: String,
9  pub assignee: Option<String>,
10  pub assigner: Option<String>,
11}
12
13impl From<PolicyDefinition> for PolicyDefinitionItem {
14  fn from(policy_definition: PolicyDefinition) -> Self {
15    PolicyDefinitionItem {
16      id: policy_definition.id().to_string(),
17      name: policy_definition
18        .private_property("name")
19        .map(|name| name.unwrap_or_default())
20        .unwrap_or_default(),
21      kind: PolicyKind::from(policy_definition.policy().kind()).to_string(),
22      assignee: policy_definition
23        .policy()
24        .assignee()
25        .map(|assignee| assignee.to_string()),
26      assigner: policy_definition
27        .policy()
28        .assigner()
29        .map(|assigner| assigner.to_string()),
30    }
31  }
32}