pub struct Passwd {
pub name: String,
pub passwd: Option<String>,
pub uid: u32,
pub gid: u32,
pub gecos: Option<String>,
pub dir: String,
pub shell: String,
}
Expand description
The main struct for the library, a safe version
of the POSIX struct passwd
There are 2 ways to construct a Passwd
instance (other
than assigning fields by hand). You can look up a user account
by username with Passwd::from_name(String)
, or by uid with
Passwd::from_uid(u32)
.
There is a shortcut function, Passwd::current_user()
, which is just
short for Passwd::from_uid(unsafe { libc::getuid() } as u32)
.
Fields
name: String
passwd: Option<String>
uid: u32
gid: u32
gecos: Option<String>
dir: String
shell: String
Implementations
sourceimpl Passwd
impl Passwd
sourcepub fn from_name(name: &str) -> Result<Option<Passwd>>
pub fn from_name(name: &str) -> Result<Option<Passwd>>
Looks up the username and returns a Passwd with the user’s values, if the user is found
This is Result<Option<>>
because the operation to convert a rust String to a cstring could fail
Example
use pwd::Passwd;
let pwd = Passwd::from_name("bob")?;
if let Some(passwd) = pwd {
println!("uid is {}", passwd.uid);
}
sourcepub fn from_uid(uid: u32) -> Option<Passwd>
pub fn from_uid(uid: u32) -> Option<Passwd>
Looks up the uid and returns a Passwd with the user’s values, if the user is found
Example
use libc::getuid;
use pwd::Passwd;
let uid = unsafe { getuid() };
let pwd = Passwd::from_uid(uid as u32);
if let Some(passwd) = pwd {
println!("username is {}", passwd.name);
}
sourcepub fn current_user() -> Option<Passwd>
pub fn current_user() -> Option<Passwd>
Shortcut for Passwd::from_uid(libc::getuid() as u32)
, so see the docs for that constructor
Example
use pwd::Passwd;
let pwd = Passwd::current_user();
if let Some(passwd) = pwd {
println!("username is {}", passwd.name);
}
Trait Implementations
impl StructuralPartialEq for Passwd
Auto Trait Implementations
impl RefUnwindSafe for Passwd
impl Send for Passwd
impl Sync for Passwd
impl Unpin for Passwd
impl UnwindSafe for Passwd
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more