use libcgroups::common::CgroupManager;
use oci_spec::runtime::Spec;
use std::os::unix::prelude::RawFd;
use std::path::PathBuf;
use crate::rootless::Rootless;
use crate::{container::Container, notify_socket::NotifyListener, syscall::Syscall};
#[derive(Debug, Copy, Clone)]
pub enum ContainerType {
InitContainer,
TenantContainer { exec_notify_fd: RawFd },
}
pub struct ContainerArgs<'a> {
pub container_type: ContainerType,
pub syscall: &'a dyn Syscall,
pub spec: &'a Spec,
pub rootfs: &'a PathBuf,
pub console_socket: Option<RawFd>,
pub notify_socket: NotifyListener,
pub preserve_fds: i32,
pub container: &'a Option<Container>,
pub rootless: &'a Option<Rootless<'a>>,
pub cgroup_manager: Box<dyn CgroupManager>,
pub detached: bool,
}