#![forbid(unsafe_code)]
use std::ffi::OsStr;
use std::fmt::{self, Write};
pub use command::CommandAndArguments;
pub use context::Context;
pub use error::Error;
pub use path::SudoPath;
pub use string::SudoString;
pub mod bin_serde;
pub mod command;
pub mod context;
pub mod error;
mod path;
pub mod resolve;
mod string;
pub const HARDENED_ENUM_VALUE_0: u32 = 0x52a2925; pub const HARDENED_ENUM_VALUE_1: u32 = 0xad5d6da; pub const HARDENED_ENUM_VALUE_2: u32 = 0x69d61fc8; pub const HARDENED_ENUM_VALUE_3: u32 = 0x1629e037; pub const HARDENED_ENUM_VALUE_4: u32 = 0x1fc8d3ac;
pub(crate) struct DisplayOsStr<'a>(pub(crate) &'a OsStr);
impl fmt::Display for DisplayOsStr<'_> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
for chunk in self.0.as_encoded_bytes().utf8_chunks() {
let valid = chunk.valid();
if chunk.invalid().is_empty() {
return valid.fmt(f);
}
f.write_str(valid)?;
f.write_char(char::REPLACEMENT_CHARACTER)?;
}
Ok(())
}
}