1use nix::libc::{gid_t, uid_t};
2use serde::{ser::SerializeMap, Serialize};
3
4#[derive(Clone, Copy, PartialEq, Eq, Debug)]
6pub struct UidMap {
7 pub inside_uid: uid_t,
9 pub outside_uid: uid_t,
11 pub count: uid_t,
13}
14
15#[derive(Clone, Copy, PartialEq, Eq, Debug)]
17pub struct GidMap {
18 pub inside_gid: gid_t,
20 pub outside_gid: gid_t,
22 pub count: gid_t,
24}
25
26impl Serialize for UidMap {
27 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
28 where
29 S: serde::Serializer,
30 {
31 let mut map = serializer.serialize_map(Some(3))?;
32
33 map.serialize_entry("inside_uid", &self.inside_uid)?;
34 map.serialize_entry("outside_uid", &self.outside_uid)?;
35 map.serialize_entry("count", &self.count)?;
36
37 map.end()
38 }
39}
40
41impl Serialize for GidMap {
42 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
43 where
44 S: serde::Serializer,
45 {
46 let mut map = serializer.serialize_map(Some(3))?;
47
48 map.serialize_entry("inside_gid", &self.inside_gid)?;
49 map.serialize_entry("outside_gid", &self.outside_gid)?;
50 map.serialize_entry("count", &self.count)?;
51
52 map.end()
53 }
54}