wip wip wip

This commit is contained in:
Simon Cruanes 2024-05-13 21:59:46 -04:00
parent 53b3f75d64
commit 8db684337e
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
2 changed files with 86 additions and 0 deletions

View file

@ -137,3 +137,44 @@ let to_seq self =
s 0 s 0
(* TODO: unicode operators.*) (* TODO: unicode operators.*)
let[@inline] check_bound_ self what i len =
if i + len > self.len then invalid_arg what
let get_uint8 : t -> int -> int =
fun self i ->
check_bound_ self "get_uint8" i 1;
Bytes.get_uint8 self.bs i
let get_int8 : t -> int -> int =
fun self i ->
check_bound_ self "get_int8" i 1;
Bytes.get_int8 self.bs i
let get_uint16_ne : t -> int -> int
let get_uint16_be : t -> int -> int
let get_uint16_le : t -> int -> int
let get_int16_ne : t -> int -> int
let get_int16_be : t -> int -> int
let get_int16_le : t -> int -> int
let get_int32_ne : t -> int -> int32
let get_int32_be : t -> int -> int32
let get_int32_le : t -> int -> int32
let get_int64_ne : t -> int -> int64
let get_int64_be : t -> int -> int64
let get_int64_le : t -> int -> int64
let set_uint8 : t -> int -> int -> unit
let set_int8 : t -> int -> int -> unit
let set_uint16_ne : t -> int -> int -> unit
let set_uint16_be : t -> int -> int -> unit
let set_uint16_le : t -> int -> int -> unit
let set_int16_ne : t -> int -> int -> unit
let set_int16_be : t -> int -> int -> unit
let set_int16_le : t -> int -> int -> unit
let set_int32_ne : t -> int -> int32 -> unit
let set_int32_be : t -> int -> int32 -> unit
let set_int32_le : t -> int -> int32 -> unit
let set_int64_ne : t -> int -> int64 -> unit
let set_int64_be : t -> int -> int64 -> unit
let set_int64_le : t -> int -> int64 -> unit

View file

@ -109,3 +109,48 @@ val of_iter : char iter -> t
val of_seq : char Seq.t -> t val of_seq : char Seq.t -> t
val to_iter : t -> char iter val to_iter : t -> char iter
val to_seq : t -> char Seq.t val to_seq : t -> char Seq.t
(** {2 Endian operations} *)
val get_uint8 : t -> int -> int
val get_int8 : t -> int -> int
val get_uint16_ne : t -> int -> int
val get_uint16_be : t -> int -> int
val get_uint16_le : t -> int -> int
val get_int16_ne : t -> int -> int
val get_int16_be : t -> int -> int
val get_int16_le : t -> int -> int
val get_int32_ne : t -> int -> int32
val get_int32_be : t -> int -> int32
val get_int32_le : t -> int -> int32
val get_int64_ne : t -> int -> int64
val get_int64_be : t -> int -> int64
val get_int64_le : t -> int -> int64
val set_uint8 : t -> int -> int -> unit
val set_int8 : t -> int -> int -> unit
val set_uint16_ne : t -> int -> int -> unit
val set_uint16_be : t -> int -> int -> unit
val set_uint16_le : t -> int -> int -> unit
val set_int16_ne : t -> int -> int -> unit
val set_int16_be : t -> int -> int -> unit
val set_int16_le : t -> int -> int -> unit
val set_int32_ne : t -> int -> int32 -> unit
val set_int32_be : t -> int -> int32 -> unit
val set_int32_le : t -> int -> int32 -> unit
val set_int64_ne : t -> int -> int64 -> unit
val set_int64_be : t -> int -> int64 -> unit
val set_int64_le : t -> int -> int64 -> unit
[@@@ifgeq 4.14]
val get_utf_8_uchar : t -> int -> Uchar.utf_decode
val set_utf_8_uchar : t -> int -> Uchar.t -> int
val is_valid_utf_8 : t -> bool
val get_utf_16be_uchar : t -> int -> Uchar.utf_decode
val set_utf_16be_uchar : t -> int -> Uchar.t -> int
val is_valid_utf_16be : t -> bool
val get_utf_16le_uchar : t -> int -> Uchar.utf_decode
val set_utf_16le_uchar : t -> int -> Uchar.t -> int
val is_valid_utf_16le : t -> bool
[@@@endif]