Enum inkwell::module::FlagBehavior
source · pub enum FlagBehavior {
Error,
Warning,
Require,
Override,
Append,
AppendUnique,
}
Expand description
Defines the operational behavior for a module wide flag. This documentation 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§
source§impl Clone for FlagBehavior
impl Clone for FlagBehavior
source§fn clone(&self) -> FlagBehavior
fn clone(&self) -> FlagBehavior
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for FlagBehavior
impl Debug for FlagBehavior
source§impl From<LLVMModuleFlagBehavior> for FlagBehavior
impl From<LLVMModuleFlagBehavior> for FlagBehavior
source§fn from(src: LLVMModuleFlagBehavior) -> Self
fn from(src: LLVMModuleFlagBehavior) -> Self
source§impl Hash for FlagBehavior
impl Hash for FlagBehavior
source§impl Into<LLVMModuleFlagBehavior> for FlagBehavior
impl Into<LLVMModuleFlagBehavior> for FlagBehavior
source§fn into(self) -> LLVMModuleFlagBehavior
fn into(self) -> LLVMModuleFlagBehavior
source§impl Ord for FlagBehavior
impl Ord for FlagBehavior
source§fn cmp(&self, other: &FlagBehavior) -> Ordering
fn cmp(&self, other: &FlagBehavior) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for FlagBehavior
impl PartialEq for FlagBehavior
source§fn eq(&self, other: &FlagBehavior) -> bool
fn eq(&self, other: &FlagBehavior) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for FlagBehavior
impl PartialOrd for FlagBehavior
source§fn partial_cmp(&self, other: &FlagBehavior) -> Option<Ordering>
fn partial_cmp(&self, other: &FlagBehavior) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more