Skip to main content

asana/model/
project_membership_normal_response.rs

1use serde::{Serialize, Deserialize};
2use super::{ProjectCompact, ProjectMembershipBase, UserCompact};
3#[derive(Debug, Clone, Serialize, Deserialize, Default)]
4pub struct ProjectMembershipNormalResponse {
5    #[serde(flatten)]
6    pub project_membership_base: ProjectMembershipBase,
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub project: Option<ProjectCompact>,
9    ///The base type of this resource.
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub resource_type: Option<String>,
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub user: Option<UserCompact>,
14    ///Whether the member has full access or comment-only access to the project.
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub write_access: Option<String>,
17}
18impl std::fmt::Display for ProjectMembershipNormalResponse {
19    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
20        write!(f, "{}", serde_json::to_string(self).unwrap())
21    }
22}
23impl std::ops::Deref for ProjectMembershipNormalResponse {
24    type Target = ProjectMembershipBase;
25    fn deref(&self) -> &Self::Target {
26        &self.project_membership_base
27    }
28}
29impl std::ops::DerefMut for ProjectMembershipNormalResponse {
30    fn deref_mut(&mut self) -> &mut Self::Target {
31        &mut self.project_membership_base
32    }
33}