Struct llvm_plugin_inkwell::values::ArrayValue
source · pub struct ArrayValue<'ctx> { /* private fields */ }Expand description
An ArrayValue is a block of contiguous constants or variables.
Implementations§
source§impl<'ctx> ArrayValue<'ctx>
impl<'ctx> ArrayValue<'ctx>
sourcepub fn get_name(&self) -> &CStr
pub fn get_name(&self) -> &CStr
Get name of the ArrayValue. If the value is a constant, this will
return an empty string.
sourcepub fn print_to_stderr(self)
pub fn print_to_stderr(self)
Prints this ArrayValue to standard error.
sourcepub fn as_instruction(self) -> Option<InstructionValue<'ctx>>
pub fn as_instruction(self) -> Option<InstructionValue<'ctx>>
Attempt to convert this ArrayValue to an InstructionValue, if possible.
sourcepub fn replace_all_uses_with(self, other: ArrayValue<'ctx>)
pub fn replace_all_uses_with(self, other: ArrayValue<'ctx>)
Replaces all uses of this value with another value of the same type. If used incorrectly this may result in invalid IR.
sourcepub fn is_const(self) -> bool
pub fn is_const(self) -> bool
Determines whether or not an ArrayValue is a constant.
Example
use inkwell::context::Context;
let context = Context::create();
let i64_type = context.i64_type();
let i64_val = i64_type.const_int(23, false);
let array_val = i64_type.const_array(&[i64_val]);
assert!(array_val.is_const());sourcepub fn is_const_string(self) -> bool
pub fn is_const_string(self) -> bool
Determines whether or not an ArrayValue is a constant string.
sourcepub fn is_const_data_array(self) -> bool
pub fn is_const_data_array(self) -> bool
Determines whether or not an ArrayValue is a constant data array.
sourcepub fn get_string_constant(&self) -> Option<&[u8]>
pub fn get_string_constant(&self) -> Option<&[u8]>
Returns a string constant if the ArrayValue is one, None otherwise.
Trait Implementations§
source§impl<'ctx> AggregateValue<'ctx> for ArrayValue<'ctx>
impl<'ctx> AggregateValue<'ctx> for ArrayValue<'ctx>
source§fn as_aggregate_value_enum(&self) -> AggregateValueEnum<'ctx>
fn as_aggregate_value_enum(&self) -> AggregateValueEnum<'ctx>
Returns an enum containing a typed version of the
AggregateValue.source§impl<'ctx> AnyValue<'ctx> for ArrayValue<'ctx>
impl<'ctx> AnyValue<'ctx> for ArrayValue<'ctx>
source§fn as_any_value_enum(&self) -> AnyValueEnum<'ctx>
fn as_any_value_enum(&self) -> AnyValueEnum<'ctx>
Returns an enum containing a typed version of
AnyValue.source§fn print_to_string(&self) -> LLVMString
fn print_to_string(&self) -> LLVMString
Prints a value to a
LLVMStringsource§impl AsValueRef for ArrayValue<'_>
impl AsValueRef for ArrayValue<'_>
fn as_value_ref(&self) -> LLVMValueRef
source§impl<'ctx> BasicValue<'ctx> for ArrayValue<'ctx>
impl<'ctx> BasicValue<'ctx> for ArrayValue<'ctx>
source§fn as_basic_value_enum(&self) -> BasicValueEnum<'ctx>
fn as_basic_value_enum(&self) -> BasicValueEnum<'ctx>
Returns an enum containing a typed version of the
BasicValue.source§fn as_instruction_value(&self) -> Option<InstructionValue<'ctx>>
fn as_instruction_value(&self) -> Option<InstructionValue<'ctx>>
Most
BasicValues are the byproduct of an instruction
and so are convertable into an InstructionValuefn get_first_use(&self) -> Option<BasicValueUse<'_>>
source§impl<'ctx> Clone for ArrayValue<'ctx>
impl<'ctx> Clone for ArrayValue<'ctx>
source§fn clone(&self) -> ArrayValue<'ctx>
fn clone(&self) -> ArrayValue<'ctx>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for ArrayValue<'_>
impl Debug for ArrayValue<'_>
source§impl Display for ArrayValue<'_>
impl Display for ArrayValue<'_>
source§impl<'ctx> From<ArrayValue<'ctx>> for AggregateValueEnum<'ctx>
impl<'ctx> From<ArrayValue<'ctx>> for AggregateValueEnum<'ctx>
source§fn from(value: ArrayValue<'_>) -> AggregateValueEnum<'_>
fn from(value: ArrayValue<'_>) -> AggregateValueEnum<'_>
Converts to this type from the input type.
source§impl<'ctx> From<ArrayValue<'ctx>> for AnyValueEnum<'ctx>
impl<'ctx> From<ArrayValue<'ctx>> for AnyValueEnum<'ctx>
source§fn from(value: ArrayValue<'_>) -> AnyValueEnum<'_>
fn from(value: ArrayValue<'_>) -> AnyValueEnum<'_>
Converts to this type from the input type.
source§impl<'ctx> From<ArrayValue<'ctx>> for BasicMetadataValueEnum<'ctx>
impl<'ctx> From<ArrayValue<'ctx>> for BasicMetadataValueEnum<'ctx>
source§fn from(value: ArrayValue<'_>) -> BasicMetadataValueEnum<'_>
fn from(value: ArrayValue<'_>) -> BasicMetadataValueEnum<'_>
Converts to this type from the input type.
source§impl<'ctx> From<ArrayValue<'ctx>> for BasicValueEnum<'ctx>
impl<'ctx> From<ArrayValue<'ctx>> for BasicValueEnum<'ctx>
source§fn from(value: ArrayValue<'_>) -> BasicValueEnum<'_>
fn from(value: ArrayValue<'_>) -> BasicValueEnum<'_>
Converts to this type from the input type.
source§impl<'ctx> Hash for ArrayValue<'ctx>
impl<'ctx> Hash for ArrayValue<'ctx>
source§impl<'ctx> PartialEq<AggregateValueEnum<'ctx>> for ArrayValue<'ctx>
impl<'ctx> PartialEq<AggregateValueEnum<'ctx>> for ArrayValue<'ctx>
source§fn eq(&self, other: &AggregateValueEnum<'ctx>) -> bool
fn eq(&self, other: &AggregateValueEnum<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<'ctx> PartialEq<AnyValueEnum<'ctx>> for ArrayValue<'ctx>
impl<'ctx> PartialEq<AnyValueEnum<'ctx>> for ArrayValue<'ctx>
source§fn eq(&self, other: &AnyValueEnum<'ctx>) -> bool
fn eq(&self, other: &AnyValueEnum<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<'ctx> PartialEq<ArrayValue<'ctx>> for AggregateValueEnum<'ctx>
impl<'ctx> PartialEq<ArrayValue<'ctx>> for AggregateValueEnum<'ctx>
source§fn eq(&self, other: &ArrayValue<'ctx>) -> bool
fn eq(&self, other: &ArrayValue<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<'ctx> PartialEq<ArrayValue<'ctx>> for AnyValueEnum<'ctx>
impl<'ctx> PartialEq<ArrayValue<'ctx>> for AnyValueEnum<'ctx>
source§fn eq(&self, other: &ArrayValue<'ctx>) -> bool
fn eq(&self, other: &ArrayValue<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<'ctx> PartialEq<ArrayValue<'ctx>> for ArrayValue<'ctx>
impl<'ctx> PartialEq<ArrayValue<'ctx>> for ArrayValue<'ctx>
source§fn eq(&self, other: &ArrayValue<'ctx>) -> bool
fn eq(&self, other: &ArrayValue<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<'ctx> PartialEq<ArrayValue<'ctx>> for BasicMetadataValueEnum<'ctx>
impl<'ctx> PartialEq<ArrayValue<'ctx>> for BasicMetadataValueEnum<'ctx>
source§fn eq(&self, other: &ArrayValue<'ctx>) -> bool
fn eq(&self, other: &ArrayValue<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<'ctx> PartialEq<ArrayValue<'ctx>> for BasicValueEnum<'ctx>
impl<'ctx> PartialEq<ArrayValue<'ctx>> for BasicValueEnum<'ctx>
source§fn eq(&self, other: &ArrayValue<'ctx>) -> bool
fn eq(&self, other: &ArrayValue<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<'ctx> PartialEq<BasicMetadataValueEnum<'ctx>> for ArrayValue<'ctx>
impl<'ctx> PartialEq<BasicMetadataValueEnum<'ctx>> for ArrayValue<'ctx>
source§fn eq(&self, other: &BasicMetadataValueEnum<'ctx>) -> bool
fn eq(&self, other: &BasicMetadataValueEnum<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<'ctx> PartialEq<BasicValueEnum<'ctx>> for ArrayValue<'ctx>
impl<'ctx> PartialEq<BasicValueEnum<'ctx>> for ArrayValue<'ctx>
source§fn eq(&self, other: &BasicValueEnum<'ctx>) -> bool
fn eq(&self, other: &BasicValueEnum<'ctx>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.