| Crates.io | cap_access |
| lib.rs | cap_access |
| version | 0.1.0 |
| created_at | 2024-07-17 09:25:22.298921+00 |
| updated_at | 2024-07-17 09:25:22.298921+00 |
| description | Provide basic capability-based access control to objects |
| homepage | https://github.com/arceos-org/arceos |
| repository | https://github.com/arceos-org/cap_access |
| max_upload_size | |
| id | 1306040 |
| size | 7,515 |
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.
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());