Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 49 additions & 49 deletions packages/@rescript/runtime/Stdlib_DataView.resi
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ See [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referen
## Examples

```rescript
DataView.fromBuffer(ArrayBuffer.make(16))
DataView.fromBuffer(ArrayBuffer.make(16), ~byteOffset=4)
DataView.fromBuffer(ArrayBuffer.make(16), ~byteOffset=4, ~length=8)
DataView.fromBuffer(ArrayBuffer.make(16))
DataView.fromBuffer(ArrayBuffer.make(16), ~byteOffset=4)
DataView.fromBuffer(ArrayBuffer.make(16), ~byteOffset=4, ~length=8)
```
*/
@new external fromBuffer: (Stdlib_ArrayBuffer.t, ~byteOffset: int=?, ~length: int=?) => t =
Expand All @@ -65,7 +65,7 @@ DataView.fromBufferToEnd(buffer, ~byteOffset=4)
external fromBufferToEnd: (Stdlib_ArrayBuffer.t, ~byteOffset: int) => t = "DataView"

/**
`fromBufferWithRange(buffer, ~byteOffset, ~length)` creates a DataView for a specific byte range.
`fromBufferWithRange(buffer, ~byteOffset, ~length)` creates a DataView for a specific byte range.

See [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) on MDN.

Expand All @@ -74,7 +74,7 @@ See [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referen
## Examples

```rescript
DataView.fromBufferWithRange(ArrayBuffer.make(16), ~byteOffset=2, ~length=8)
DataView.fromBufferWithRange(ArrayBuffer.make(16), ~byteOffset=2, ~length=8)
```
*/
@deprecated("Use `fromBuffer` instead") @new
Expand Down Expand Up @@ -135,7 +135,7 @@ See [`DataView.getInt8`](https://developer.mozilla.org/en-US/docs/Web/JavaScript

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setInt8(0, -12)
dv->DataView.setInt8(0, -12)
DataView.getInt8(dv, 0) == -12
```
*/
Expand All @@ -150,7 +150,7 @@ See [`DataView.getUint8`](https://developer.mozilla.org/en-US/docs/Web/JavaScrip

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setUint8(1, 255)
dv->DataView.setUint8(1, 255)
DataView.getUint8(dv, 1) == 255
```
*/
Expand All @@ -165,8 +165,8 @@ See [`DataView.getInt16`](https://developer.mozilla.org/en-US/docs/Web/JavaScrip

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setInt16(0, -1234)
dv->DateView.setInt16(2, -1234, ~littleEndian=true)
dv->DataView.setInt16(0, -1234)
dv->DataView.setInt16(2, -1234, ~littleEndian=true)
DataView.getInt16(dv, 0) == -1234
DataView.getInt16(dv, 2, ~littleEndian=true) == -1234
```
Expand All @@ -182,8 +182,8 @@ See [`DataView.getUint16`](https://developer.mozilla.org/en-US/docs/Web/JavaScri

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setUint16(0, 1234)
dv->DateView.setUint16(2, 1234, ~littleEndian=true)
dv->DataView.setUint16(0, 1234)
dv->DataView.setUint16(2, 1234, ~littleEndian=true)
DataView.getUint16(dv, 0) == 1234
DataView.getUint16(dv, 2, ~littleEndian=true) == 1234
```
Expand All @@ -199,8 +199,8 @@ See [`DataView.getInt32`](https://developer.mozilla.org/en-US/docs/Web/JavaScrip

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setInt32(0, -123456)
dv->DateView.setInt32(4, -123456, ~littleEndian=true)
dv->DataView.setInt32(0, -123456)
dv->DataView.setInt32(4, -123456, ~littleEndian=true)
DataView.getInt32(dv, 0) == -123456
DataView.getInt32(dv, 4, ~littleEndian=true) == -123456
```
Expand All @@ -216,8 +216,8 @@ See [`DataView.getUint32`](https://developer.mozilla.org/en-US/docs/Web/JavaScri

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setUint32(0, 123456)
dv->DateView.setUint32(4, 123456, ~littleEndian=true)
dv->DataView.setUint32(0, 123456)
dv->DataView.setUint32(4, 123456, ~littleEndian=true)
DataView.getUint32(dv, 0) == 123456
DataView.getUint32(dv, 4, ~littleEndian=true) == 123456
```
Expand All @@ -232,8 +232,8 @@ See [`DataView.getFloat16`](https://developer.mozilla.org/en-US/docs/Web/JavaScr
## Examples
```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setFloat16(0, 1.5)
dv->DateView.setFloat16(2, 1.5, ~littleEndian=true)
dv->DataView.setFloat16(0, 1.5)
dv->DataView.setFloat16(2, 1.5, ~littleEndian=true)
DataView.getFloat16(dv, 0) == 1.5
DataView.getFloat16(dv, 2, ~littleEndian=true) == 1.5
```
Expand All @@ -249,10 +249,10 @@ See [`DataView.getFloat32`](https://developer.mozilla.org/en-US/docs/Web/JavaScr

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setFloat32(0, 3.14)
dv->DateView.setFloat32(4, 3.14, ~littleEndian=true
DataView.getFloat32(dv, 0) == 3.14
DataView.getFloat32(dv, 4, ~littleEndian=true) == 3.14
dv->DataView.setFloat32(0, 3.14)
dv->DataView.setFloat32(4, 3.14, ~littleEndian=true)
// DataView.getFloat32(dv, 0) == 3.14
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is only approximately equal

// DataView.getFloat32(dv, 4, ~littleEndian=true) == 3.14
```
*/
@send external getFloat32: (t, int, ~littleEndian: bool=?) => float = "getFloat32"
Expand All @@ -266,8 +266,8 @@ See [`DataView.getFloat64`](https://developer.mozilla.org/en-US/docs/Web/JavaScr

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setFloat64(0, 6.28)
dv->DateView.setFloat64(8, 6.28, ~littleEndian=true)
dv->DataView.setFloat64(0, 6.28)
dv->DataView.setFloat64(8, 6.28, ~littleEndian=true)
DataView.getFloat64(dv, 0) == 6.28
DataView.getFloat64(dv, 8, ~littleEndian=true) == 6.28
```
Expand All @@ -282,8 +282,8 @@ See [`DataView.getBigInt64`](https://developer.mozilla.org/en-US/docs/Web/JavaSc
## Examples
```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setBigInt64(0, -123456789n)
dv->DateView.setBigInt64(8, -123456789n, ~littleEndian=true)
dv->DataView.setBigInt64(0, -123456789n)
dv->DataView.setBigInt64(8, -123456789n, ~littleEndian=true)
DataView.getBigInt64(dv, 0) == -123456789n
DataView.getBigInt64(dv, 8, ~littleEndian=true) == -123456789n
```
Expand All @@ -299,8 +299,8 @@ See [`DataView.getBigUint64`](https://developer.mozilla.org/en-US/docs/Web/JavaS

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
dv->DateView.setBigUint64(0, 123456789n)
dv->DateView.setBigUint64(8, 123456789n, ~littleEndian=true)
dv->DataView.setBigUint64(0, 123456789n)
dv->DataView.setBigUint64(8, 123456789n, ~littleEndian=true)
DataView.getBigUint64(dv, 0) == 123456789n
DataView.getBigUint64(dv, 8, ~littleEndian=true) == 123456789n
```
Expand All @@ -317,7 +317,7 @@ See [`DataView.setInt8`](https://developer.mozilla.org/en-US/docs/Web/JavaScript
```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setInt8(dv, 0, -12)
dv->DateView.getInt8(0) == -12
dv->DataView.getInt8(0) == -12
```
*/
@send external setInt8: (t, int, int) => unit = "setInt8"
Expand All @@ -332,7 +332,7 @@ See [`DataView.setUint8`](https://developer.mozilla.org/en-US/docs/Web/JavaScrip
```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setUint8(dv, 0, 255)
dv->DateView.getUint8(0) == 255
dv->DataView.getUint8(0) == 255
```
*/
@send external setUint8: (t, int, int) => unit = "setUint8"
Expand All @@ -346,10 +346,10 @@ See [`DataView.setInt16`](https://developer.mozilla.org/en-US/docs/Web/JavaScrip

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setInt16(dv, 0 -1234)
DataView.setInt16(dv, 0, -1234)
DataView.setInt16(dv, 2, -1234, ~littleEndian=true)
dv->DateView.getInt16(0) == -1234
dv->DateView.getInt16(2, ~littleEndian=true) == -1234
dv->DataView.getInt16(0) == -1234
dv->DataView.getInt16(2, ~littleEndian=true) == -1234
```
*/
@send external setInt16: (t, int, int, ~littleEndian: bool=?) => unit = "setInt16"
Expand All @@ -365,8 +365,8 @@ See [`DataView.setUint16`](https://developer.mozilla.org/en-US/docs/Web/JavaScri
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setUint16(dv, 0, 1234)
DataView.setUint16(dv, 2, 1234, ~littleEndian=true)
dv->DateView.getUint16(0) == 1234
dv->DateView.getUint16(2, ~littleEndian=true) == 1234
dv->DataView.getUint16(0) == 1234
dv->DataView.getUint16(2, ~littleEndian=true) == 1234
```
*/
@send external setUint16: (t, int, int, ~littleEndian: bool=?) => unit = "setUint16"
Expand All @@ -382,8 +382,8 @@ See [`DataView.setInt32`](https://developer.mozilla.org/en-US/docs/Web/JavaScrip
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setInt32(dv, 0, -123456)
DataView.setInt32(dv, 4, -123456, ~littleEndian=true)
dv->DateView.getInt32(0) == -123456
dv->DateView.getInt32(4, ~littleEndian=true) == -123456
dv->DataView.getInt32(0) == -123456
dv->DataView.getInt32(4, ~littleEndian=true) == -123456
```
*/
@send external setInt32: (t, int, int, ~littleEndian: bool=?) => unit = "setInt32"
Expand All @@ -397,10 +397,10 @@ See [`DataView.setUint32`](https://developer.mozilla.org/en-US/docs/Web/JavaScri

```rescript
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setUint32(dv, 0 123456)
DataView.setUint32(dv, 0, 123456)
DataView.setUint32(dv, 4, 123456, ~littleEndian=true)
dv->DateView.getUint32(0) == 123456
dv->DateView.getUint32(4, ~littleEndian=true) == 123456
dv->DataView.getUint32(0) == 123456
dv->DataView.getUint32(4, ~littleEndian=true) == 123456
```
*/
@send external setUint32: (t, int, int, ~littleEndian: bool=?) => unit = "setUint32"
Expand All @@ -416,8 +416,8 @@ See [`DataView.setFloat16`](https://developer.mozilla.org/en-US/docs/Web/JavaScr
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setFloat16(dv, 0, 1.5)
DataView.setFloat16(dv, 2, 1.5, ~littleEndian=true)
dv->DateView.getFloat16(0) == 1.5
dv->DateView.getFloat16(2, ~littleEndian=true) == 1.5
dv->DataView.getFloat16(0) == 1.5
dv->DataView.getFloat16(2, ~littleEndian=true) == 1.5
```
*/
@send external setFloat16: (t, int, float, ~littleEndian: bool=?) => unit = "setFloat16"
Expand All @@ -433,8 +433,8 @@ See [`DataView.setFloat32`](https://developer.mozilla.org/en-US/docs/Web/JavaScr
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setFloat32(dv, 0, 3.14)
DataView.setFloat32(dv, 4, 3.14, ~littleEndian=true)
dv->DateView.getFloat32(0) == 3.14
dv->DateView.getFloat32(4, ~littleEndian=true) == 3.14
// dv->DataView.getFloat32(0) == 3.14
// dv->DataView.getFloat32(4, ~littleEndian=true) == 3.14
```
*/
@send external setFloat32: (t, int, float, ~littleEndian: bool=?) => unit = "setFloat32"
Expand All @@ -450,8 +450,8 @@ See [`DataView.setFloat64`](https://developer.mozilla.org/en-US/docs/Web/JavaScr
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setFloat64(dv, 0, 6.28)
DataView.setFloat64(dv, 8, 6.28, ~littleEndian=true)
dv->DateView.getFloat64(0) == 6.28
dv->DateView.getFloat64(8, ~littleEndian=true) == 6.28
dv->DataView.getFloat64(0) == 6.28
dv->DataView.getFloat64(8, ~littleEndian=true) == 6.28
```
*/
@send external setFloat64: (t, int, float, ~littleEndian: bool=?) => unit = "setFloat64"
Expand All @@ -467,8 +467,8 @@ See [`DataView.setBigInt64`](https://developer.mozilla.org/en-US/docs/Web/JavaSc
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setBigInt64(dv, 0, -123456789n)
DataView.setBigInt64(dv, 8, -123456789n, ~littleEndian=true)
dv->DateView.getBigInt64(0) == -123456789n
dv->DateView.getBigInt64(8, ~littleEndian=true) == -123456789n
dv->DataView.getBigInt64(0) == -123456789n
dv->DataView.getBigInt64(8, ~littleEndian=true) == -123456789n
```
*/
@send external setBigInt64: (t, int, bigint, ~littleEndian: bool=?) => unit = "setBigInt64"
Expand All @@ -484,8 +484,8 @@ See [`DataView.setBigUint64`](https://developer.mozilla.org/en-US/docs/Web/JavaS
let dv = DataView.fromBuffer(ArrayBuffer.make(16))
DataView.setBigUint64(dv, 0, 123456789n)
DataView.setBigUint64(dv, 8, 123456789n, ~littleEndian=true)
dv->DateView.getBigUint64(0) == 123456789n
dv->DateView.getBigUint64(8, ~littleEndian=true) == 123456789n
dv->DataView.getBigUint64(0) == 123456789n
dv->DataView.getBigUint64(8, ~littleEndian=true) == 123456789n
```
*/
@send external setBigUint64: (t, int, bigint, ~littleEndian: bool=?) => unit = "setBigUint64"
Expand Down
16 changes: 12 additions & 4 deletions tests/docstring_tests/DocTest.res
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
open Node

@module("../../cli/common/bins.js")
external rescript_tools_exe: string = "rescript_tools_exe"

// Only major version
let nodeVersion =
Process.version
Expand Down Expand Up @@ -35,6 +38,11 @@ let ignoreRuntimeTests = [
24,
["Stdlib_RegExp.escape"],
),
(
// Not available in Node.js yet
1000,
["Stdlib_DataView.getFloat16", "Stdlib_DataView.setFloat16"],
),
]

let getOutput = buffer =>
Expand All @@ -43,10 +51,8 @@ let getOutput = buffer =>
->Array.join("")

let extractDocFromFile = async file => {
let toolsBin = Path.join([Process.cwd(), "cli", "rescript-tools.js"])

let {stdout} = await SpawnAsync.run(
~command=toolsBin,
~command=rescript_tools_exe,
~args=["extract-codeblocks", file, "--transform-assert-equal"],
)

Expand Down Expand Up @@ -88,7 +94,9 @@ let extractExamples = async () => {
| Ok(doc) =>
// TODO: Should this be a flag in the actual command instead, to only include code blocks with tests?
examples->Array.pushMany(doc->Array.filter(d => d.code->String.includes("assertEqual(")))
| Error(e) => Console.error(e)
| Error(e) =>
Console.error(e)
JsError.panic(`Error extracting code blocks for ${f}`)
}
})

Expand Down
16 changes: 13 additions & 3 deletions tests/docstring_tests/DocTest.res.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading