// TODO: put layered environment here? use inkwell::{ types::{BasicMetadataTypeEnum, BasicTypeEnum}, values::{BasicMetadataValueEnum, BasicValueEnum}, }; pub fn convert_type_to_metadata_type( a: BasicTypeEnum, ) -> BasicMetadataTypeEnum { use BasicMetadataTypeEnum as B; use BasicTypeEnum as A; match a { A::IntType(a) => B::IntType(a), A::ArrayType(a) => B::ArrayType(a), A::FloatType(a) => B::FloatType(a), A::StructType(a) => B::StructType(a), A::VectorType(a) => B::VectorType(a), A::PointerType(a) => B::PointerType(a), } } pub fn convert_value_to_metadata_value( a: BasicValueEnum, ) -> BasicMetadataValueEnum { use BasicMetadataValueEnum as B; use BasicValueEnum as A; match a { A::ArrayValue(a) => B::ArrayValue(a), A::IntValue(a) => B::IntValue(a), A::FloatValue(a) => B::FloatValue(a), A::PointerValue(a) => B::PointerValue(a), A::StructValue(a) => B::StructValue(a), A::VectorValue(a) => B::VectorValue(a), } }