package core

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

Utility functions for parsing and outputing strings containing known numbers of digits. Used primarily for building functions for reading in and writing out Time related values.

val write_int63 : Base.Bytes.t -> pos:Base.Int.t -> digits:Base.Int.t -> Int63.t -> Base.Unit.t

Write digit functions

write_int63 bytes ~pos ~digits int63 writes the string representation of int63, 0-padded to fill digits characters, into bytes starting at position pos. Raises if int is negative or is too long for bytes, if pos is an invalid index in bytes for the number of digits, or if digits < 1.

val write_1_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t

write_*_digit_int is like write_int63 for a hard-coded number of digits and for int rather than Int63.t.

val write_2_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t
val write_3_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t
val write_4_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t
val write_5_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t
val write_6_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t
val write_7_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t
val write_8_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t
val write_9_digit_int : Base.Bytes.t -> pos:Base.Int.t -> Base.Int.t -> Base.Unit.t
val read_int63 : Base.String.t -> pos:Base.Int.t -> digits:Base.Int.t -> Int63.t

Read digit functions

read_int63 string ~pos ~digits parses digits characters starting at pos in string and returns the corresponding Int63.t. It raises if digits < 1 or pos < 0 or pos + digits > String.length string.

val read_1_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t

read_*_digit_int is like read_int63 for a hard-coded number of digits and for int rather than Int63.t.

val read_2_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t
val read_3_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t
val read_4_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t
val read_5_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t
val read_6_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t
val read_7_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t
val read_8_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t
val read_9_digit_int : Base.String.t -> pos:Base.Int.t -> Base.Int.t
module Round : sig ... end
val read_int63_decimal : Base.String.t -> pos:Base.Int.t -> decimals:Base.Int.t -> scale:Int63.t -> round_ties:Round.t -> allow_underscore:Base.Bool.t -> Int63.t

read_int63_decimal string ~pos ~decimals ~scale ~round_ties ~allow_underscore reads decimals characters from string starting at pos as a decimal value as if starting immediately after a decimal point, and returns that fraction times scale. The result is rounded to the nearest value, with ties broken by round_ties.

This function is useful for reading the decimal parts of numbers annotated with units that scale the result, such as when reading time units like "1.0ms" or "12.125s".

If allow_underscore = true, then '_' characters in string are allowed and ignored. Otherwise only digit characters are allowed.

Raises if pos is out of range for string and decimals, or if scale < 1 or scale > max_value / 20.

val max_int63_with : digits:Base.Int.t -> Int63.t

max_int63_with ~digits returns the maximum Int63.t that fits in digits decimal digits.

module Unsafe : sig ... end