summaryrefslogtreecommitdiffstats
path: root/third_party/rust/errno/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/errno/README.md')
-rw-r--r--third_party/rust/errno/README.md62
1 files changed, 62 insertions, 0 deletions
diff --git a/third_party/rust/errno/README.md b/third_party/rust/errno/README.md
new file mode 100644
index 0000000000..6a9a42c3c6
--- /dev/null
+++ b/third_party/rust/errno/README.md
@@ -0,0 +1,62 @@
+# errno [![CI](https://github.com/lambda-fairy/rust-errno/actions/workflows/main.yml/badge.svg)](https://github.com/lambda-fairy/rust-errno/actions/workflows/main.yml) [![Cargo](https://img.shields.io/crates/v/errno.svg)](https://crates.io/crates/errno)
+
+Cross-platform interface to the [`errno`][errno] variable. Works on Rust 1.56 or newer.
+
+Documentation is available at <https://docs.rs/errno>.
+
+[errno]: https://en.wikipedia.org/wiki/Errno.h
+
+
+## Dependency
+
+Add to your `Cargo.toml`:
+
+```toml
+[dependencies]
+errno = "*"
+```
+
+
+## Comparison with `std::io::Error`
+
+The standard library provides [`Error::last_os_error`][last_os_error] which fetches `errno` in the same way.
+
+This crate provides these extra features:
+
+- No heap allocations
+- Optional `#![no_std]` support
+- A `set_errno` function
+
+[last_os_error]: https://doc.rust-lang.org/std/io/struct.Error.html#method.last_os_error
+
+
+## Examples
+
+```rust
+extern crate errno;
+use errno::{Errno, errno, set_errno};
+
+// Get the current value of errno
+let e = errno();
+
+// Set the current value of errno
+set_errno(e);
+
+// Extract the error code as an i32
+let code = e.0;
+
+// Display a human-friendly error message
+println!("Error {}: {}", code, e);
+```
+
+
+## `#![no_std]`
+
+Enable `#![no_std]` support by disabling the default `std` feature:
+
+```toml
+[dependencies]
+errno = { version = "*", default-features = false }
+```
+
+The `Error` impl will be unavailable.