Add the shift function on Bstr #5

Merged
dinosaure merged 1 commit from shift into main 2025-01-13 12:43:30 +00:00
2 changed files with 8 additions and 0 deletions

View file

@ -391,6 +391,11 @@ module Bstr = struct
match rev with
| true -> rdrop ?min ?max ?sat bstr
| false -> fdrop ?min ?max ?sat bstr
let shift bstr off =
if off > length bstr then invalid_arg "Cachet.Bstr.shift";
let len = length bstr - off in
Bigarray.Array1.sub bstr off len
end
external hash : (int32[@unboxed]) -> int -> (int32[@unboxed])

View file

@ -187,6 +187,9 @@ module Bstr : sig
{[
(if rev then fst else snd) @@ span ~rev ~min ~max ~sat bstr
]} *)
val shift : t -> int -> t
(** [shift bstr n] is [sub bstr n (length bstr - n)]. *)
end
type slice = private { offset: int; length: int; payload: Bstr.t }