use smb_dtyp::binrw_util::prelude::*;
#[binrw::binrw]
#[derive(Debug, PartialEq, Eq)]
#[bw(import(has_next: bool))]
pub struct FileNotifyInformation {
pub action: NotifyAction,
#[bw(try_calc = file_name.size().try_into())]
file_name_length: u32,
#[br(args { size: SizedStringSize::Bytes(file_name_length.into())})]
pub file_name: SizedWideString,
}
#[binrw::binrw]
#[derive(Debug, PartialEq, Eq)]
#[brw(repr(u32))]
pub enum NotifyAction {
Added = 0x1,
Removed = 0x2,
Modified = 0x3,
RenamedOldName = 0x4,
RenamedNewName = 0x5,
AddedStream = 0x6,
RemovedStream = 0x7,
ModifiedStream = 0x8,
RemovedByDelete = 0x9,
IdNotTunnelled = 0xa,
TunnelledIdCollision = 0xb,
}