50 lines
789 B
Plaintext
50 lines
789 B
Plaintext
use aiken/builtin
|
|
|
|
type MyData {
|
|
Integer(Int)
|
|
Bytes(ByteArray)
|
|
}
|
|
|
|
test foo() {
|
|
inspect(42) == Integer(42) && inspect(#"ff") == Bytes(#"ff")
|
|
}
|
|
|
|
fn inspect(data: Data) -> MyData {
|
|
expect result: MyData =
|
|
builtin.choose_data(
|
|
data,
|
|
inspect_constr(data),
|
|
inspect_map(data),
|
|
inspect_list(data),
|
|
inspect_integer(data),
|
|
inspect_bytearray(data),
|
|
)
|
|
result
|
|
}
|
|
|
|
fn inspect_constr(_data: Data) -> Data {
|
|
todo
|
|
}
|
|
|
|
fn inspect_map(_data: Data) -> Data {
|
|
todo
|
|
}
|
|
|
|
fn inspect_list(_data: Data) -> Data {
|
|
todo
|
|
}
|
|
|
|
fn inspect_integer(data: Data) -> Data {
|
|
let result: Data =
|
|
builtin.un_i_data(data)
|
|
|> Integer
|
|
result
|
|
}
|
|
|
|
fn inspect_bytearray(data: Data) -> Data {
|
|
let result: Data =
|
|
builtin.un_b_data(data)
|
|
|> Bytes
|
|
result
|
|
}
|