package core

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Core.Uniform_arraySource

This module extends Base.Uniform_array with bin_io.

include Bin_prot.Binable.S1 with type 'a t := 'a t
Sourceval bin_size_t : ('a, 'a t) Bin_prot.Size.sizer1
Sourceval bin_write_t : ('a, 'a t) Bin_prot.Write.writer1
Sourceval bin_read_t : ('a, 'a t) Bin_prot.Read.reader1
Sourceval __bin_read_t__ : ('a, int -> 'a t) Bin_prot.Read.reader1
Sourceval bin_writer_t : ('a, 'a t) Bin_prot.Type_class.S1.writer
Sourceval bin_reader_t : ('a, 'a t) Bin_prot.Type_class.S1.reader
Sourceval bin_t : ('a, 'a t) Bin_prot.Type_class.S1.t
include Sexplib0.Sexpable.S1 with type 'a t := 'a t
include module type of struct include Base.Uniform_array end with type 'a t := 'a t
include Sexplib0.Sexpable.S1 with type 'a t := 'a t
Sourceval t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a t
Sourceval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
Sourceval compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
Sourceval invariant : _ t -> unit
Sourceval empty : _ t
Sourceval create : len:int -> 'a -> 'a t
Sourceval singleton : 'a -> 'a t
Sourceval init : int -> f:(int -> 'a) -> 'a t
Sourceval length : 'a t -> int
Sourceval get : 'a t -> int -> 'a
Sourceval unsafe_get : 'a t -> int -> 'a
Sourceval set : 'a t -> int -> 'a -> unit
Sourceval unsafe_set : 'a t -> int -> 'a -> unit
Sourceval swap : _ t -> int -> int -> unit
Sourceval unsafe_set_omit_phys_equal_check : 'a t -> int -> 'a -> unit

unsafe_set_omit_phys_equal_check is like unsafe_set, except it doesn't do a phys_equal check to try to skip caml_modify. It is safe to call this even if the values are phys_equal.

Sourceval unsafe_set_with_caml_modify : 'a t -> int -> 'a -> unit

unsafe_set_with_caml_modify always calls caml_modify before setting and never gets the old value. This is like unsafe_set_omit_phys_equal_check except it doesn't check whether the old value and the value being set are integers to try to skip caml_modify.

Sourceval set_with_caml_modify : 'a t -> int -> 'a -> unit

Same as unsafe_set_with_caml_modify, but with bounds check.

Sourceval map : 'a t -> f:('a -> 'b) -> 'b t
Sourceval mapi : 'a t -> f:(int -> 'a -> 'b) -> 'b t
Sourceval iter : 'a t -> f:('a -> unit) -> unit
Sourceval iteri : 'a t -> f:(int -> 'a -> unit) -> unit

Like iter, but the function is applied to the index of the element as first argument, and the element itself as second argument.

Sourceval foldi : 'a t -> init:'b -> f:(int -> 'b -> 'a -> 'b) -> 'b
Sourceval of_array : 'a array -> 'a t

of_array and to_array return fresh arrays with the same contents rather than returning a reference to the underlying array.

Sourceval to_array : 'a t -> 'a array
Sourceval of_list : 'a list -> 'a t
Sourceval to_list : 'a t -> 'a list
include Base.Blit.S1 with type 'a t := 'a t
Sourceval blit : src:'a t -> src_pos:int -> dst:'a t -> dst_pos:int -> len:int -> unit
Sourceval blito : src:'a t -> ?src_pos:int -> ?src_len:int -> dst:'a t -> ?dst_pos:int -> unit -> unit
Sourceval unsafe_blit : src:'a t -> src_pos:int -> dst:'a t -> dst_pos:int -> len:int -> unit
Sourceval sub : 'a t -> pos:int -> len:int -> 'a t
Sourceval subo : ?pos:int -> ?len:int -> 'a t -> 'a t
Sourceval copy : 'a t -> 'a t

Extra lowlevel and unsafe functions

Sourceval unsafe_create_uninitialized : len:int -> _ t

The behavior is undefined if you access an element before setting it.

Sourceval create_obj_array : len:int -> Caml.Obj.t t

New obj array filled with Obj.repr 0

Sourceval unsafe_set_assuming_currently_int : Caml.Obj.t t -> int -> Caml.Obj.t -> unit

unsafe_set_assuming_currently_int t i obj sets index i of t to obj, but only works correctly if the value there is an immediate, i.e. Caml.Obj.is_int (get t i). This precondition saves a dynamic check.

unsafe_set_int_assuming_currently_int is similar, except the value being set is an int.

unsafe_set_int is similar but does not assume anything about the target.

Sourceval unsafe_set_int_assuming_currently_int : Caml.Obj.t t -> int -> int -> unit
Sourceval unsafe_set_int : Caml.Obj.t t -> int -> int -> unit
Sourceval unsafe_clear_if_pointer : Caml.Obj.t t -> int -> unit

unsafe_clear_if_pointer t i prevents t.(i) from pointing to anything to prevent space leaks. It does this by setting t.(i) to Caml.Obj.repr 0. As a performance hack, it only does this when not (Caml.Obj.is_int t.(i)). It is an error to access the cleared index before setting it again.

Sourceval exists : 'a t -> f:('a -> bool) -> bool

As Array.exists.

Sourceval for_all : 'a t -> f:('a -> bool) -> bool

As Array.for_all.

Sourceval map2_exn : 'a t -> 'b t -> f:('a -> 'b -> 'c) -> 'c t

Functions with the 2 suffix raise an exception if the lengths of the two given arrays aren't the same.

Sourceval min_elt : 'a t -> compare:('a -> 'a -> int) -> 'a option
Sourceval max_elt : 'a t -> compare:('a -> 'a -> int) -> 'a option
OCaml

Innovation. Community. Security.