asana/model/
project_membership_normal_response.rs1use 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 #[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 #[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}