cap-primitives 4.0.1

Capability-based primitives
Documentation
1
2
3
4
5
6
7
8
9
10
11
use io_lifetimes::AsHandle;
use std::{fs, io};

pub(crate) fn is_file_read_write_impl(file: &fs::File) -> io::Result<(bool, bool)> {
    let handle = file.as_handle();
    let access_mode = winx::file::query_access_information(handle)?;
    let read = access_mode.contains(winx::file::AccessMode::FILE_READ_DATA);
    let write = access_mode.contains(winx::file::AccessMode::FILE_WRITE_DATA)
        || access_mode.contains(winx::file::AccessMode::FILE_APPEND_DATA);
    Ok((read, write))
}