Skip to content

Commit ad288ef

Browse files
WeakMap docstrings
1 parent c3dc0dc commit ad288ef

File tree

1 file changed

+82
-1
lines changed
  • tests/gentype_tests/typescript-react-example/src

1 file changed

+82
-1
lines changed
Lines changed: 82 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,82 @@
1-
type t<'k, 'v>
1+
/***
2+
Bindings to JavaScript's `WeakMap`.
3+
4+
Weak maps store key/value pairs where keys must be objects and the pairs do not keep those keys alive for garbage collection.
5+
*/
6+
7+
/**
8+
Mutable weak map storing values of type `'v` with object keys `'k`.
9+
*/
10+
type t<'k, 'v> = Stdlib_WeakMap.t<'k, 'v>
11+
12+
/**
13+
Creates an empty weak map.
14+
15+
See [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) on MDN.
16+
17+
## Examples
18+
19+
```rescript
20+
let cache: WeakMap.t<{..}, string> = WeakMap.make()
21+
```
22+
*/
23+
let make: unit => t<'k, 'v> = Stdlib_WeakMap.make
24+
25+
/**
26+
`get(map, key)` returns `Some(value)` when `key` exists, otherwise `None`.
27+
28+
## Examples
29+
30+
```rescript
31+
let cache = WeakMap.make()
32+
let key = Stdlib_Object.make()
33+
WeakMap.get(cache, key) == None
34+
WeakMap.set(cache, key, "user")
35+
WeakMap.get(cache, key) == Some("user")
36+
```
37+
*/
38+
let get: (t<'k, 'v>, 'k) => option<'v> = Stdlib_WeakMap.get
39+
40+
/**
41+
`has(map, key)` checks whether `key` exists in the weak map.
42+
43+
## Examples
44+
45+
```rescript
46+
let cache = WeakMap.make()
47+
let key = Stdlib_Object.make()
48+
WeakMap.has(cache, key) == false
49+
WeakMap.set(cache, key, 1)
50+
WeakMap.has(cache, key) == true
51+
```
52+
*/
53+
let has: (t<'k, 'v>, 'k) => bool = Stdlib_WeakMap.has
54+
55+
/**
56+
`set(map, key, value)` stores `value` at `key`. Returns the map for chaining.
57+
58+
## Examples
59+
60+
```rescript
61+
let cache = WeakMap.make()
62+
let key = Stdlib_Object.make()
63+
WeakMap.set(cache, key, 42)
64+
WeakMap.get(cache, key) == Some(42)
65+
```
66+
*/
67+
let set: (t<'k, 'v>, 'k, 'v) => t<'k, 'v> = Stdlib_WeakMap.set
68+
69+
/**
70+
`delete(map, key)` removes `key` and returns `true` if an entry was removed.
71+
72+
## Examples
73+
74+
```rescript
75+
let cache = WeakMap.make()
76+
let key = Stdlib_Object.make()
77+
WeakMap.set(cache, key, "value")
78+
WeakMap.delete(cache, key) == true
79+
WeakMap.delete(cache, key) == false
80+
```
81+
*/
82+
let delete: (t<'k, 'v>, 'k) => bool = Stdlib_WeakMap.delete

0 commit comments

Comments
 (0)