use displaydoc::Display;
pub type Result<T, E = NtStringError> = core::result::Result<T, E>;
#[derive(Clone, Debug, Display, Eq, PartialEq)]
#[non_exhaustive]
pub enum NtStringError {
BufferSizeExceedsU16,
NulNotFound,
UnpairedUtf16Surrogate {
unpaired_surrogate: u16,
},
}
impl From<widestring::error::DecodeUtf16Error> for NtStringError {
fn from(e: widestring::error::DecodeUtf16Error) -> Self {
Self::UnpairedUtf16Surrogate {
unpaired_surrogate: e.unpaired_surrogate(),
}
}
}
#[cfg(feature = "std")]
#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
impl std::error::Error for NtStringError {}