package melange

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
  • alert unstable The Domain interface may change in incompatible ways in the future.
type 'a t = {
  1. mutable length : int;
  2. mutable arr : 'a slot array;
}
and 'a slot =
  1. | Empty
  2. | Elem of {
    1. mutable v : 'a;
    }
module Error : sig ... end
val check_same_length : string -> 'a t -> length:int -> unit

Careful unsafe access.

val check_valid_length : int -> 'a array -> unit
val unsafe_get : 'a slot array -> i:int -> length:int -> 'b

Dynamic arrays

val create : unit -> 'a t
val make : int -> 'a -> 'b t
val init : int -> (int -> 'a) -> 'b t
val get : 'a t -> int -> 'b
val set : 'a t -> int -> 'b -> unit
val length : 'a t -> int
val is_empty : 'a t -> bool
val copy : 'a t -> 'b t
val get_last : 'a t -> 'b
val find_last : 'a t -> 'b option

Removing elements

val pop_last : 'a t -> 'b
val pop_last_opt : 'a t -> 'b option
val remove_last : 'a t -> unit
val truncate : 'a t -> int -> unit
val clear : 'a t -> unit

Backing array and capacity

val capacity : 'a t -> int
val next_capacity : int -> int
val ensure_capacity : 'a t -> int -> unit
val ensure_extra_capacity : 'a t -> int -> unit
val fit_capacity : 'a t -> unit
val set_capacity : 'a t -> int -> unit
val reset : 'a t -> unit

Adding elements

val add_last_if_room : 'a t -> 'b slot -> bool
val add_last : 'a t -> 'b -> unit
val append_list : 'a t -> 'b list -> unit
val append_iter : 'a t -> (('b -> unit) -> 'c -> 'd) -> 'e -> 'f
val append_seq : 'a t -> 'b Seq.t -> unit
val append_array_if_room : 'a t -> 'b array -> bool
val append_array : 'a t -> 'a array -> unit
val append_if_room : 'a t -> 'b t -> length_b:int -> bool
val append : 'a t -> 'a t -> unit

Iteration

val iter_ : string -> ('a -> unit) -> 'b t -> unit
val iter : ('a -> unit) -> 'a t -> unit
val iteri : (int -> 'a -> unit) -> 'b t -> unit
val map : ('a -> 'b) -> 'c t -> 'd t
val mapi : (int -> 'a -> 'b) -> 'c t -> 'd t
val fold_left : ('a -> 'b -> 'c) -> 'd -> 'e t -> 'f
val fold_right : ('a -> 'b -> 'c) -> 'd t -> 'e -> 'f
val exists : ('a -> bool) -> 'b t -> bool
val for_all : ('a -> bool) -> 'b t -> bool
val filter : ('a -> bool) -> 'b t -> 'c t
val filter_map : ('a -> 'b option) -> 'c t -> 'd t

Conversions to other data structures

val of_array : 'a array -> 'b t
val to_array : 'a t -> 'b array
val of_list : 'a list -> 'b t
val to_list : 'a t -> 'b list
val of_seq : 'a Seq.t -> 'b t
val to_seq : 'a t -> 'b Seq.t
val to_seq_reentrant : 'a t -> 'b Seq.t
val to_seq_rev : 'a t -> 'b Seq.t
val to_seq_rev_reentrant : 'a t -> 'b Seq.t
OCaml

Innovation. Community. Security.