ligo/src/test/contracts/record.mligo

39 lines
662 B
Plaintext
Raw Normal View History

2020-03-02 18:01:56 +01:00
type foobar = {foo : int; bar : int}
2020-03-02 18:01:56 +01:00
let fb : foobar = {foo=0; bar=0}
2020-03-02 18:01:56 +01:00
type abc = {a : int; b : int; c : int}
2020-03-02 18:01:56 +01:00
let abc : abc = {a=42; b=142; c=242}
let a : int = abc.a
let b : int = abc.b
let c : int = abc.c
let projection (r : foobar) : int = r.foo + r.bar
let modify (r : foobar) : foobar = {foo = 256; bar = r.bar}
2020-03-02 18:01:56 +01:00
let modify_abc (r : abc) : abc = let c = 42 in {r with b=2048; c=c}
type big_record = {
2020-03-02 18:01:56 +01:00
a : int;
b : int;
c : int;
d : int;
e : int
}
let br : big_record = {
2020-03-02 18:01:56 +01:00
a = 23;
b = 23;
c = 23;
d = 23;
e = 23
}
2020-01-10 16:41:47 +01:00
2020-03-02 18:01:56 +01:00
type double_record = {inner : abc}
2020-01-10 16:41:47 +01:00
2020-03-02 18:01:56 +01:00
let modify_inner (r : double_record) : double_record =
{r with inner.b = 2048}