1 unstable release
0.1.0 | Jul 17, 2024 |
---|
#523 in Operating systems
858 downloads per month
6KB
cap_access
Provide basic capability-based access control to objects.
The wrapper type WithCap
associates a capability to an object, that
is a set of access rights. When accessing the object, we must explicitly
specify the access capability, and it must not violate the capability
associated with the object at initialization.
Examples
use cap_access::{Cap, WithCap};
let data = WithCap::new(42, Cap::READ | Cap::WRITE);
// Access with the correct capability.
assert_eq!(data.access(Cap::READ).unwrap(), &42);
assert_eq!(data.access(Cap::WRITE).unwrap(), &42);
assert_eq!(data.access(Cap::READ | Cap::WRITE).unwrap(), &42);
// Access with the incorrect capability.
assert!(data.access(Cap::EXECUTE).is_none());
assert!(data.access(Cap::READ | Cap::EXECUTE).is_none());
Dependencies
~105KB