Skip to content
This repository was archived by the owner on Jun 11, 2026. It is now read-only.

Commit ab4d625

Browse files
style: refactored names, layout, and function matching
Signed-off-by: Jonathan Lim <jonathan.lim.222@gmail.com>
1 parent fc5f18b commit ab4d625

5 files changed

Lines changed: 451 additions & 371 deletions

File tree

crates/uplc/src/machine/cost_model/builtin_costs/builtin_costs_v1.rs

Lines changed: 66 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
use crate::machine::{
2-
cost_model::{
3-
cost_map::CostMap,
4-
costing::{
5-
Cost, OneArgumentCosting, SixArgumentsCosting, ThreeArgumentsCosting,
6-
TwoArgumentsCosting,
1+
use crate::{
2+
builtin::DefaultFunction,
3+
machine::{
4+
cost_model::{
5+
builtin_costs::BuiltinCostModel,
6+
cost_map::CostMap,
7+
costing::{
8+
Cost, OneArgumentCosting, SixArgumentsCosting, ThreeArgumentsCosting,
9+
TwoArgumentsCosting,
10+
},
711
},
12+
ExBudget,
813
},
9-
ExBudget,
1014
};
1115

1216
#[derive(Debug, PartialEq)]
@@ -74,8 +78,8 @@ pub struct BuiltinCostsV1 {
7478
mk_nil_pair_data: OneArgumentCosting,
7579
}
7680

77-
impl BuiltinCostsV1 {
78-
pub fn default() -> Self {
81+
impl BuiltinCostModel for BuiltinCostsV1 {
82+
fn default() -> Self {
7983
Self {
8084
add_integer: TwoArgumentsCosting::new(
8185
TwoArgumentsCosting::max_size(1, 1),
@@ -283,7 +287,7 @@ impl BuiltinCostsV1 {
283287
),
284288
}
285289
}
286-
pub fn initialize_builtin_costs(cost_map: &CostMap) -> Self {
290+
fn initialize(cost_map: &CostMap) -> Self {
287291
Self {
288292
add_integer: TwoArgumentsCosting::new(
289293
TwoArgumentsCosting::max_size(
@@ -625,224 +629,222 @@ impl BuiltinCostsV1 {
625629
),
626630
}
627631
}
628-
}
629632

630-
impl BuiltinCostsV1 {
631-
pub fn get_cost(&self, builtin: &str, args: &[i64]) -> Option<ExBudget> {
633+
fn get_cost(&self, builtin: DefaultFunction, args: &[i64]) -> Option<ExBudget> {
632634
match builtin {
633-
"add_integer" => Some(ExBudget::new(
635+
DefaultFunction::AddInteger => Some(ExBudget::new(
634636
self.add_integer.mem.cost([args[0], args[1]]),
635637
self.add_integer.cpu.cost([args[0], args[1]]),
636638
)),
637-
"subtract_integer" => Some(ExBudget::new(
639+
DefaultFunction::SubtractInteger => Some(ExBudget::new(
638640
self.subtract_integer.mem.cost([args[0], args[1]]),
639641
self.subtract_integer.cpu.cost([args[0], args[1]]),
640642
)),
641-
"multiply_integer" => Some(ExBudget::new(
643+
DefaultFunction::MultiplyInteger => Some(ExBudget::new(
642644
self.multiply_integer.mem.cost([args[0], args[1]]),
643645
self.multiply_integer.cpu.cost([args[0], args[1]]),
644646
)),
645-
"divide_integer" => Some(ExBudget::new(
647+
DefaultFunction::DivideInteger => Some(ExBudget::new(
646648
self.divide_integer.mem.cost([args[0], args[1]]),
647649
self.divide_integer.cpu.cost([args[0], args[1]]),
648650
)),
649-
"quotient_integer" => Some(ExBudget::new(
651+
DefaultFunction::QuotientInteger => Some(ExBudget::new(
650652
self.quotient_integer.mem.cost([args[0], args[1]]),
651653
self.quotient_integer.cpu.cost([args[0], args[1]]),
652654
)),
653-
"remainder_integer" => Some(ExBudget::new(
655+
DefaultFunction::RemainderInteger => Some(ExBudget::new(
654656
self.remainder_integer.mem.cost([args[0], args[1]]),
655657
self.remainder_integer.cpu.cost([args[0], args[1]]),
656658
)),
657-
"mod_integer" => Some(ExBudget::new(
659+
DefaultFunction::ModInteger => Some(ExBudget::new(
658660
self.mod_integer.mem.cost([args[0], args[1]]),
659661
self.mod_integer.cpu.cost([args[0], args[1]]),
660662
)),
661-
"equals_integer" => Some(ExBudget::new(
663+
DefaultFunction::EqualsInteger => Some(ExBudget::new(
662664
self.equals_integer.mem.cost([args[0], args[1]]),
663665
self.equals_integer.cpu.cost([args[0], args[1]]),
664666
)),
665-
"less_than_integer" => Some(ExBudget::new(
667+
DefaultFunction::LessThanInteger => Some(ExBudget::new(
666668
self.less_than_integer.mem.cost([args[0], args[1]]),
667669
self.less_than_integer.cpu.cost([args[0], args[1]]),
668670
)),
669-
"less_than_equals_integer" => Some(ExBudget::new(
671+
DefaultFunction::LessThanEqualsInteger => Some(ExBudget::new(
670672
self.less_than_equals_integer.mem.cost([args[0], args[1]]),
671673
self.less_than_equals_integer.cpu.cost([args[0], args[1]]),
672674
)),
673-
"append_byte_string" => Some(ExBudget::new(
675+
DefaultFunction::AppendByteString => Some(ExBudget::new(
674676
self.append_byte_string.mem.cost([args[0], args[1]]),
675677
self.append_byte_string.cpu.cost([args[0], args[1]]),
676678
)),
677-
"cons_byte_string" => Some(ExBudget::new(
679+
DefaultFunction::ConsByteString => Some(ExBudget::new(
678680
self.cons_byte_string.mem.cost([args[0], args[1]]),
679681
self.cons_byte_string.cpu.cost([args[0], args[1]]),
680682
)),
681-
"slice_byte_string" => Some(ExBudget::new(
683+
DefaultFunction::SliceByteString => Some(ExBudget::new(
682684
self.slice_byte_string.mem.cost([args[0], args[1], args[2]]),
683685
self.slice_byte_string.cpu.cost([args[0], args[1], args[2]]),
684686
)),
685-
"length_of_byte_string" => Some(ExBudget::new(
687+
DefaultFunction::LengthOfByteString => Some(ExBudget::new(
686688
self.length_of_byte_string.mem.cost([args[0]]),
687689
self.length_of_byte_string.cpu.cost([args[0]]),
688690
)),
689-
"index_byte_string" => Some(ExBudget::new(
691+
DefaultFunction::IndexByteString => Some(ExBudget::new(
690692
self.index_byte_string.mem.cost([args[0], args[1]]),
691693
self.index_byte_string.cpu.cost([args[0], args[1]]),
692694
)),
693-
"equals_byte_string" => Some(ExBudget::new(
695+
DefaultFunction::EqualsByteString => Some(ExBudget::new(
694696
self.equals_byte_string.mem.cost([args[0], args[1]]),
695697
self.equals_byte_string.cpu.cost([args[0], args[1]]),
696698
)),
697-
"less_than_byte_string" => Some(ExBudget::new(
699+
DefaultFunction::LessThanByteString => Some(ExBudget::new(
698700
self.less_than_byte_string.mem.cost([args[0], args[1]]),
699701
self.less_than_byte_string.cpu.cost([args[0], args[1]]),
700702
)),
701-
"less_than_equals_byte_string" => Some(ExBudget::new(
703+
DefaultFunction::LessThanEqualsByteString => Some(ExBudget::new(
702704
self.less_than_equals_byte_string
703705
.mem
704706
.cost([args[0], args[1]]),
705707
self.less_than_equals_byte_string
706708
.cpu
707709
.cost([args[0], args[1]]),
708710
)),
709-
"sha2_256" => Some(ExBudget::new(
711+
DefaultFunction::Sha2_256 => Some(ExBudget::new(
710712
self.sha2_256.mem.cost([args[0]]),
711713
self.sha2_256.cpu.cost([args[0]]),
712714
)),
713-
"sha3_256" => Some(ExBudget::new(
715+
DefaultFunction::Sha3_256 => Some(ExBudget::new(
714716
self.sha3_256.mem.cost([args[0]]),
715717
self.sha3_256.cpu.cost([args[0]]),
716718
)),
717-
"blake2b_256" => Some(ExBudget::new(
719+
DefaultFunction::Blake2b_256 => Some(ExBudget::new(
718720
self.blake2b_256.mem.cost([args[0]]),
719721
self.blake2b_256.cpu.cost([args[0]]),
720722
)),
721-
"verify_ed25519_signature" => Some(ExBudget::new(
723+
DefaultFunction::VerifyEd25519Signature => Some(ExBudget::new(
722724
self.verify_ed25519_signature
723725
.mem
724726
.cost([args[0], args[1], args[2]]),
725727
self.verify_ed25519_signature
726728
.cpu
727729
.cost([args[0], args[1], args[2]]),
728730
)),
729-
"append_string" => Some(ExBudget::new(
731+
DefaultFunction::AppendString => Some(ExBudget::new(
730732
self.append_string.mem.cost([args[0], args[1]]),
731733
self.append_string.cpu.cost([args[0], args[1]]),
732734
)),
733-
"equals_string" => Some(ExBudget::new(
735+
DefaultFunction::EqualsString => Some(ExBudget::new(
734736
self.equals_string.mem.cost([args[0], args[1]]),
735737
self.equals_string.cpu.cost([args[0], args[1]]),
736738
)),
737-
"encode_utf8" => Some(ExBudget::new(
739+
DefaultFunction::EncodeUtf8 => Some(ExBudget::new(
738740
self.encode_utf8.mem.cost([args[0]]),
739741
self.encode_utf8.cpu.cost([args[0]]),
740742
)),
741-
"decode_utf8" => Some(ExBudget::new(
743+
DefaultFunction::DecodeUtf8 => Some(ExBudget::new(
742744
self.decode_utf8.mem.cost([args[0]]),
743745
self.decode_utf8.cpu.cost([args[0]]),
744746
)),
745-
"if_then_else" => Some(ExBudget::new(
747+
DefaultFunction::IfThenElse => Some(ExBudget::new(
746748
self.if_then_else.mem.cost([args[0], args[1], args[2]]),
747749
self.if_then_else.cpu.cost([args[0], args[1], args[2]]),
748750
)),
749-
"choose_unit" => Some(ExBudget::new(
751+
DefaultFunction::ChooseUnit => Some(ExBudget::new(
750752
self.choose_unit.mem.cost([args[0], args[1]]),
751753
self.choose_unit.cpu.cost([args[0], args[1]]),
752754
)),
753-
"trace" => Some(ExBudget::new(
755+
DefaultFunction::Trace => Some(ExBudget::new(
754756
self.trace.mem.cost([args[0], args[1]]),
755757
self.trace.cpu.cost([args[0], args[1]]),
756758
)),
757-
"fst_pair" => Some(ExBudget::new(
759+
DefaultFunction::FstPair => Some(ExBudget::new(
758760
self.fst_pair.mem.cost([args[0]]),
759761
self.fst_pair.cpu.cost([args[0]]),
760762
)),
761-
"snd_pair" => Some(ExBudget::new(
763+
DefaultFunction::SndPair => Some(ExBudget::new(
762764
self.snd_pair.mem.cost([args[0]]),
763765
self.snd_pair.cpu.cost([args[0]]),
764766
)),
765-
"choose_list" => Some(ExBudget::new(
767+
DefaultFunction::ChooseList => Some(ExBudget::new(
766768
self.choose_list.mem.cost([args[0], args[1], args[2]]),
767769
self.choose_list.cpu.cost([args[0], args[1], args[2]]),
768770
)),
769-
"mk_cons" => Some(ExBudget::new(
771+
DefaultFunction::MkCons => Some(ExBudget::new(
770772
self.mk_cons.mem.cost([args[0], args[1]]),
771773
self.mk_cons.cpu.cost([args[0], args[1]]),
772774
)),
773-
"head_list" => Some(ExBudget::new(
775+
DefaultFunction::HeadList => Some(ExBudget::new(
774776
self.head_list.mem.cost([args[0]]),
775777
self.head_list.cpu.cost([args[0]]),
776778
)),
777-
"tail_list" => Some(ExBudget::new(
779+
DefaultFunction::TailList => Some(ExBudget::new(
778780
self.tail_list.mem.cost([args[0]]),
779781
self.tail_list.cpu.cost([args[0]]),
780782
)),
781-
"null_list" => Some(ExBudget::new(
783+
DefaultFunction::NullList => Some(ExBudget::new(
782784
self.null_list.mem.cost([args[0]]),
783785
self.null_list.cpu.cost([args[0]]),
784786
)),
785-
"choose_data" => Some(ExBudget::new(
787+
DefaultFunction::ChooseData => Some(ExBudget::new(
786788
self.choose_data
787789
.mem
788790
.cost([args[0], args[1], args[2], args[3], args[4], args[5]]),
789791
self.choose_data
790792
.cpu
791793
.cost([args[0], args[1], args[2], args[3], args[4], args[5]]),
792794
)),
793-
"constr_data" => Some(ExBudget::new(
795+
DefaultFunction::ConstrData => Some(ExBudget::new(
794796
self.constr_data.mem.cost([args[0], args[1]]),
795797
self.constr_data.cpu.cost([args[0], args[1]]),
796798
)),
797-
"map_data" => Some(ExBudget::new(
799+
DefaultFunction::MapData => Some(ExBudget::new(
798800
self.map_data.mem.cost([args[0]]),
799801
self.map_data.cpu.cost([args[0]]),
800802
)),
801-
"list_data" => Some(ExBudget::new(
803+
DefaultFunction::ListData => Some(ExBudget::new(
802804
self.list_data.mem.cost([args[0]]),
803805
self.list_data.cpu.cost([args[0]]),
804806
)),
805-
"i_data" => Some(ExBudget::new(
807+
DefaultFunction::IData => Some(ExBudget::new(
806808
self.i_data.mem.cost([args[0]]),
807809
self.i_data.cpu.cost([args[0]]),
808810
)),
809-
"b_data" => Some(ExBudget::new(
811+
DefaultFunction::BData => Some(ExBudget::new(
810812
self.b_data.mem.cost([args[0]]),
811813
self.b_data.cpu.cost([args[0]]),
812814
)),
813-
"un_constr_data" => Some(ExBudget::new(
815+
DefaultFunction::UnConstrData => Some(ExBudget::new(
814816
self.un_constr_data.mem.cost([args[0]]),
815817
self.un_constr_data.cpu.cost([args[0]]),
816818
)),
817-
"un_map_data" => Some(ExBudget::new(
819+
DefaultFunction::UnMapData => Some(ExBudget::new(
818820
self.un_map_data.mem.cost([args[0]]),
819821
self.un_map_data.cpu.cost([args[0]]),
820822
)),
821-
"un_list_data" => Some(ExBudget::new(
823+
DefaultFunction::UnListData => Some(ExBudget::new(
822824
self.un_list_data.mem.cost([args[0]]),
823825
self.un_list_data.cpu.cost([args[0]]),
824826
)),
825-
"un_i_data" => Some(ExBudget::new(
827+
DefaultFunction::UnIData => Some(ExBudget::new(
826828
self.un_i_data.mem.cost([args[0]]),
827829
self.un_i_data.cpu.cost([args[0]]),
828830
)),
829-
"un_b_data" => Some(ExBudget::new(
831+
DefaultFunction::UnBData => Some(ExBudget::new(
830832
self.un_b_data.mem.cost([args[0]]),
831833
self.un_b_data.cpu.cost([args[0]]),
832834
)),
833-
"equals_data" => Some(ExBudget::new(
835+
DefaultFunction::EqualsData => Some(ExBudget::new(
834836
self.equals_data.mem.cost([args[0], args[1]]),
835837
self.equals_data.cpu.cost([args[0], args[1]]),
836838
)),
837-
"mk_pair_data" => Some(ExBudget::new(
839+
DefaultFunction::MkPairData => Some(ExBudget::new(
838840
self.mk_pair_data.mem.cost([args[0], args[1]]),
839841
self.mk_pair_data.cpu.cost([args[0], args[1]]),
840842
)),
841-
"mk_nil_data" => Some(ExBudget::new(
843+
DefaultFunction::MkNilData => Some(ExBudget::new(
842844
self.mk_nil_data.mem.cost([args[0]]),
843845
self.mk_nil_data.cpu.cost([args[0]]),
844846
)),
845-
"mk_nil_pair_data" => Some(ExBudget::new(
847+
DefaultFunction::MkNilPairData => Some(ExBudget::new(
846848
self.mk_nil_pair_data.mem.cost([args[0]]),
847849
self.mk_nil_pair_data.cpu.cost([args[0]]),
848850
)),

0 commit comments

Comments
 (0)