[][src]Enum inkwell::module::FlagBehavior

pub enum FlagBehavior {
    Error,
    Warning,
    Require,
    Override,
    Append,
    AppendUnique,
}

Defines the operational behavior for a module wide flag. This documenation comes directly from the LLVM docs

Variants

Error

Emits an error if two values disagree, otherwise the resulting value is that of the operands.

Warning

Emits a warning if two values disagree. The result value will be the operand for the flag from the first module being linked.

Require

Adds a requirement that another module flag be present and have a specified value after linking is performed. The value must be a metadata pair, where the first element of the pair is the ID of the module flag to be restricted, and the second element of the pair is the value the module flag should be restricted to. This behavior can be used to restrict the allowable results (via triggering of an error) of linking IDs with the Override behavior.

Override

Uses the specified value, regardless of the behavior or value of the other module. If both modules specify Override, but the values differ, an error will be emitted.

Append

Appends the two values, which are required to be metadata nodes.

AppendUnique

Appends the two values, which are required to be metadata nodes. However, duplicate entries in the second list are dropped during the append operation.

Trait Implementations

impl Eq for FlagBehavior[src]

impl Clone for FlagBehavior[src]

impl PartialOrd<FlagBehavior> for FlagBehavior[src]

impl Ord for FlagBehavior[src]

impl PartialEq<FlagBehavior> for FlagBehavior[src]

impl Copy for FlagBehavior[src]

impl Debug for FlagBehavior[src]

Auto Trait Implementations

impl Sync for FlagBehavior

impl Send for FlagBehavior

impl Unpin for FlagBehavior

impl UnwindSafe for FlagBehavior

impl RefUnwindSafe for FlagBehavior

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]