@@ -373,3 +373,77 @@ module Float64Array = struct
373
373
end
374
374
module Float64_array = Float64Array
375
375
[@ ocaml.deprecated " use `Float64Array` instead" ]
376
+
377
+ module DataView = struct
378
+ (* * The DataView view provides a low-level interface for reading and writing
379
+ multiple number types in an ArrayBuffer irrespective of the platform's endianness.
380
+
381
+ @see <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView> MDN
382
+ *)
383
+
384
+ type t
385
+
386
+ external make : array_buffer -> t = " DataView" [@@ bs.new ]
387
+ external fromBuffer : array_buffer -> t = " DataView" [@@ bs.new ]
388
+ external fromBufferOffset : array_buffer -> int -> t = " DataView" [@@ bs.new ]
389
+ external fromBufferRange : array_buffer -> offset :int -> length :int -> t = " DataView" [@@ bs.new ]
390
+
391
+ external buffer : t -> array_buffer = " " [@@ bs.get]
392
+ external byteLength : t -> int = " " [@@ bs.get]
393
+ external byteOffset : t -> int = " " [@@ bs.get]
394
+
395
+ external getInt8 : t -> int -> int = " " [@@ bs.send]
396
+ external getUint8 : t -> int -> int = " " [@@ bs.send]
397
+
398
+ external getInt16 : t -> int -> int = " " [@@ bs.send]
399
+ external getInt16LittleEndian : t -> int -> (_ [@ bs.as 1 ]) -> int =
400
+ " getInt16" [@@ bs.send]
401
+
402
+ external getUint16 : t -> int -> int = " " [@@ bs.send]
403
+ external getUint16LittleEndian : t -> int -> (_ [@ bs.as 1 ]) -> int =
404
+ " getUint16" [@@ bs.send]
405
+
406
+ external getInt32 : t -> int -> int = " " [@@ bs.send]
407
+ external getInt32LittleEndian : t -> int -> (_ [@ bs.as 1 ]) -> int =
408
+ " getInt32" [@@ bs.send]
409
+
410
+ external getUint32 : t -> int -> int = " " [@@ bs.send]
411
+ external getUint32LittleEndian : t -> int -> (_ [@ bs.as 1 ]) -> int =
412
+ " getUint32" [@@ bs.send]
413
+
414
+ external getFloat32 : t -> int -> float = " " [@@ bs.send]
415
+ external getFloat32LittleEndian : t -> int -> (_ [@ bs.as 1 ]) -> float =
416
+ " getFloat32" [@@ bs.send]
417
+
418
+ external getFloat64 : t -> int -> float = " " [@@ bs.send]
419
+ external getFloat64LittleEndian : t -> int -> (_ [@ bs.as 1 ]) -> float =
420
+ " getFloat64" [@@ bs.send]
421
+
422
+ external setInt8 : t -> int -> int -> unit = " " [@@ bs.send]
423
+ external setUint8 : t -> int -> int -> unit = " " [@@ bs.send]
424
+
425
+ external setInt16 : t -> int -> int -> unit = " " [@@ bs.send]
426
+ external setInt16LittleEndian : t -> int -> int -> (_ [@ bs.as 1 ]) -> unit =
427
+ " setInt16" [@@ bs.send]
428
+
429
+ external setUint16 : t -> int -> int -> unit = " " [@@ bs.send]
430
+ external setUint16LittleEndian : t -> int -> int -> (_ [@ bs.as 1 ]) -> unit =
431
+ " setUint16" [@@ bs.send]
432
+
433
+ external setInt32 : t -> int -> int -> unit = " " [@@ bs.send]
434
+ external setInt32LittleEndian : t -> int -> int -> (_ [@ bs.as 1 ]) -> unit =
435
+ " setInt32" [@@ bs.send]
436
+
437
+ external setUint32 : t -> int -> int -> unit = " " [@@ bs.send]
438
+ external setUint32LittleEndian : t -> int -> int -> (_ [@ bs.as 1 ]) -> unit =
439
+ " setUint32" [@@ bs.send]
440
+
441
+ external setFloat32 : t -> int -> float -> unit = " " [@@ bs.send]
442
+ external setFloat32LittleEndian : t -> int -> float -> (_ [@ bs.as 1 ]) -> unit =
443
+ " setFloat32" [@@ bs.send]
444
+
445
+ external setFloat64 : t -> int -> float -> unit = " " [@@ bs.send]
446
+ external setFloat64LittleEndian : t -> int -> float -> (_ [@ bs.as 1 ]) -> unit =
447
+ " setFloat64" [@@ bs.send]
448
+
449
+ end
0 commit comments