use crate::com;
#[cfg(feature = "runas")]
use crate::runas;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("COM error: {0}")]
Com(
#[from]
#[source]
com::Error,
),
#[error("Filesystem error: {0}")]
Io(
#[from]
#[source]
std::io::Error,
),
#[error("UTF-16 conversion error: {0}")]
Utf16(
#[from]
#[source]
widestring::error::Utf16Error,
),
#[error("string/path contains NUL: {0}")]
ContainsNul(
#[from]
#[source]
widestring::error::ContainsNul<u16>,
),
#[error("failed to get/set runas flag: {0}")]
#[cfg(feature = "runas")]
RunAsFlag(
#[from]
#[source]
runas::Error,
),
}
pub type Result<T> = std::result::Result<T, Error>;