Skip to content

Commit 2a9268e

Browse files
committed
Add docstring for Null.compare and Null.equal
1 parent a76bba6 commit 2a9268e

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

runtime/Stdlib_Null.resi

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,43 @@ let asNullValue = myStr->Null.make // The compiler now thinks this can be `strin
4747
*/
4848
external make: 'a => t<'a> = "%identity"
4949

50+
/**
51+
`equal(a, b, eq)` checks if `a` and `b` are equal.
52+
If both are `Null.Value`, it will use function `eq` to check if the values are equal.
53+
54+
## Examples
55+
```rescript
56+
let a = Null.Value(1)
57+
let b = Null.null
58+
let c = Null.Value(2)
59+
60+
assertEqual(Null.equal(a, b, Int.equal), false)
61+
assertEqual(Null.equal(a, c, Int.equal), false)
62+
assertEqual(Null.equal(Null.null, Null.null, Int.equal), true)
63+
```
64+
*/
5065
let equal: (t<'a>, t<'b>, ('a, 'b) => bool) => bool
5166

67+
/**
68+
`compare(a, b, cmp)` compares `a` and `b`.
69+
If both are `Null.Value`, it will use function `cmp` to compare the values.
70+
71+
## Examples
72+
```rescript
73+
let a = Null.Value(1)
74+
let b = Null.null
75+
let c = Null.Value(2)
76+
77+
// A value is greater than null
78+
assertEqual(Null.compare(a, b, Int.compare), Stdlib_Ordering.greater)
79+
// A value is less than null
80+
assertEqual(Null.compare(b, a, Int.compare), Stdlib_Ordering.less)
81+
// A null is equal to null
82+
assertEqual(Null.compare(Null.null, Null.null, Int.compare), Stdlib_Ordering.equal)
83+
// The compare function is used if both are `Null.Value`
84+
assertEqual(Null.compare(a, c, Int.compare), Stdlib_Ordering.less)
85+
```
86+
*/
5287
let compare: (t<'a>, t<'b>, ('a, 'b) => Stdlib_Ordering.t) => Stdlib_Ordering.t
5388

5489
/**

0 commit comments

Comments
 (0)