Skip to content

Commit 98fa501

Browse files
WeakSet docstrings (#7986)
* WeakSet docstrings * More examples and MDN links
1 parent 04c1e1d commit 98fa501

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

packages/@rescript/runtime/Stdlib_WeakSet.res

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,75 @@
1+
/***
2+
Bindings to JavaScript's `WeakSet`.
3+
4+
Weak sets store references to objects without preventing those objects from being garbage collected.
5+
*/
6+
7+
/** Mutable weak set storing object references of type `'a`. */
18
@notUndefined
29
type t<'a>
310

11+
/**
12+
Creates an empty weak set.
13+
14+
See [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) on MDN.
15+
16+
## Examples
17+
18+
```rescript
19+
let visited = WeakSet.make()
20+
WeakSet.has(visited, Object.make()) == false
21+
```
22+
*/
423
@new external make: unit => t<'a> = "WeakSet"
524

25+
/**
26+
`add(set, value)` inserts `value` into the weak set and returns the set for chaining.
27+
28+
See [`WeakSet.prototype.add`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/add) on MDN.
29+
30+
## Examples
31+
32+
```rescript
33+
let set = WeakSet.make()
34+
let node = Object.make()
35+
WeakSet.add(set, node)
36+
WeakSet.has(set, node) == true
37+
```
38+
*/
639
@send external add: (t<'a>, 'a) => t<'a> = "add"
40+
41+
/**
42+
`delete(set, value)` removes `value` and returns `true` if an entry existed.
43+
44+
See [`WeakSet.prototype.delete`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/delete) on MDN.
45+
46+
## Examples
47+
48+
```rescript
49+
let set = WeakSet.make()
50+
let node = Object.make()
51+
let _ = WeakSet.add(set, node)
52+
WeakSet.delete(set, node) == true
53+
WeakSet.delete(set, node) == false
54+
```
55+
*/
756
@send external delete: (t<'a>, 'a) => bool = "delete"
57+
58+
/**
59+
`has(set, value)` checks whether `value` exists in the weak set.
60+
61+
See [`WeakSet.prototype.has`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/has) on MDN.
62+
63+
## Examples
64+
65+
```rescript
66+
let set = WeakSet.make()
67+
let node = Object.make()
68+
WeakSet.has(set, node) == false
69+
let _ = WeakSet.add(set, node)
70+
WeakSet.has(set, node) == true
71+
```
72+
*/
873
@send external has: (t<'a>, 'a) => bool = "has"
974

1075
/**

0 commit comments

Comments
 (0)