Skip to main content

asana/model/
portfolio_membership_compact.rs

1use serde::{Serialize, Deserialize};
2use super::{AsanaResource, PortfolioCompact, UserCompact};
3#[derive(Debug, Clone, Serialize, Deserialize, Default)]
4pub struct PortfolioMembershipCompact {
5    ///A generic Asana Resource, containing a globally unique identifier.
6    #[serde(flatten)]
7    pub asana_resource: AsanaResource,
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub portfolio: Option<PortfolioCompact>,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub user: Option<UserCompact>,
12}
13impl std::fmt::Display for PortfolioMembershipCompact {
14    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
15        write!(f, "{}", serde_json::to_string(self).unwrap())
16    }
17}
18impl std::ops::Deref for PortfolioMembershipCompact {
19    type Target = AsanaResource;
20    fn deref(&self) -> &Self::Target {
21        &self.asana_resource
22    }
23}
24impl std::ops::DerefMut for PortfolioMembershipCompact {
25    fn deref_mut(&mut self) -> &mut Self::Target {
26        &mut self.asana_resource
27    }
28}