#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct EtcGroupRecord<'a>
{
pub raw_group_name: &'a [u8],
#[allow(missing_docs)]
pub group_identifier: GroupIdentifier,
raw_user_list: &'a [u8],
}
impl<'a> EtcGroupRecord<'a>
{
#[inline(always)]
pub fn has_group_name(&self, group_name: &GroupName) -> bool
{
group_name.equals_raw_name(self.raw_group_name)
}
#[inline(always)]
pub fn group_name(&self) -> Result<GroupName, NulError>
{
Ok(GroupName(CString::new(self.raw_group_name)?))
}
#[inline(always)]
pub fn user_names(&'a self) -> impl Iterator<Item=Result<UserName, NulError>> + 'a
{
self.raw_user_names().map(|raw_user_name| Ok(UserName(CString::new(raw_user_name)?)))
}
#[inline(always)]
pub fn raw_user_names(&self) -> impl Iterator<Item=&'a [u8]>
{
self.raw_user_list.split_bytes(b',')
}
}