Enum ExternalFunctionHandling

Source
pub enum ExternalFunctionHandling {
    IgnoreAndReturnUntainted,
    IgnoreAndReturnTainted,
    PropagateTaintShallow,
    PropagateTaintDeep,
    Panic,
}

Variants§

§

IgnoreAndReturnUntainted

Ignore the call to the function, and assume it returns fully untainted data.

§

IgnoreAndReturnTainted

Ignore the call to the function, and assume it returns tainted data.

§

PropagateTaintShallow

Assume that the function returns tainted data if and only if any of its parameters are tainted. This looks only at the shallow types of parameters – for instance, for pointers, it looks only at whether the pointer value itself is tainted, not whether any of the pointed-to data is tainted. Likewise, this only taints the return value shallowly – if the return value is a pointer, this will taint the pointer value itself, but not any of the pointed-to data.

§

PropagateTaintDeep

Assume that the function returns tainted data if and only if any of its parameters are tainted or point to tainted data. This looks at the deep types of parameters – for instance, for pointers, it looks at whether the pointer value itself or any of the pointed-to data is tainted, potentially recursively. Likewise, this taints the return value deeply – if the return value is a pointer, this will taint not only the pointer value itself, but also all of the data it points to.

§

Panic

Panic if we encounter a call to this function.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.