Mercurial > crates > nonstick
view libpam-sys/libpam-sys-impls/src/lib.rs @ 183:4f46681b3f54 default tip
Catch a few stray cargo fmt things.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Wed, 30 Jul 2025 18:43:07 -0400 |
parents | 0730f5f2ee2a |
children |
line wrap: on
line source
//! Information about the PAM implementation you're using right now. //! //! This module contains constants and values that can be used at build-script, //! compile, and run time to determine what PAM implementation you're using. //! //! ## Always available //! //! [`PamImpl::CURRENT`] will tell you what version of PAM you're using. //! It can be imported in any Rust code, from build scripts to runtime. //! //! ## Compile time //! //! Use [`enable_pam_impl_cfg`] in your `build.rs` to generate custom `#[cfg]`s //! for conditional compilation based on PAM implementation. //! //! ``` //! // Your package's build.rs: //! //! fn main() { //! // Also available at libpam_sys::pam_impl::enable_pam_impl_cfg(). //! libpam_sys_impls::enable_pam_impl_cfg(); //! // whatever else you do in your build script. //! } //! ``` //! //! This will set the current `pam_impl` as well as registering all known //! PAM implementations with `rustc-check-cfg` to get cfg-checking. //! //! The names that appear in the `cfg` variables are the same as the values //! in the [`PamImpl`] enum. //! //! ```ignore //! #[cfg(pam_impl = "OpenPam")] //! fn openpam_specific_func(handle: *const libpam_sys::pam_handle) { //! let environ = libpam_sys::pam_getenvlist(handle); //! // ... //! libpam_sys::openpam_free_envlist() //! } //! //! // This will give you a warning since "UnknownImpl" is not in the cfg. //! #[cfg(not(pam_impl = "UnknownImpl"))] //! fn do_something() { //! // ... //! } //! ``` //! //! The [`pam_impl_name!`] macro will expand to this same value, currently #![doc = concat!("`", env!("LIBPAMSYS_IMPL"), "`.")] mod pam_impl; #[doc(inline)] pub use pam_impl::*;