Skip to main content

asana/model/
team_membership_compact.rs

1use serde::{Serialize, Deserialize};
2use super::{AsanaResource, TeamCompact, UserCompact};
3#[derive(Debug, Clone, Serialize, Deserialize, Default)]
4pub struct TeamMembershipCompact {
5    ///A generic Asana Resource, containing a globally unique identifier.
6    #[serde(flatten)]
7    pub asana_resource: AsanaResource,
8    ///Describes if the user is a team admin.
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub is_admin: Option<bool>,
11    ///Describes if the user is a guest in the team.
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub is_guest: Option<bool>,
14    ///Describes if the user has limited access to the team.
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub is_limited_access: Option<bool>,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub team: Option<TeamCompact>,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub user: Option<UserCompact>,
21}
22impl std::fmt::Display for TeamMembershipCompact {
23    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
24        write!(f, "{}", serde_json::to_string(self).unwrap())
25    }
26}
27impl std::ops::Deref for TeamMembershipCompact {
28    type Target = AsanaResource;
29    fn deref(&self) -> &Self::Target {
30        &self.asana_resource
31    }
32}
33impl std::ops::DerefMut for TeamMembershipCompact {
34    fn deref_mut(&mut self) -> &mut Self::Target {
35        &mut self.asana_resource
36    }
37}