Skip to main content

sim_table_db/
capabilities.rs

1//! Capability names used by database-backed tables.
2
3use sim_kernel::CapabilityName;
4
5/// The capability gating database-backed tables (`table.db`).
6pub fn table_db_capability() -> CapabilityName {
7    CapabilityName::new("table.db")
8}
9
10/// The capability gating database table reads (`table.db.read`).
11pub fn table_db_read_capability() -> CapabilityName {
12    CapabilityName::new("table.db.read")
13}
14
15/// The capability gating database table writes (`table.db.write`).
16pub fn table_db_write_capability() -> CapabilityName {
17    CapabilityName::new("table.db.write")
18}
19
20/// The capability gating database table directory creation (`table.db.mkdir`).
21pub fn table_db_mkdir_capability() -> CapabilityName {
22    CapabilityName::new("table.db.mkdir")
23}
24
25/// The capability gating database table directory removal (`table.db.rmdir`).
26pub fn table_db_rmdir_capability() -> CapabilityName {
27    CapabilityName::new("table.db.rmdir")
28}
29
30#[cfg(test)]
31mod tests {
32    use super::{
33        table_db_capability, table_db_mkdir_capability, table_db_read_capability,
34        table_db_rmdir_capability, table_db_write_capability,
35    };
36
37    #[test]
38    fn capability_tokens_are_stable() {
39        assert_eq!(table_db_capability().as_str(), "table.db");
40        assert_eq!(table_db_read_capability().as_str(), "table.db.read");
41        assert_eq!(table_db_write_capability().as_str(), "table.db.write");
42        assert_eq!(table_db_mkdir_capability().as_str(), "table.db.mkdir");
43        assert_eq!(table_db_rmdir_capability().as_str(), "table.db.rmdir");
44    }
45}