pub struct ACL {
pub acl_revision: AclRevision,
pub ace: Vec<ACE>,
}Fields§
§acl_revision: AclRevision§ace: Vec<ACE>Implementations§
Source§impl ACL
impl ACL
Sourcepub fn order_aces(&mut self)
pub fn order_aces(&mut self)
Orders the ACEs in the ACL according to the standard order.
Note that since we do not have sufficient information about the inheritance, we only apply order which is independent of inheritance.
The following steps describe the preferred order:
- ✅ All explicit ACEs are placed in a group before any inherited ACEs.
- ✅ Within the group of explicit ACEs, access-denied ACEs are placed before access-allowed ACEs.
- ❌ Inherited ACEs are placed in the order in which they are inherited. ACEs inherited from the child object’s parent come first, then ACEs inherited from the grandparent, and so on up the tree of objects.
- ❌ For each level of inherited ACEs, access-denied ACEs are placed before access-allowed ACEs.
See more information on Order of ACEs in a DACL - MSDN
Sourcepub fn is_ace_sorted(&self) -> bool
pub fn is_ace_sorted(&self) -> bool
Whether ACE ordering rules apply to this ACL.
See order_aces for the ordering rules.
Sourcepub fn insert_ace(&mut self, ace: ACE)
pub fn insert_ace(&mut self, ace: ACE)
Insert an ACE into the ACL, maintaining the correct order.
See order_aces for the ordering rules.
Trait Implementations§
Source§impl BinRead for ACL
impl BinRead for ACL
Source§fn read_options<R: Read + Seek>(
__binrw_generated_var_reader: &mut R,
__binrw_generated_var_endian: Endian,
__binrw_generated_var_arguments: Self::Args<'_>,
) -> BinResult<Self>
fn read_options<R: Read + Seek>( __binrw_generated_var_reader: &mut R, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<Self>
Source§fn read_be<R>(reader: &mut R) -> Result<Self, Error>
fn read_be<R>(reader: &mut R) -> Result<Self, Error>
Read
Self from the reader using default arguments and assuming
big-endian byte order. Read moreSource§fn read_le<R>(reader: &mut R) -> Result<Self, Error>
fn read_le<R>(reader: &mut R) -> Result<Self, Error>
Read
Self from the reader using default arguments and assuming
little-endian byte order. Read moreSource§fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
Read
T from the reader assuming native-endian byte order. Read moreSource§fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
Read
Self from the reader, assuming big-endian byte order, using the
given arguments. Read moreSource§impl BinWrite for ACL
impl BinWrite for ACL
Source§fn write_options<W: Write + Seek>(
&self,
__binrw_generated_var_writer: &mut W,
__binrw_generated_var_endian: Endian,
__binrw_generated_var_arguments: Self::Args<'_>,
) -> BinResult<()>
fn write_options<W: Write + Seek>( &self, __binrw_generated_var_writer: &mut W, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<()>
Source§fn write_be<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_be<W>(&self, writer: &mut W) -> Result<(), Error>
Write
Self to the writer assuming big-endian byte order. Read moreSource§fn write_le<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_le<W>(&self, writer: &mut W) -> Result<(), Error>
Write
Self to the writer assuming little-endian byte order. Read moreSource§fn write_ne<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_ne<W>(&self, writer: &mut W) -> Result<(), Error>
Write
Self to the writer assuming native-endian byte order. Read moreSource§fn write_be_args<W>(
&self,
writer: &mut W,
args: Self::Args<'_>,
) -> Result<(), Error>
fn write_be_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
Write
Self to the writer, assuming big-endian byte order, using the
given arguments. Read moreimpl Eq for ACL
impl StructuralPartialEq for ACL
Auto Trait Implementations§
impl Freeze for ACL
impl RefUnwindSafe for ACL
impl Send for ACL
impl Sync for ACL
impl Unpin for ACL
impl UnwindSafe for ACL
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more