Struct 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 unsafe fn new(value: LLVMValueRef) -> Self
 
pub unsafe fn new(value: LLVMValueRef) -> Self
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 represents a constant array of i8s.
Example
use inkwell::context::Context;
let context = Context::create();
let string = context.const_string(b"my_string", false);
assert!(string.is_const_string());sourcepub fn get_string_constant(&self) -> Option<&CStr>
 
pub fn get_string_constant(&self) -> Option<&CStr>
Obtain the string from the ArrayValue if the value points to a constant string.
Example
use inkwell::context::Context;
use std::ffi::CStr;
let context = Context::create();
let string = context.const_string(b"hello!", true);
let result = CStr::from_bytes_with_nul(b"hello!\0").unwrap();
assert_eq!(string.get_string_constant(), Some(result));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 convertible 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 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 ==.source§impl<'ctx> PartialEq for ArrayValue<'ctx>
 
impl<'ctx> PartialEq 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> TryFrom<AggregateValueEnum<'ctx>> for ArrayValue<'ctx>
 
impl<'ctx> TryFrom<AggregateValueEnum<'ctx>> for ArrayValue<'ctx>
source§impl<'ctx> TryFrom<AnyValueEnum<'ctx>> for ArrayValue<'ctx>
 
impl<'ctx> TryFrom<AnyValueEnum<'ctx>> for ArrayValue<'ctx>
source§impl<'ctx> TryFrom<BasicMetadataValueEnum<'ctx>> for ArrayValue<'ctx>
 
impl<'ctx> TryFrom<BasicMetadataValueEnum<'ctx>> for ArrayValue<'ctx>
source§impl<'ctx> TryFrom<BasicValueEnum<'ctx>> for ArrayValue<'ctx>
 
impl<'ctx> TryFrom<BasicValueEnum<'ctx>> for ArrayValue<'ctx>
impl<'ctx> Copy for ArrayValue<'ctx>
impl<'ctx> Eq for ArrayValue<'ctx>
impl<'ctx> StructuralEq for ArrayValue<'ctx>
impl<'ctx> StructuralPartialEq for ArrayValue<'ctx>
Auto Trait Implementations§
impl<'ctx> RefUnwindSafe for ArrayValue<'ctx>
impl<'ctx> !Send for ArrayValue<'ctx>
impl<'ctx> !Sync for ArrayValue<'ctx>
impl<'ctx> Unpin for ArrayValue<'ctx>
impl<'ctx> UnwindSafe for ArrayValue<'ctx>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more