Trait ArrayCodegen

Source
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 instead
Expand 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ยง

Source

fn array_type<'c>( &self, _session: &TypingSession<'c, '_>, elem_ty: BasicTypeEnum<'c>, size: u64, ) -> impl BasicType<'c>

๐Ÿ‘ŽDeprecated: Use hugr_llvm::extension::collections::array instead
Source

fn 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
Source

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<()>

๐Ÿ‘ŽDeprecated: Use hugr_llvm::extension::collections::array instead
Source

fn 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
Source

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 instead

Emit 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.

Implementorsยง