Mercurial > crates > nonstick
view src/environ.rs @ 105:13b4d2a19674
Support Rust v1.75.0.
This is the version included in Ubuntu 24.04 LTS and Debian Trixie,
so it's old enough to have wide penetration without being too old
to get new features (Debian Stable, I love you but v1.63 is just
not going to work out).
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Thu, 26 Jun 2025 00:48:51 -0400 |
parents | 3f11b8d30f63 |
children |
line wrap: on
line source
//! Traits and stuff for managing the environment of a PAM handle. //! //! PAM modules can set environment variables to apply to a user session. //! This module manages the interface for doing all of that. use crate::constants::Result; use std::ffi::{OsStr, OsString}; /// A key/value map for environment variables, as [`OsString`]s. /// /// This is a limited subset of what [`HashMap`](std::collections::HashMap) /// can do. Notably, we do *not* support mutable iteration. pub trait EnvironMap<'a> { /// Gets the environment variable of the given key. fn get(&self, key: impl AsRef<OsStr>) -> Option<OsString>; /// Iterates over the key/value pairs of the environment. fn iter(&self) -> Result<impl Iterator<Item = (OsString, OsString)>>; } pub trait EnvironMapMut<'a>: EnvironMap<'a> { /// Sets the environment variable with the given key, /// returning the old one if present. fn insert( &mut self, key: impl AsRef<OsStr>, val: impl AsRef<OsStr>, ) -> Result<Option<OsString>>; /// Removes the environment variable from the map, returning its old value /// if present. fn remove(&mut self, key: impl AsRef<OsStr>) -> Result<Option<OsString>>; }