Module Int32.Make

Produce a module _ : S of bounded integers.

If the given interval is empty, S.t is the empty type, and of_int32 returns Error for all inputs.

Encoding

(Make B).encoding is based on the underlying int32 encoding. This allow future compatiblity with larger bounds, at the price of addding 1-3 redundant bytes to each message.

Parameters

module _ : BOUNDS

Signature

type t
include BOUNDS
val min_int : int32
val max_int : int32
include Mavryk_base.TzPervasives.Compare.S with type t := t
val (=) : t -> t -> bool

x = y iff compare x y = 0

val (<>) : t -> t -> bool

x <> y iff compare x y <> 0

val (<) : t -> t -> bool

x < y iff compare x y < 0

val (<=) : t -> t -> bool

x <= y iff compare x y <= 0

val (>=) : t -> t -> bool

x >= y iff compare x y >= 0

val (>) : t -> t -> bool

x > y iff compare x y > 0

val compare : t -> t -> int

compare an alias for the functor parameter's compare function

val equal : t -> t -> bool

equal x y iff compare x y = 0

val max : t -> t -> t

max x y is x if x >= y otherwise it is y

val min : t -> t -> t

min x y is x if x <= y otherwise it is y

val encoding : t Data_encoding.t
val to_int32 : t -> int32
val of_int32 : int32 -> t option