summaryrefslogtreecommitdiff
path: root/dynarray.sig
blob: a588c0e4cfec622a03ac9c689564f922a6d697df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
signature DYNARRAY = sig
  type 'a t = (int * 'a option Array.array) ref

  val create: int -> 'a t
  val create0: unit -> 'a t

  val length: 'a t -> int

  val push: 'a t -> 'a -> unit
  val pushAndGetId: 'a t -> 'a -> int
  val get: 'a t -> int -> 'a
  val set: 'a t -> int -> 'a -> unit
  val update: 'a t -> ('a -> 'a) -> int -> unit
  val copy: 'a t -> ('a -> 'b) -> 'b t

  val reset: 'a t -> unit
  val toVec: 'a t -> 'a vector
  val appi: (int * 'a -> unit) -> 'a t -> unit

  val pop: 'a t -> 'a
  val last: 'a t -> 'a
end