jacquard_api/tools_ozone/team/
add_member.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: tools.ozone.team.addMember
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[jacquard_derive::lexicon]
9#[derive(
10    serde::Serialize,
11    serde::Deserialize,
12    Debug,
13    Clone,
14    PartialEq,
15    Eq,
16    bon::Builder
17)]
18#[serde(rename_all = "camelCase")]
19#[builder(start_fn = new)]
20pub struct AddMember<'a> {
21    #[serde(borrow)]
22    pub did: jacquard_common::types::string::Did<'a>,
23    #[serde(borrow)]
24    #[builder(into)]
25    pub role: jacquard_common::CowStr<'a>,
26    #[serde(flatten)]
27    #[serde(borrow)]
28    #[builder(default)]
29    pub extra_data: ::std::collections::BTreeMap<
30        ::jacquard_common::smol_str::SmolStr,
31        ::jacquard_common::types::value::Data<'a>,
32    >,
33}
34
35impl jacquard_common::IntoStatic for AddMember<'_> {
36    type Output = AddMember<'static>;
37    fn into_static(self) -> Self::Output {
38        AddMember {
39            did: self.did.into_static(),
40            role: self.role.into_static(),
41            extra_data: self.extra_data.into_static(),
42        }
43    }
44}
45
46#[jacquard_derive::lexicon]
47#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
48#[serde(rename_all = "camelCase")]
49pub struct AddMemberOutput<'a> {
50    #[serde(flatten)]
51    #[serde(borrow)]
52    pub value: crate::tools_ozone::team::Member<'a>,
53}
54
55impl jacquard_common::IntoStatic for AddMemberOutput<'_> {
56    type Output = AddMemberOutput<'static>;
57    fn into_static(self) -> Self::Output {
58        AddMemberOutput {
59            value: self.value.into_static(),
60            extra_data: self.extra_data.into_static(),
61        }
62    }
63}
64
65#[jacquard_derive::open_union]
66#[derive(
67    serde::Serialize,
68    serde::Deserialize,
69    Debug,
70    Clone,
71    PartialEq,
72    Eq,
73    thiserror::Error,
74    miette::Diagnostic
75)]
76#[serde(tag = "error", content = "message")]
77#[serde(bound(deserialize = "'de: 'a"))]
78pub enum AddMemberError<'a> {
79    ///Member already exists in the team.
80    #[serde(rename = "MemberAlreadyExists")]
81    MemberAlreadyExists(std::option::Option<String>),
82}
83
84impl std::fmt::Display for AddMemberError<'_> {
85    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
86        match self {
87            Self::MemberAlreadyExists(msg) => {
88                write!(f, "MemberAlreadyExists")?;
89                if let Some(msg) = msg {
90                    write!(f, ": {}", msg)?;
91                }
92                Ok(())
93            }
94            Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
95        }
96    }
97}
98
99impl jacquard_common::IntoStatic for AddMemberError<'_> {
100    type Output = AddMemberError<'static>;
101    fn into_static(self) -> Self::Output {
102        match self {
103            AddMemberError::MemberAlreadyExists(v) => {
104                AddMemberError::MemberAlreadyExists(v.into_static())
105            }
106            AddMemberError::Unknown(v) => AddMemberError::Unknown(v.into_static()),
107        }
108    }
109}
110
111impl jacquard_common::types::xrpc::XrpcRequest for AddMember<'_> {
112    const NSID: &'static str = "tools.ozone.team.addMember";
113    const METHOD: jacquard_common::types::xrpc::XrpcMethod = jacquard_common::types::xrpc::XrpcMethod::Procedure(
114        "application/json",
115    );
116    const OUTPUT_ENCODING: &'static str = "application/json";
117    type Output<'de> = AddMemberOutput<'de>;
118    type Err<'de> = AddMemberError<'de>;
119}