pub trait ArrayCodegen: Clone {
// Provided methods
fn array_type<'c>(
&self,
_session: &TypingSession<'c, '_>,
elem_ty: BasicTypeEnum<'c>,
size: u64,
) -> impl BasicType<'c> { ... }
fn emit_array_value<'c, H: HugrView<Node = Node>>(
&self,
ctx: &mut EmitFuncContext<'c, '_, H>,
value: &ArrayValue,
) -> Result<BasicValueEnum<'c>> { ... }
fn emit_array_op<'c, H: HugrView<Node = Node>>(
&self,
ctx: &mut EmitFuncContext<'c, '_, H>,
op: ArrayOp,
inputs: Vec<BasicValueEnum<'c>>,
outputs: RowPromise<'c>,
) -> Result<()> { ... }
fn emit_array_repeat<'c, H: HugrView<Node = Node>>(
&self,
ctx: &mut EmitFuncContext<'c, '_, H>,
op: ArrayRepeat,
func: BasicValueEnum<'c>,
) -> Result<BasicValueEnum<'c>> { ... }
fn emit_array_scan<'c, H: HugrView<Node = Node>>(
&self,
ctx: &mut EmitFuncContext<'c, '_, H>,
op: ArrayScan,
src_array: BasicValueEnum<'c>,
func: BasicValueEnum<'c>,
initial_accs: &[BasicValueEnum<'c>],
) -> Result<(BasicValueEnum<'c>, Vec<BasicValueEnum<'c>>)> { ... }
}
๐Deprecated: Use
hugr_llvm::extension::collections::array
insteadExpand description
A helper trait for customising the lowering of hugr_core::std_extensions::collections::array types, hugr_core::ops::constant::CustomConsts, and ops.
Provided Methodsยง
Sourcefn array_type<'c>(
&self,
_session: &TypingSession<'c, '_>,
elem_ty: BasicTypeEnum<'c>,
size: u64,
) -> impl BasicType<'c>
๐Deprecated: Use hugr_llvm::extension::collections::array
instead
fn array_type<'c>( &self, _session: &TypingSession<'c, '_>, elem_ty: BasicTypeEnum<'c>, size: u64, ) -> impl BasicType<'c>
hugr_llvm::extension::collections::array
insteadReturn the llvm type of hugr_core::std_extensions::collections::array::ARRAY_TYPENAME.
Sourcefn emit_array_value<'c, H: HugrView<Node = Node>>(
&self,
ctx: &mut EmitFuncContext<'c, '_, H>,
value: &ArrayValue,
) -> Result<BasicValueEnum<'c>>
๐Deprecated: Use hugr_llvm::extension::collections::array
instead
fn emit_array_value<'c, H: HugrView<Node = Node>>( &self, ctx: &mut EmitFuncContext<'c, '_, H>, value: &ArrayValue, ) -> Result<BasicValueEnum<'c>>
hugr_llvm::extension::collections::array
insteadSourcefn emit_array_op<'c, H: HugrView<Node = Node>>(
&self,
ctx: &mut EmitFuncContext<'c, '_, H>,
op: ArrayOp,
inputs: Vec<BasicValueEnum<'c>>,
outputs: RowPromise<'c>,
) -> Result<()>
๐Deprecated: Use hugr_llvm::extension::collections::array
instead
fn emit_array_op<'c, H: HugrView<Node = Node>>( &self, ctx: &mut EmitFuncContext<'c, '_, H>, op: ArrayOp, inputs: Vec<BasicValueEnum<'c>>, outputs: RowPromise<'c>, ) -> Result<()>
hugr_llvm::extension::collections::array
insteadSourcefn emit_array_repeat<'c, H: HugrView<Node = Node>>(
&self,
ctx: &mut EmitFuncContext<'c, '_, H>,
op: ArrayRepeat,
func: BasicValueEnum<'c>,
) -> Result<BasicValueEnum<'c>>
๐Deprecated: Use hugr_llvm::extension::collections::array
instead
fn emit_array_repeat<'c, H: HugrView<Node = Node>>( &self, ctx: &mut EmitFuncContext<'c, '_, H>, op: ArrayRepeat, func: BasicValueEnum<'c>, ) -> Result<BasicValueEnum<'c>>
hugr_llvm::extension::collections::array
insteadSourcefn emit_array_scan<'c, H: HugrView<Node = Node>>(
&self,
ctx: &mut EmitFuncContext<'c, '_, H>,
op: ArrayScan,
src_array: BasicValueEnum<'c>,
func: BasicValueEnum<'c>,
initial_accs: &[BasicValueEnum<'c>],
) -> Result<(BasicValueEnum<'c>, Vec<BasicValueEnum<'c>>)>
๐Deprecated: Use hugr_llvm::extension::collections::array
instead
fn emit_array_scan<'c, H: HugrView<Node = Node>>( &self, ctx: &mut EmitFuncContext<'c, '_, H>, op: ArrayScan, src_array: BasicValueEnum<'c>, func: BasicValueEnum<'c>, initial_accs: &[BasicValueEnum<'c>], ) -> Result<(BasicValueEnum<'c>, Vec<BasicValueEnum<'c>>)>
hugr_llvm::extension::collections::array
insteadEmit a hugr_core::std_extensions::collections::array::ArrayScan op.
Returns the resulting array and the final values of the accumulators.
Dyn Compatibilityยง
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.