Module Core_kernel.Bucket.Int64

type contents = Int64.t
type t = Make(Core_kernel__.Int64).t
val bin_t : t Bin_prot.Type_class.t
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (Core_kernel__.Import.int ‑> 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 : Base.Sexp.t ‑> t
val sexp_of_t : t ‑> Base.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 ‑> Core_kernel__.Import.unit

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