fix: casting a field type to Data with expect and traces on was assuming the raw Data was of type constr
This commit is contained in:
parent
075668b52e
commit
a5a0734629
|
@ -1192,6 +1192,8 @@ pub fn unknown_data_to_type_debug(
|
||||||
.apply(term)
|
.apply(term)
|
||||||
} else if field_type.is_ml_result() {
|
} else if field_type.is_ml_result() {
|
||||||
panic!("ML Result not supported")
|
panic!("ML Result not supported")
|
||||||
|
} else if field_type.is_data() {
|
||||||
|
term
|
||||||
} else {
|
} else {
|
||||||
Term::var("__val")
|
Term::var("__val")
|
||||||
.delayed_choose_data(
|
.delayed_choose_data(
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
pub type PublicKeyHash =
|
||||||
|
ByteArray
|
||||||
|
|
||||||
|
pub type ByteArrayDataPair {
|
||||||
|
key: ByteArray,
|
||||||
|
value: Data,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub type ReferenceDatum {
|
||||||
|
data: List<ByteArrayDataPair>,
|
||||||
|
controller: PublicKeyHash,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn find_data(datas: List<ByteArrayDataPair>, key: ByteArray) -> Data {
|
||||||
|
when datas is {
|
||||||
|
[] -> fail @"Data Structure Not Found"
|
||||||
|
[d, ..ds] ->
|
||||||
|
if d.key == key {
|
||||||
|
d.value
|
||||||
|
} else {
|
||||||
|
find_data(ds, key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
test thing() {
|
||||||
|
let stuff: Data =
|
||||||
|
ReferenceDatum([ByteArrayDataPair("key", "value")], "controller")
|
||||||
|
|
||||||
|
expect other: ReferenceDatum = stuff
|
||||||
|
other == other
|
||||||
|
}
|
Loading…
Reference in New Issue