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