#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum CgroupProgramAttachmentOptions
{
AddLeaf,
AddButOverridable,
AddMultiple,
Replace(FileDescriptorCopy<ExtendedBpfProgramFileDescriptor>),
}
impl ProgramAttachmentOptions for CgroupProgramAttachmentOptions
{
#[inline(always)]
fn to_attach_flags(self) -> (BPF_PROG_ATTACH_flags, RawFd)
{
use self::CgroupProgramAttachmentOptions::*;
match self
{
AddLeaf => (BPF_PROG_ATTACH_flags::empty(), 0),
AddButOverridable => (BPF_PROG_ATTACH_flags::BPF_F_ALLOW_OVERRIDE, 0),
AddMultiple => (BPF_PROG_ATTACH_flags::BPF_F_ALLOW_MULTI, 0),
Replace(replace) => (BPF_PROG_ATTACH_flags::BPF_F_ALLOW_MULTI, replace.as_raw_fd()),
}
}
}