File tree Expand file tree Collapse file tree 3 files changed +62
-30
lines changed
src/LambdaBuffers/Codegen/Rust Expand file tree Collapse file tree 3 files changed +62
-30
lines changed Original file line number Diff line number Diff line change 77 ],
88 "Plutus.V1.Address" : [
99 " plutus-ledger-api" ,
10- " v1::address" ,
10+ " v1" ,
11+ " address" ,
1112 " Address"
1213 ],
1314 "Plutus.V1.Credential" : [
1415 " plutus-ledger-api" ,
15- " v1::address" ,
16+ " v1" ,
17+ " address" ,
1618 " Credential"
1719 ],
1820 "Plutus.V1.StakingCredential" : [
1921 " plutus-ledger-api" ,
20- " v1::address" ,
22+ " v1" ,
23+ " address" ,
2124 " StakingCredential"
2225 ],
2326 "Plutus.V1.PubKeyHash" : [
2427 " plutus-ledger-api" ,
25- " v1::crypto" ,
28+ " v1" ,
29+ " crypto" ,
2630 " Ed25519PubKeyHash"
2731 ],
2832 "Plutus.V1.Bytes" : [
2933 " plutus-ledger-api" ,
30- " v1::crypto" ,
34+ " v1" ,
35+ " crypto" ,
3136 " LedgerBytes"
3237 ],
3338 "Plutus.V1.Interval" : [
3439 " plutus-ledger-api" ,
35- " v1::interval" ,
40+ " v1" ,
41+ " interval" ,
3642 " Interval"
3743 ],
3844 "Plutus.V1.Extended" : [
3945 " plutus-ledger-api" ,
40- " v1::interval" ,
46+ " v1" ,
47+ " interval" ,
4148 " Extended"
4249 ],
4350 "Plutus.V1.LowerBound" : [
4451 " plutus-ledger-api" ,
45- " v1::interval" ,
52+ " v1" ,
53+ " interval" ,
4654 " LowerBound"
4755 ],
4856 "Plutus.V1.UpperBound" : [
4957 " plutus-ledger-api" ,
50- " v1::interval" ,
58+ " v1" ,
59+ " interval" ,
5160 " UpperBound"
5261 ],
5362 "Plutus.V1.POSIXTime" : [
5463 " plutus-ledger-api" ,
55- " v1::transaction" ,
64+ " v1" ,
65+ " transaction" ,
5666 " POSIXTime"
5767 ],
5868 "Plutus.V1.POSIXTimeRange" : [
5969 " plutus-ledger-api" ,
60- " v1::transaction" ,
70+ " v1" ,
71+ " transaction" ,
6172 " POSIXTimeRange"
6273 ],
6374 "Plutus.V1.Value" : [
6475 " plutus-ledger-api" ,
65- " v1::value" ,
76+ " v1" ,
77+ " value" ,
6678 " Value"
6779 ],
6880 "Plutus.V1.CurrencySymbol" : [
6981 " plutus-ledger-api" ,
70- " v1::value" ,
82+ " v1" ,
83+ " value" ,
7184 " CurrencySymbol"
7285 ],
7386 "Plutus.V1.AssetClass" : [
7487 " plutus-ledger-api" ,
75- " v1::value" ,
88+ " v1" ,
89+ " value" ,
7690 " AssetClass"
7791 ],
7892 "Plutus.V1.TokenName" : [
7993 " plutus-ledger-api" ,
80- " v1::value" ,
94+ " v1" ,
95+ " value" ,
8196 " TokenName"
8297 ],
8398 "Plutus.V1.Redeemer" : [
8499 " plutus-ledger-api" ,
85- " v1::redeemer" ,
100+ " v1" ,
101+ " redeemer" ,
86102 " Redeemer"
87103 ],
88104 "Plutus.V1.Datum" : [
89105 " plutus-ledger-api" ,
90- " v1::datum" ,
106+ " v1" ,
107+ " datum" ,
91108 " Datum"
92109 ],
93110 "Plutus.V1.DatumHash" : [
94111 " plutus-ledger-api" ,
95- " v1::datum" ,
112+ " v1" ,
113+ " datum" ,
96114 " DatumHash"
97115 ],
98116 "Plutus.V1.RedeemerHash" : [
99117 " plutus-ledger-api" ,
100- " v1::redeemer" ,
118+ " v1" ,
119+ " redeemer" ,
101120 " RedeemerHash"
102121 ],
103122 "Plutus.V1.ScriptHash" : [
104123 " plutus-ledger-api" ,
105- " v1::script" ,
124+ " v1" ,
125+ " script" ,
106126 " ScriptHash"
107127 ],
108128 "Plutus.V1.TxInInfo" : [
109129 " plutus-ledger-api" ,
110- " v1::transaction" ,
130+ " v1" ,
131+ " transaction" ,
111132 " TxInInfo"
112133 ],
113134 "Plutus.V1.TxId" : [
114135 " plutus-ledger-api" ,
115- " v1::transaction" ,
136+ " v1" ,
137+ " transaction" ,
116138 " TransactionHash"
117139 ],
118140 "Plutus.V1.TxOut" : [
119141 " plutus-ledger-api" ,
120- " v1::transaction" ,
142+ " v1" ,
143+ " transaction" ,
121144 " TransactionOutput"
122145 ],
123146 "Plutus.V1.TxOutRef" : [
124147 " plutus-ledger-api" ,
125- " v1::transaction" ,
148+ " v1" ,
149+ " transaction" ,
126150 " TransactionInput"
127151 ],
128152 "Plutus.V1.Map" : [
132156 ],
133157 "Plutus.V2.TxInInfo" : [
134158 " plutus-ledger-api" ,
135- " v1::transaction" ,
159+ " v1" ,
160+ " transaction" ,
136161 " TxInInfo"
137162 ],
138163 "Plutus.V2.OutputDatum" : [
139164 " plutus-ledger-api" ,
140- " v2::datum" ,
165+ " v2" ,
166+ " datum" ,
141167 " OutputDatum"
142168 ],
143169 "Plutus.V2.TxOut" : [
144170 " plutus-ledger-api" ,
145- " v2::transaction" ,
171+ " v2" ,
172+ " transaction" ,
146173 " TransactionOutput"
147174 ]
148175 },
Original file line number Diff line number Diff line change 4040 ],
4141 "Prelude.Integer" : [
4242 " num_bigint" ,
43- " " ,
4443 " BigInt"
4544 ],
4645 "Prelude.Bool" : [
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ module LambdaBuffers.Codegen.Rust.Config (Config) where
55import Data.Aeson (FromJSON (parseJSON ), ToJSON (toJSON ))
66import Data.Aeson qualified as A
77import Data.Vector qualified as Vector
8+ import Debug.Trace (trace )
89import LambdaBuffers.Codegen.Config qualified as Config
910import LambdaBuffers.Codegen.Rust.Print.Syntax qualified as R
1011
@@ -28,9 +29,14 @@ instance (FromJSON a) => FromJSON (R.Qualified a) where
2829 " Qualified"
2930 ( \ arr -> do
3031 case Vector. toList arr of
32+ [] -> fail " Cannot parse qualified entity, empty list is invalid"
3133 [a] -> R. Qualified'Builtin <$> parseJSON a
32- [cn, mn, a] -> R. Qualified'LibRef <$> parseJSON cn <*> parseJSON mn <*> parseJSON a
33- _ -> fail " Invalid Qualified"
34+ cn : parts -> do
35+ modules <- traverse parseJSON (init (trace (show parts) parts))
36+ R. Qualified'LibRef
37+ <$> parseJSON cn
38+ <*> pure (map R. MkModuleName modules)
39+ <*> parseJSON (last parts)
3440 )
3541 v
3642
You can’t perform that action at this time.
0 commit comments