package core_kernel

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type contents
type t
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (Base.Int.t -> t) Bin_prot.Read.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_shape_t : Bin_prot.Shape.t
val t_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> t
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val create : size:contents -> init_level:contents -> t

Fails if init_level is not within bounds zero;size.

val size : t -> contents

The size used upon creation.

val level : t -> contents

The current bucket level.

val take : t -> contents -> [ `Taken | `Unable ]

Take some exact amount out of the bucket and return `Taken. If there is not enough left in the bucket, return `Unable and do not take anything.

val take_at_most : t -> contents -> contents

Take some amount out of the bucket, possibly emptying it. The return value is the amount that was actually taken out.

val fill : t -> contents -> Base.Unit.t

Add some amount into the bucket. Cap at maximum capacity if the increment provided is too big.