1use displaydoc::Display;
5
6pub type Result<T, E = NtStringError> = core::result::Result<T, E>;
8
9#[derive(Clone, Debug, Display, Eq, PartialEq)]
11#[non_exhaustive]
12pub enum NtStringError {
13 BufferSizeExceedsU16,
15 NulNotFound,
17 UnpairedUtf16Surrogate {
19 unpaired_surrogate: u16,
21 },
22}
23
24impl From<widestring::error::DecodeUtf16Error> for NtStringError {
25 fn from(e: widestring::error::DecodeUtf16Error) -> Self {
26 Self::UnpairedUtf16Surrogate {
27 unpaired_surrogate: e.unpaired_surrogate(),
28 }
29 }
30}
31
32#[cfg(feature = "std")]
33#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
34impl std::error::Error for NtStringError {}