priv_sep

Privilege separation library.
git clone https://git.philomathiclife.com/repos/priv_sep
Log | Files | Refs | README

commit b4b17cb9fae3d581ae1e20e960f55bf722079c18
parent d4ae3a022556928177007bfb37e700369f15d6cf
Author: Zack Newman <zack@philomathiclife.com>
Date:   Sat, 31 Jan 2026 19:06:17 -0700

suppress new clippy lint. improve docs. bump msrv

Diffstat:
MCargo.toml | 103++++++++++++++++++++++++++++++++++++++++---------------------------------------
MREADME.md | 11++++++-----
Msrc/lib.rs | 19++++++++++++-------
3 files changed, 70 insertions(+), 63 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml @@ -9,59 +9,60 @@ license = "MIT OR Apache-2.0" name = "priv_sep" readme = "README.md" repository = "https://git.philomathiclife.com/repos/priv_sep/" -rust-version = "1.86.0" -version = "3.0.0-alpha.4.0" +rust-version = "1.93.0" +version = "3.0.0-alpha.4.1" [lints.rust] -ambiguous_negative_literals = { level = "deny", priority = -1 } -closure_returning_async_block = { level = "deny", priority = -1 } -deprecated_safe = { level = "deny", priority = -1 } -deref_into_dyn_supertrait = { level = "deny", priority = -1 } -ffi_unwind_calls = { level = "deny", priority = -1 } -future_incompatible = { level = "deny", priority = -1 } -#fuzzy_provenance_casts = { level = "deny", priority = -1 } -impl_trait_redundant_captures = { level = "deny", priority = -1 } -keyword_idents = { level = "deny", priority = -1 } -let_underscore = { level = "deny", priority = -1 } -linker_messages = { level = "deny", priority = -1 } -#lossy_provenance_casts = { level = "deny", priority = -1 } -macro_use_extern_crate = { level = "deny", priority = -1 } -meta_variable_misuse = { level = "deny", priority = -1 } -missing_copy_implementations = { level = "deny", priority = -1 } -missing_debug_implementations = { level = "deny", priority = -1 } -missing_docs = { level = "deny", priority = -1 } -#multiple_supertrait_upcastable = { level = "deny", priority = -1 } -#must_not_suspend = { level = "deny", priority = -1 } -non_ascii_idents = { level = "deny", priority = -1 } -#non_exhaustive_omitted_patterns = { level = "deny", priority = -1 } -nonstandard_style = { level = "deny", priority = -1 } -redundant_imports = { level = "deny", priority = -1 } -redundant_lifetimes = { level = "deny", priority = -1 } -refining_impl_trait = { level = "deny", priority = -1 } -rust_2018_compatibility = { level = "deny", priority = -1 } -rust_2018_idioms = { level = "deny", priority = -1 } -rust_2021_compatibility = { level = "deny", priority = -1 } -rust_2024_compatibility = { level = "deny", priority = -1 } -single_use_lifetimes = { level = "deny", priority = -1 } -#supertrait_item_shadowing_definition = { level = "deny", priority = -1 } -#supertrait_item_shadowing_usage = { level = "deny", priority = -1 } -trivial_casts = { level = "deny", priority = -1 } -trivial_numeric_casts = { level = "deny", priority = -1 } -unit_bindings = { level = "deny", priority = -1 } +deprecated-safe = { level = "deny", priority = -1 } +future-incompatible = { level = "deny", priority = -1 } +keyword-idents = { level = "deny", priority = -1 } +let-underscore = { level = "deny", priority = -1 } +nonstandard-style = { level = "deny", priority = -1 } +refining-impl-trait = { level = "deny", priority = -1 } +rust-2018-compatibility = { level = "deny", priority = -1 } +rust-2018-idioms = { level = "deny", priority = -1 } +rust-2021-compatibility = { level = "deny", priority = -1 } +rust-2024-compatibility = { level = "deny", priority = -1 } unknown-or-malformed-diagnostic-attributes = { level = "deny", priority = -1 } -unnameable_types = { level = "deny", priority = -1 } -#unqualified_local_imports = { level = "deny", priority = -1 } -unreachable_pub = { level = "deny", priority = -1 } -unsafe_code = { level = "deny", priority = -1 } -unstable_features = { level = "deny", priority = -1 } unused = { level = "deny", priority = -1 } -unused_crate_dependencies = { level = "deny", priority = -1 } -unused_import_braces = { level = "deny", priority = -1 } -unused_lifetimes = { level = "deny", priority = -1 } -unused_qualifications = { level = "deny", priority = -1 } -unused_results = { level = "deny", priority = -1 } -variant_size_differences = { level = "deny", priority = -1 } warnings = { level = "deny", priority = -1 } +ambiguous-negative-literals = { level = "deny", priority = -1 } +closure-returning-async-block = { level = "deny", priority = -1 } +deprecated-in-future = { level = "deny", priority = -1 } +deref-into-dyn-supertrait = { level = "deny", priority = -1 } +ffi-unwind-calls = { level = "deny", priority = -1 } +#fuzzy-provenance-casts = { level = "deny", priority = -1 } +impl-trait-redundant-captures = { level = "deny", priority = -1 } +linker-messages = { level = "deny", priority = -1 } +#lossy-provenance-casts = { level = "deny", priority = -1 } +macro-use-extern-crate = { level = "deny", priority = -1 } +meta-variable-misuse = { level = "deny", priority = -1 } +missing-copy-implementations = { level = "deny", priority = -1 } +missing-debug-implementations = { level = "deny", priority = -1 } +missing-docs = { level = "deny", priority = -1 } +#multiple-supertrait-upcastable = { level = "deny", priority = -1 } +#must-not-suspend = { level = "deny", priority = -1 } +non-ascii-idents = { level = "deny", priority = -1 } +#non-exhaustive-omitted-patterns = { level = "deny", priority = -1 } +redundant-imports = { level = "deny", priority = -1 } +redundant-lifetimes = { level = "deny", priority = -1 } +#resolving-to-items-shadowing-supertrait-items = { level = "deny", priority = -1 } +#shadowing-supertrait-items = { level = "deny", priority = -1 } +single-use-lifetimes = { level = "deny", priority = -1 } +trivial-casts = { level = "deny", priority = -1 } +trivial-numeric-casts = { level = "deny", priority = -1 } +unit-bindings = { level = "deny", priority = -1 } +unnameable-types = { level = "deny", priority = -1 } +#unqualified-local-imports = { level = "deny", priority = -1 } +unreachable-pub = { level = "deny", priority = -1 } +unsafe-code = { level = "deny", priority = -1 } +unstable-features = { level = "deny", priority = -1 } +unused-crate-dependencies = { level = "deny", priority = -1 } +unused-import-braces = { level = "deny", priority = -1 } +unused-lifetimes = { level = "deny", priority = -1 } +unused-qualifications = { level = "deny", priority = -1 } +unused-results = { level = "deny", priority = -1 } +variant-size-differences = { level = "deny", priority = -1 } [lints.clippy] cargo = { level = "deny", priority = -1 } @@ -93,7 +94,7 @@ semicolon_inside_block = "allow" [package.metadata.docs.rs] all-features = true cargo-args = ["-Zbuild-std=std"] -default-target = "x86_64-unknown-openbsd" +default-target = "x86_64-unknown-linux-gnu" targets = [ "aarch64-apple-darwin", "aarch64-unknown-linux-gnu", @@ -102,9 +103,9 @@ targets = [ "powerpc64-unknown-linux-gnu", "riscv64gc-unknown-linux-gnu", "x86_64-unknown-freebsd", - "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", - "x86_64-unknown-netbsd" + "x86_64-unknown-netbsd", + "x86_64-unknown-openbsd" ] [dev-dependencies] diff --git a/README.md b/README.md @@ -106,16 +106,17 @@ async fn main() -> Result<Infallible, PrivDropErr<Error>> { ### `alloc` -Enables `alloc` support. While "typical" use of `priv_sep` should work without `alloc`, there are cases -where one may desire heap allocation. For example if a database entry associated with a user requires -more than 1 KiB of space, `UserInfo::new` will error with `Errno::ERANGE` when `alloc` is not enabled. +Enables [`alloc`](https://doc.rust-lang.org/stable/alloc/) support. While "typical" use of `priv_sep` should work +without `alloc`, there are cases where one may desire heap allocation. For example if a database entry associated +with a user requires more than 1 KiB of space, `UserInfo::new` will error with `Errno::ERANGE` when `alloc` is not +enabled. Additional `CStrHelper` `impl`s are exposed as well (e.g., `String`). ### `std` -Enables `std` support. This is useful for additional `CStrHelper` `impl`s (e.g., `OsStr`) as well as -`TryFrom<Error>` and `From<Errno>`. +Enables [`std`](https://doc.rust-lang.org/stable/std/) support. This is useful for additional `CStrHelper` `impl`s +(e.g., `OsStr`) as well as `TryFrom<Error>` and `From<Errno>`. This feature implies [`alloc`](#alloc) and is enabled by default via the `default` feature. diff --git a/src/lib.rs b/src/lib.rs @@ -112,21 +112,26 @@ //! //! ### `alloc` //! -//! Enables `alloc` support. While "typical" use of `priv_sep` should work without `alloc`, there are cases -//! where one may desire heap allocation. For example if a database entry associated with a user requires -//! more than 1 KiB of space, [`UserInfo::new`] will error with [`Errno::ERANGE`] when `alloc` is not enabled. +//! Enables [`alloc`](https://doc.rust-lang.org/stable/alloc/) support. While "typical" use of `priv_sep` +//! should work without `alloc`, there are cases where one may desire heap allocation. For example if a +//! database entry associated with a user requires more than 1 KiB of space, [`UserInfo::new`] will error +//! with [`Errno::ERANGE`] when `alloc` is not enabled. //! //! Additional [`CStrHelper`] `impl`s are exposed as well (e.g., //! [`String`](./trait.CStrHelper.html#impl-CStrHelper-for-String)). //! //! ### `std` //! -//! Enables `std` support. This is useful for additional [`CStrHelper`] `impl`s (e.g., -//! [`OsStr`](./trait.CStrHelper.html#impl-CStrHelper-for-OsStr)) as well as -//! [`TryFrom<Error>`](./enum.Errno.html#impl-TryFrom%3CError%3E-for-Errno) -//! and [`From<Errno>`](./enum.Errno.html#impl-From%3CErrno%3E-for-Error). +//! Enables [`std`](https://doc.rust-lang.org/stable/std/) support. This is useful for additional [`CStrHelper`] +//! `impl`s (e.g., [`OsStr`](./trait.CStrHelper.html#impl-CStrHelper-for-OsStr)) as well as +//! [`TryFrom<Error>`](./enum.Errno.html#impl-TryFrom%3CError%3E-for-Errno) and +//! [`From<Errno>`](./enum.Errno.html#impl-From%3CErrno%3E-for-Error). //! //! This feature implies [`alloc`](#alloc) and is enabled by default via the `default` feature. +#![expect( + clippy::doc_paragraphs_missing_punctuation, + reason = "false positive for crate documentation having image links" +)] #![cfg_attr(docsrs, feature(doc_cfg))] #![cfg_attr(docsrs, doc(auto_cfg = false))] #![no_std]