use super::WithSelf;
use crate::{error::Result, metadata::MetadataStorage};
use cairo_lang_sierra::{
extensions::{
core::{CoreLibfunc, CoreType},
types::InfoOnlyConcreteType,
},
program_registry::ProgramRegistry,
};
use melior::{
dialect::llvm,
ir::{r#type::IntegerType, Module, Type},
Context,
};
pub fn build<'ctx>(
context: &'ctx Context,
_module: &Module<'ctx>,
_registry: &ProgramRegistry<CoreType, CoreLibfunc>,
_metadata: &mut MetadataStorage,
_info: WithSelf<InfoOnlyConcreteType>,
) -> Result<Type<'ctx>> {
let felt252_ty = IntegerType::new(context, 252).into();
Ok(llvm::r#type::r#struct(
context,
&[felt252_ty, felt252_ty],
false,
))
}