Skip to main content

sim/runtime/
capabilities.rs

1//! Capability names used by the core runtime surface.
2
3use sim_kernel::CapabilityName;
4
5/// The capability gating browse reads (`browse.read`).
6pub fn browse_read_capability() -> CapabilityName {
7    CapabilityName::new("browse.read")
8}
9
10/// The capability gating browse-driven test runs (`browse.run-tests`).
11pub fn browse_run_tests_capability() -> CapabilityName {
12    CapabilityName::new("browse.run-tests")
13}
14
15/// The capability gating internal browse surfaces (`browse.internal`).
16pub fn browse_internal_capability() -> CapabilityName {
17    CapabilityName::new("browse.internal")
18}
19
20/// The capability gating the configured list implementation (`config.list.impl`).
21pub fn config_list_impl_capability() -> CapabilityName {
22    CapabilityName::new("config.list.impl")
23}
24
25/// The capability gating the configured table implementation (`config.table.impl`).
26pub fn config_table_impl_capability() -> CapabilityName {
27    CapabilityName::new("config.table.impl")
28}
29
30#[cfg(test)]
31mod tests {
32    use super::{
33        browse_internal_capability, browse_read_capability, browse_run_tests_capability,
34        config_list_impl_capability, config_table_impl_capability,
35    };
36
37    #[test]
38    fn capability_tokens_are_stable() {
39        assert_eq!(browse_read_capability().as_str(), "browse.read");
40        assert_eq!(browse_run_tests_capability().as_str(), "browse.run-tests");
41        assert_eq!(browse_internal_capability().as_str(), "browse.internal");
42        assert_eq!(config_list_impl_capability().as_str(), "config.list.impl");
43        assert_eq!(config_table_impl_capability().as_str(), "config.table.impl");
44    }
45}