Debug-friendly types for windows result codes.
-
u32error codes are annoying todbg!(...).winresulthas awesomeDebugimpls. -
u32error codes are annoying to view in your debugger.winresulthas awesome *.natvis files. Usenatvis-pdbs! -
typoing
ERROR_WHATEVERin amatchis a mere warning.ERROR::WHATEVERis a hard error.
(I'd still use#![deny(unreachable_patterns)]anyways.) -
ERROR_INVALID_FUNCTION==S_FALSE(==1.) Lame! -
ERROR_FILE_NOT_FOUND(2) is a mess. A function orGetLastErrormight return:label value notes ERROR_FILE_NOT_FOUND0x00000002Not an HRESULT(would be "successful")HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)0x80070002hresult.info "incorrectly" labels ERROR_*as thisNTSTATUS_FROM_WIN32(ERROR_FILE_NOT_FOUND)0xC0070002IDK how frequently [ NtStatus]es get shoved intoGetLastError, but I've seen weirderD3D10_ERROR_FILE_NOT_FOUND0x88790002Different facility, same code D3D11_ERROR_FILE_NOT_FOUND0x887C0002Different facility, same code -
ERROR_*is a mixture ofHRESULTs and non-HRESULTs. Can you keep them straight? No. No you cannot. Stop lying.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.