val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
val create : len:int -> _ t
val length : _ t -> int
val set : 'a t -> int -> 'a Core_kernel.Heap_block.t option -> unit
val set_exn : 'a t -> int -> 'a option -> unit
set_exn
raises an exception if givenSome x
withx
not being a heap block. This is in addition to raising exceptions on bounds violation asset
does.
val get : 'a t -> int -> 'a Core_kernel.Heap_block.t option
val is_some : _ t -> int -> bool
val is_none : _ t -> int -> bool
val iter : 'a t -> f:('a -> unit) -> unit
val iteri : 'a t -> f:(int -> 'a -> unit) -> unit
val blit : src:'a t -> src_pos:int -> dst:'a t -> dst_pos:int -> len:int -> unit
Warning!
blit
often takes time linear in the size of the arrays, not in the size of the range being copied. This issue is being tracked in https://github.com/ocaml/ocaml/issues/9258.Other than that,
blit
is generally preferred overget
followed byset
because, unlikeget
, it doesn't have to make the value strongly-referenced. Making a value strongly-referenced, even temporarily, may result in delaying its garbage collection by a whole GC cycle.