1use secgate::util::Descriptor;
2use twizzler_rt_abi::object::ObjID;
3
4use crate::{GetFlags, NsNode, Result};
5
6pub trait NamerAPI {
8 fn put(&self, desc: Descriptor, name_len: usize, id: ObjID) -> Result<()>;
9 fn mkns(&self, desc: Descriptor, name_len: usize, persist: bool) -> Result<()>;
10 fn link(&self, desc: Descriptor, name_len: usize, link_name: usize) -> Result<()>;
11 fn get(&self, desc: Descriptor, name_len: usize, flags: GetFlags) -> Result<NsNode>;
12 fn open_handle(&self) -> Result<(Descriptor, ObjID)>;
13 fn close_handle(&self, desc: Descriptor) -> Result<()>;
14 fn enumerate_names(
15 &self,
16 desc: Descriptor,
17 name_len: usize,
18 skip: usize,
19 count: usize,
20 ) -> Result<usize>;
21 fn enumerate_names_nsid(
22 &self,
23 desc: Descriptor,
24 id: ObjID,
25 skip: usize,
26 count: usize,
27 ) -> Result<usize>;
28 fn remove(&self, desc: Descriptor, name_len: usize) -> Result<()>;
29 fn rename(&self, desc: Descriptor, old_len: usize, new_len: usize) -> Result<()>;
30 fn change_namespace(&self, desc: Descriptor, name_len: usize) -> Result<()>;
31}