provenant/output_schema/
party.rs1use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize, Debug, Clone)]
7pub struct OutputParty {
8 pub r#type: Option<String>,
9 pub role: Option<String>,
10 pub name: Option<String>,
11 pub email: Option<String>,
12 pub url: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub organization: Option<String>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub organization_url: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub timezone: Option<String>,
19}
20
21impl From<&crate::models::Party> for OutputParty {
22 fn from(value: &crate::models::Party) -> Self {
23 Self {
24 r#type: value.r#type.clone(),
25 role: value.role.clone(),
26 name: value.name.clone(),
27 email: value.email.clone(),
28 url: value.url.clone(),
29 organization: value.organization.clone(),
30 organization_url: value.organization_url.clone(),
31 timezone: value.timezone.clone(),
32 }
33 }
34}
35
36impl TryFrom<&OutputParty> for crate::models::Party {
37 type Error = String;
38 fn try_from(value: &OutputParty) -> Result<Self, Self::Error> {
39 Ok(Self {
40 r#type: value.r#type.clone(),
41 role: value.role.clone(),
42 name: value.name.clone(),
43 email: value.email.clone(),
44 url: value.url.clone(),
45 organization: value.organization.clone(),
46 organization_url: value.organization_url.clone(),
47 timezone: value.timezone.clone(),
48 })
49 }
50}