pub enum AclState {
Absent,
Null,
Empty,
Populated(u32),
}Expand description
What a descriptor says about one of its access-control lists.
The three states that look alike and are not are kept apart here, because collapsing any pair of them silently changes what the resulting object permits.
§Example
The pair that matters most: a NULL DACL grants everyone complete access
and an empty one grants nobody anything. They are opposites, so an
Option<Acl> that flattened them would not lose detail – it would invert
the grant.
use windows_namespace_request_sys::AclState;
let absent = AclState::Absent;
let null = AclState::Null;
let empty = AclState::Empty;
assert_ne!(null, empty, "NULL allows all; empty allows none");
assert_ne!(absent, null);
assert_ne!(absent, empty);
// A populated list also reports how many entries it carries.
assert_eq!(AclState::Populated(1), AclState::Populated(1));
assert_ne!(AclState::Populated(1), AclState::Populated(2));Variants§
Absent
The descriptor carries no list at all. The object takes its default.
Null
The descriptor carries a NULL list. For a DACL this grants everyone
complete access – the opposite of what Empty does.
Empty
The descriptor carries a list with no entries. For a DACL this grants nobody any access.
Populated(u32)
The descriptor carries a list with this many entries.