start making data with builtins

This commit is contained in:
Kasey White 2022-08-26 03:51:50 -04:00 committed by Kasey White
parent 1a09a34873
commit 00cc9f93d5
4 changed files with 15 additions and 7 deletions

View File

@ -1,5 +1,5 @@
(program (program
1.0.0 1.0.0
(con (pair bool integer) (True, 1)) [(builtin iData) (con integer 1)]
) )

View File

@ -823,7 +823,10 @@ impl BuiltinCosts {
DefaultFunction::ConstrData => todo!(), DefaultFunction::ConstrData => todo!(),
DefaultFunction::MapData => todo!(), DefaultFunction::MapData => todo!(),
DefaultFunction::ListData => todo!(), DefaultFunction::ListData => todo!(),
DefaultFunction::IData => todo!(), DefaultFunction::IData => ExBudget {
mem: self.i_data.mem.cost(args[0].to_ex_mem()),
cpu: self.i_data.cpu.cost(args[0].to_ex_mem()),
},
DefaultFunction::BData => todo!(), DefaultFunction::BData => todo!(),
DefaultFunction::UnConstrData => ExBudget { DefaultFunction::UnConstrData => ExBudget {
mem: self.un_constr_data.mem.cost(args[0].to_ex_mem()), mem: self.un_constr_data.mem.cost(args[0].to_ex_mem()),

View File

@ -118,7 +118,7 @@ impl DefaultFunction {
DefaultFunction::ConstrData => todo!(), DefaultFunction::ConstrData => todo!(),
DefaultFunction::MapData => todo!(), DefaultFunction::MapData => todo!(),
DefaultFunction::ListData => todo!(), DefaultFunction::ListData => todo!(),
DefaultFunction::IData => todo!(), DefaultFunction::IData => 1,
DefaultFunction::BData => todo!(), DefaultFunction::BData => todo!(),
DefaultFunction::UnConstrData => 1, DefaultFunction::UnConstrData => 1,
DefaultFunction::UnMapData => 1, DefaultFunction::UnMapData => 1,
@ -177,7 +177,7 @@ impl DefaultFunction {
DefaultFunction::ConstrData => todo!(), DefaultFunction::ConstrData => todo!(),
DefaultFunction::MapData => todo!(), DefaultFunction::MapData => todo!(),
DefaultFunction::ListData => todo!(), DefaultFunction::ListData => todo!(),
DefaultFunction::IData => todo!(), DefaultFunction::IData => 0,
DefaultFunction::BData => todo!(), DefaultFunction::BData => todo!(),
DefaultFunction::UnConstrData => 0, DefaultFunction::UnConstrData => 0,
DefaultFunction::UnMapData => 0, DefaultFunction::UnMapData => 0,
@ -280,7 +280,7 @@ impl DefaultFunction {
DefaultFunction::ConstrData => todo!(), DefaultFunction::ConstrData => todo!(),
DefaultFunction::MapData => todo!(), DefaultFunction::MapData => todo!(),
DefaultFunction::ListData => todo!(), DefaultFunction::ListData => todo!(),
DefaultFunction::IData => todo!(), DefaultFunction::IData => arg.expect_type(Type::Integer),
DefaultFunction::BData => todo!(), DefaultFunction::BData => todo!(),
DefaultFunction::UnConstrData => arg.expect_type(Type::Data), DefaultFunction::UnConstrData => arg.expect_type(Type::Data),
DefaultFunction::UnMapData => arg.expect_type(Type::Data), DefaultFunction::UnMapData => arg.expect_type(Type::Data),
@ -627,7 +627,12 @@ impl DefaultFunction {
DefaultFunction::ConstrData => todo!(), DefaultFunction::ConstrData => todo!(),
DefaultFunction::MapData => todo!(), DefaultFunction::MapData => todo!(),
DefaultFunction::ListData => todo!(), DefaultFunction::ListData => todo!(),
DefaultFunction::IData => todo!(), DefaultFunction::IData => match &args[0] {
Value::Con(Constant::Integer(i)) => Ok(Value::Con(Constant::Data(
PlutusData::BigInt(BigInt::Int((*i as i64).try_into().unwrap())),
))),
_ => unreachable!(),
},
DefaultFunction::BData => todo!(), DefaultFunction::BData => todo!(),
DefaultFunction::UnConstrData => match &args[0] { DefaultFunction::UnConstrData => match &args[0] {
Value::Con(Constant::Data(PlutusData::Constr(c))) => { Value::Con(Constant::Data(PlutusData::Constr(c))) => {

View File

@ -202,7 +202,7 @@ impl Constant {
.append(RcDoc::text(",")) .append(RcDoc::text(","))
.append(right.to_doc_list()) .append(right.to_doc_list())
.append(RcDoc::text(")")), .append(RcDoc::text(")")),
Constant::Data(_) => todo!(), d @ Constant::Data(_) => RcDoc::text("data ").append(d.to_doc_list()),
} }
} }