# get-last-error
[](https://github.com/OpenByteDev/get-last-error/actions/workflows/ci.yml)
[](https://crates.io/crates/get-last-error)
[](https://docs.rs/get-last-error)
[](https://deps.rs/repo/github/openbytedev/get-last-error)
[](https://github.com/OpenByteDev/get-last-error/blob/master/LICENSE)
An error wrapper over Win32 API errors.
## Examples
A `Win32Error` can be constructed from an arbitrary `DWORD`:
```rust
use get_last_error::Win32Error;
let err = Win32Error::new(0);
println!("{}", err); // prints "The operation completed successfully."
```
The `Win32Error::get_last_error` retrieves the last error code for the current thread:
```rust
use get_last_error::Win32Error;
use winapi::um::{winnt::HANDLE, processthreadsapi::OpenProcess};
fn open_process() -> Result<HANDLE, Win32Error> {
let result = unsafe { OpenProcess(0, 0, 0) }; // some windows api call
if result.is_null() { // null indicates failure.
Err(Win32Error::get_last_error())
} else {
Ok(result)
}
}
```
## License
Licensed under MIT license ([LICENSE](https://github.com/OpenByteDev/get-last-error/blob/master/LICENSE) or http://opensource.org/licenses/MIT)