16 lines
572 B
Rust
16 lines
572 B
Rust
use super::{parsed, passwd};
|
|
use crate::platform::types::*;
|
|
|
|
pub fn split(line: &mut [u8]) -> Option<passwd> {
|
|
let mut parts = line.split_mut(|&c| c == b'\0');
|
|
Some(passwd {
|
|
pw_name: parts.next()?.as_mut_ptr() as *mut c_char,
|
|
pw_passwd: parts.next()?.as_mut_ptr() as *mut c_char,
|
|
pw_uid: parsed(parts.next())?,
|
|
pw_gid: parsed(parts.next())?,
|
|
pw_gecos: parts.next()?.as_mut_ptr() as *mut c_char,
|
|
pw_dir: parts.next()?.as_mut_ptr() as *mut c_char,
|
|
pw_shell: parts.next()?.as_mut_ptr() as *mut c_char,
|
|
})
|
|
}
|