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(&self, desc: Descriptor, name_len: usize) -> Result<usize>;
15 fn enumerate_names_nsid(&self, desc: Descriptor, id: ObjID) -> Result<usize>;
16 fn remove(&self, desc: Descriptor, name_len: usize) -> Result<()>;
17 fn change_namespace(&self, desc: Descriptor, name_len: usize) -> Result<()>;
18}