scim_proto/
group.rs
1use crate::ScimEntryHeader;
2use serde::{Deserialize, Serialize};
3use url::Url;
4use uuid::Uuid;
5
6#[derive(Serialize, Deserialize, Debug, Clone)]
7pub struct Member {
8 value: Uuid,
9 #[serde(rename = "$ref")]
10 ref_: Url,
11 display: String,
12}
13
14#[derive(Serialize, Deserialize, Debug, Clone)]
15#[serde(rename_all = "camelCase")]
16pub struct Group {
17 #[serde(flatten)]
18 entry: ScimEntryHeader,
19
20 display_name: String,
21 members: Vec<Member>,
22}
23
24#[cfg(test)]
25mod tests {
26 use super::*;
27 use crate::constants::RFC7643_GROUP;
28
29 #[test]
30 fn parse_group() {
31 let _ = tracing_subscriber::fmt::try_init();
32
33 let g: Group = serde_json::from_str(RFC7643_GROUP).expect("Failed to parse RFC7643_GROUP");
34
35 tracing::trace!(?g);
36
37 let s = serde_json::to_string_pretty(&g).expect("Failed to serialise RFC7643_USER");
38 eprintln!("{}", s);
39 }
40}