#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ProgramLoadError
{
Parse(ParseError),
BpfTypeFormatFunctionInformationArrayIsLargerThanU32Max(TryFromIntError),
BpfTypeFormatLineInformationArrayIsLargerThanU32Max(TryFromIntError),
InvalidProgram(Option<CString>),
NotEnoughSpaceForVerifierLogMessages,
OutOfMemoryOrResources,
PermissionDenied,
CouldNotRegisterProgram(FileDescriptorsMapAddError),
}
impl Display for ProgramLoadError
{
#[inline(always)]
fn fmt(&self, f: &mut Formatter) -> fmt::Result
{
Debug::fmt(self, f)
}
}
impl error::Error for ProgramLoadError
{
#[inline(always)]
fn source(&self) -> Option<&(dyn error::Error + 'static)>
{
use self::ProgramLoadError::*;
match self
{
&Parse(ref error) => Some(error),
&BpfTypeFormatFunctionInformationArrayIsLargerThanU32Max(ref error) => Some(error),
&BpfTypeFormatLineInformationArrayIsLargerThanU32Max(ref error) => Some(error),
&CouldNotRegisterProgram(ref error) => Some(error),
_ => None,
}
}
}
impl From<ParseError> for ProgramLoadError
{
#[inline(always)]
fn from(error: ParseError) -> Self
{
ProgramLoadError::Parse(error)
}
}
impl From<FileDescriptorsMapAddError> for ProgramLoadError
{
#[inline(always)]
fn from(error: FileDescriptorsMapAddError) -> Self
{
ProgramLoadError::CouldNotRegisterProgram(error)
}
}