Add big_map reference page to doc tests and add big_map add
to test suite
This commit is contained in:
parent
04daf776d3
commit
39c0f01998
@ -3,6 +3,67 @@ id: big-map-reference
|
|||||||
title: Big Map
|
title: Big Map
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Defining A Big Map Type
|
||||||
|
|
||||||
|
<!--DOCUSAURUS_CODE_TABS-->
|
||||||
|
<!--Pascaligo-->
|
||||||
|
```pascaligo
|
||||||
|
type move is (int * int)
|
||||||
|
type moveset is big_map (address, move)
|
||||||
|
type foo is big_map (int, int)
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--CameLIGO-->
|
||||||
|
```cameligo
|
||||||
|
type move = int * int
|
||||||
|
type moveset = (address, move) big_map
|
||||||
|
type foo = (int, int) big_map
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--ReasonLIGO-->
|
||||||
|
```reasonligo
|
||||||
|
type move = (int, int);
|
||||||
|
type moveset = big_map(address, move);
|
||||||
|
type foo = big_map(int, int);
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--END_DOCUSAURUS_CODE_TABS-->
|
||||||
|
|
||||||
|
## Creating A Map
|
||||||
|
|
||||||
|
<!--DOCUSAURUS_CODE_TABS-->
|
||||||
|
<!--Pascaligo-->
|
||||||
|
|
||||||
|
```pascaligo
|
||||||
|
const moves: moveset =
|
||||||
|
big_map
|
||||||
|
("tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx": address) -> (1,2);
|
||||||
|
("tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN": address) -> (0,3);
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--CameLIGO-->
|
||||||
|
|
||||||
|
```cameligo
|
||||||
|
let moves: moveset =
|
||||||
|
Big_map.literal [
|
||||||
|
(("tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx": address), (1,2));
|
||||||
|
(("tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN": address), (0,3));
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--ReasonLIGO-->
|
||||||
|
|
||||||
|
```reasonligo
|
||||||
|
let moves: moveset =
|
||||||
|
Big_map.literal ([
|
||||||
|
("tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx": address, (1,2)),
|
||||||
|
("tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN": address, (0,3)),
|
||||||
|
]);
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--END_DOCUSAURUS_CODE_TABS-->
|
||||||
|
|
||||||
## Big_map.find_opt(k: a', m: (a',b') big_map) : b' option
|
## Big_map.find_opt(k: a', m: (a',b') big_map) : b' option
|
||||||
|
|
||||||
Retrieve the value associated with a particular key. This version returns an option
|
Retrieve the value associated with a particular key. This version returns an option
|
||||||
@ -96,6 +157,29 @@ let updated_map : moveset =
|
|||||||
|
|
||||||
## Big_map.add(k: a', v: b', m: (a', b') big_map) : (a', b') big_map
|
## Big_map.add(k: a', v: b', m: (a', b') big_map) : (a', b') big_map
|
||||||
|
|
||||||
|
Add a key and its associated value to the big map.
|
||||||
|
|
||||||
|
<!--DOCUSAURUS_CODE_TABS-->
|
||||||
|
|
||||||
|
<!--PascaLIGO-->
|
||||||
|
```pascaligo
|
||||||
|
function set_ (var n : int ; var m : foo) : foo is block {
|
||||||
|
m[23] := n ;
|
||||||
|
} with m
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--CameLIGO-->
|
||||||
|
```cameligo
|
||||||
|
let add (n,m : int * foo) : foo = Big_map.add 23 n m
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--ReasonLIGO-->
|
||||||
|
```reasonligo
|
||||||
|
let add = ((n,m): (int, foo)): foo => Big_map.add(23, n, m);
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--END_DOCUSAURUS_CODE_TABS-->
|
||||||
|
|
||||||
## Big_map.remove(k: a', m: (a', b') big_map) : (a', b') big_map
|
## Big_map.remove(k: a', m: (a', b') big_map) : (a', b') big_map
|
||||||
|
|
||||||
Remove a key and its associated value from the big map.
|
Remove a key and its associated value from the big map.
|
||||||
|
@ -13,6 +13,8 @@ function set_ (var n : int ; var m : foo) : foo is block {
|
|||||||
m[23] := n ;
|
m[23] := n ;
|
||||||
} with m
|
} with m
|
||||||
|
|
||||||
|
function add (var n : int ; var m : foo) : foo is set_(n,m)
|
||||||
|
|
||||||
function rm (var m : foo) : foo is block {
|
function rm (var m : foo) : foo is block {
|
||||||
remove 42 from map m;
|
remove 42 from map m;
|
||||||
} with m
|
} with m
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
type foo = (int, int) big_map
|
type foo = (int, int) big_map
|
||||||
|
|
||||||
let set_2 (n : int) (m : foo) : foo = Big_map.update 23 (Some n) m
|
let set_ (n, m: int * foo) : foo = Big_map.update 23 (Some n) m
|
||||||
|
|
||||||
let set_ (t: int * foo) : foo = set_2 t.0 t.1
|
let add (n,m : int * foo) : foo = Big_map.add 23 n m
|
||||||
|
|
||||||
let rm (m : foo) : foo = Big_map.remove 42 m
|
let rm (m : foo) : foo = Big_map.remove 42 m
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ let set2 = (n: int, m: foo): foo => Big_map.update(23, Some(n), m);
|
|||||||
|
|
||||||
let set_ = (x: (int, foo)): foo => set2(x[0], x[1]);
|
let set_ = (x: (int, foo)): foo => set2(x[0], x[1]);
|
||||||
|
|
||||||
|
let add = ((n,m): (int, foo)): foo => Big_map.add(23, n, m);
|
||||||
|
|
||||||
let rm = (m: foo): foo => Big_map.remove(42, m);
|
let rm = (m: foo): foo => Big_map.remove(42, m);
|
||||||
|
|
||||||
let gf = (m: foo): int => Big_map.find(23, m);
|
let gf = (m: foo): int => Big_map.find(23, m);
|
||||||
|
@ -1073,6 +1073,11 @@ let big_map_ type_f path : unit result =
|
|||||||
let make_expected = fun n -> ez [(23 , n) ; (42 , 0)] in
|
let make_expected = fun n -> ez [(23 , n) ; (42 , 0)] in
|
||||||
expect_eq_n_pos_small program "set_" make_input make_expected
|
expect_eq_n_pos_small program "set_" make_input make_expected
|
||||||
in
|
in
|
||||||
|
let%bind () =
|
||||||
|
let input = (e_pair (e_int 23) (ez [(42, 42)])) in
|
||||||
|
let expected = ez [(23, 23) ; (42, 42)] in
|
||||||
|
expect_eq program "add" input expected
|
||||||
|
in
|
||||||
let%bind () =
|
let%bind () =
|
||||||
let make_input = fun n -> ez [(23, n) ; (42, 4)] in
|
let make_input = fun n -> ez [(23, n) ; (42, 4)] in
|
||||||
let make_expected = fun _ -> e_some @@ e_int 4 in
|
let make_expected = fun _ -> e_some @@ e_int 4 in
|
||||||
|
@ -122,6 +122,7 @@ let md_files = [
|
|||||||
"/gitlab-pages/docs/advanced/timestamps-addresses.md";
|
"/gitlab-pages/docs/advanced/timestamps-addresses.md";
|
||||||
"/gitlab-pages/docs/api/cli-commands.md";
|
"/gitlab-pages/docs/api/cli-commands.md";
|
||||||
"/gitlab-pages/docs/api/cheat-sheet.md";
|
"/gitlab-pages/docs/api/cheat-sheet.md";
|
||||||
|
"/gitlab-pages/docs/reference/big_map.md";
|
||||||
]
|
]
|
||||||
|
|
||||||
let md_root = "../../gitlab-pages/docs/language-basics/"
|
let md_root = "../../gitlab-pages/docs/language-basics/"
|
||||||
|
Loading…
Reference in New Issue
Block a user