#[derive(Default, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Deserialize, Serialize)]
#[repr(transparent)]
pub struct Migration<POTIC: ProcessOrThreadIdentifierChoice>(Vec<POTIC>);
impl<POTIC: ProcessOrThreadIdentifierChoice> Migration<POTIC>
{
fn leaf_migrate<C: Cgroup>(&self, mount_point: &CgroupMountPoint, cgroup: &Rc<C>) -> io::Result<()>
{
cgroup.write_maximum_descendants(mount_point, MaximumNumber::Finite(0))?;
self.migrate(mount_point, &cgroup);
Ok(())
}
fn migrate<C: Cgroup>(&self, mount_point: &CgroupMountPoint, cgroup: &Rc<C>)
{
for potic in self.0.iter()
{
let _ignored_as_may_have_exited = potic.migrate(mount_point, cgroup);
}
}
}