Skip to content

Commit 34c9ec3

Browse files
committed
add remaining docstrings for nullable
1 parent 50c72c5 commit 34c9ec3

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

runtime/Stdlib_Nullable.resi

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,53 @@ switch asNullable->Nullable.toOption {
8080
*/
8181
external make: 'a => t<'a> = "%identity"
8282

83+
/**
84+
`equal(a, b, eq)` checks if `a` and `b` are equal.
85+
If both are `Nullable.Value`, it will use function `eq` to check if the values are equal.
86+
87+
## Examples
88+
```rescript
89+
let a = Nullable.make(1)
90+
let b = Nullable.null
91+
let c = Nullable.undefined
92+
let d = Nullable.make(2)
93+
94+
Nullable.equal(a, b, Int.equal) == false
95+
Nullable.equal(a, c, Int.equal) == false
96+
Nullable.equal(a, d, Int.equal) == false
97+
Nullable.equal(Nullable.null, Nullable.null, Int.equal) == true
98+
Nullable.equal(Nullable.undefined, Nullable.undefined, Int.equal) == true
99+
Nullable.equal(Nullable.null, Nullable.undefined, Int.equal) == false
100+
```
101+
*/
83102
let equal: (t<'a>, t<'b>, ('a, 'b) => bool) => bool
84103

104+
/**
105+
`compare(a, b, cmp)` compares `a` and `b`.
106+
If both are `Nullable.Value`, it will use function `cmp` to compare the values.
107+
108+
## Examples
109+
```rescript
110+
let a = Nullable.make(1)
111+
let b = Nullable.null
112+
let c = Nullable.undefined
113+
let d = Nullable.make(2)
114+
115+
// A value is greater than null and undefined
116+
Nullable.compare(a, b, Int.compare) == Stdlib_Ordering.greater
117+
Nullable.compare(a, c, Int.compare) == Stdlib_Ordering.greater
118+
// null and undefined are less than a value
119+
Nullable.compare(b, a, Int.compare) == Stdlib_Ordering.less
120+
Nullable.compare(c, a, Int.compare) == Stdlib_Ordering.less
121+
// null is equal to null, undefined is equal to undefined
122+
Nullable.compare(Nullable.null, Nullable.null, Int.compare) == Stdlib_Ordering.equal
123+
Nullable.compare(Nullable.undefined, Nullable.undefined, Int.compare) == Stdlib_Ordering.equal
124+
// null is less than undefined
125+
Nullable.compare(Nullable.null, Nullable.undefined, Int.compare) == Stdlib_Ordering.less
126+
// The compare function is used if both are `Nullable.Value`
127+
Nullable.compare(a, d, Int.compare) == Stdlib_Ordering.less
128+
```
129+
*/
85130
let compare: (t<'a>, t<'b>, ('a, 'b) => Stdlib_Ordering.t) => Stdlib_Ordering.t
86131

87132
/**

0 commit comments

Comments
 (0)