Skip to content

Commit 14f388b

Browse files
authored
Docstrings for ArrayBuffer (#7594)
* docstrings for ArrayBuffer * change to == * change and deprecate
1 parent de15950 commit 14f388b

File tree

3 files changed

+61
-2
lines changed

3 files changed

+61
-2
lines changed

packages/artifacts.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -928,7 +928,9 @@ lib/ocaml/Stdlib_Array.resi
928928
lib/ocaml/Stdlib_ArrayBuffer.cmi
929929
lib/ocaml/Stdlib_ArrayBuffer.cmj
930930
lib/ocaml/Stdlib_ArrayBuffer.cmt
931+
lib/ocaml/Stdlib_ArrayBuffer.cmti
931932
lib/ocaml/Stdlib_ArrayBuffer.res
933+
lib/ocaml/Stdlib_ArrayBuffer.resi
932934
lib/ocaml/Stdlib_AsyncIterator.cmi
933935
lib/ocaml/Stdlib_AsyncIterator.cmj
934936
lib/ocaml/Stdlib_AsyncIterator.cmt

runtime/Stdlib_ArrayBuffer.res

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ type t
44
@new external make: int => t = "ArrayBuffer"
55
@get external byteLength: t => int = "byteLength"
66

7-
@send external slice: (t, ~start: int, ~end: int) => t = "slice"
8-
@send external sliceToEnd: (t, ~start: int) => t = "slice"
7+
@send external slice: (t, ~start: int=?, ~end: int=?) => t = "slice"
8+
9+
@deprecated("Use `slice` instead.") @send external sliceToEnd: (t, ~start: int) => t = "slice"

runtime/Stdlib_ArrayBuffer.resi

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/***
2+
Functions for interacting with JavaScript ArrayBuffer.
3+
See: [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer).
4+
*/
5+
6+
/**
7+
Type representing an ArrayBuffer object used to represent a generic raw binary data buffer.
8+
*/
9+
@notUndefined
10+
type t
11+
12+
/**
13+
`make(length)` creates a new ArrayBuffer with the specified length in bytes.
14+
See [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/ArrayBuffer) on MDN.
15+
16+
## Examples
17+
18+
```rescript
19+
let buffer = ArrayBuffer.make(8)
20+
ArrayBuffer.byteLength(buffer) == 8
21+
```
22+
23+
## Exceptions
24+
25+
- `RangeError`: If `length` is larger than `Number.MAX_SAFE_INTEGER` or negative.
26+
*/
27+
@new external make: int => t = "ArrayBuffer"
28+
29+
/**
30+
`byteLength(arrayBuffer)` returns the size, in bytes, of the ArrayBuffer.
31+
See [`ArrayBuffer.byteLength`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength) on MDN.
32+
33+
## Examples
34+
35+
```rescript
36+
let buffer = ArrayBuffer.make(16)
37+
ArrayBuffer.byteLength(buffer) == 16
38+
```
39+
*/
40+
@get external byteLength: t => int = "byteLength"
41+
42+
/**
43+
`slice(arrayBuffer, ~start, ~end)` returns a new ArrayBuffer whose contents are a copy of this ArrayBuffer's bytes from `start`, inclusive, up to `end`, exclusive.
44+
See [`ArrayBuffer.slice`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice) on MDN.
45+
46+
## Examples
47+
48+
```rescript
49+
let buffer = ArrayBuffer.make(16)
50+
let sliced = buffer->ArrayBuffer.slice(~start=4, ~end=12)
51+
ArrayBuffer.byteLength(sliced) == 8
52+
```
53+
*/
54+
@send external slice: (t, ~start: int=?, ~end: int=?) => t = "slice"
55+
56+
@deprecated("Use `slice` instead.") @send external sliceToEnd: (t, ~start: int) => t = "slice"

0 commit comments

Comments
 (0)