#[allow(missing_docs)]
#[derive(Debug)]
#[derive(Deserialize, Serialize)]
pub struct GroupsDiagnostics
{
pub real: GroupIdentifierDiagnostic,
pub effective: GroupIdentifierDiagnostic,
pub saved_set: GroupIdentifierDiagnostic,
pub supplementary: Vec<GroupIdentifierDiagnostic>,
}
impl GroupsDiagnostics
{
fn gather(etc_path: &EtcPath) -> Self
{
let (real, effective, saved_set) = GroupIdentifier::current_real_effective_and_saved_set();
let supplementary_group_identifiers = Groups::current_supplementary_group_identifiers();
Self
{
real: GroupIdentifierDiagnostic::new(etc_path, real),
effective: GroupIdentifierDiagnostic::new(etc_path, effective),
saved_set: GroupIdentifierDiagnostic::new(etc_path, saved_set),
supplementary:
{
let mut supplementary = Vec::with_capacity(supplementary_group_identifiers.len());
for supplementary_group_identifiers in supplementary_group_identifiers
{
supplementary.push(GroupIdentifierDiagnostic::new(etc_path, supplementary_group_identifiers))
}
supplementary
},
}
}
}