asana/model/
portfolio_membership_compact.rs1use serde::{Serialize, Deserialize};
2use super::{AsanaResource, PortfolioCompact, UserCompact};
3#[derive(Debug, Clone, Serialize, Deserialize, Default)]
4pub struct PortfolioMembershipCompact {
5 #[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}