Skip to main content

provenant/output_schema/
party.rs

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