diff --git a/.ocamlformat b/.ocamlformat index 0b4add55..4823e7af 100644 --- a/.ocamlformat +++ b/.ocamlformat @@ -1,6 +1,7 @@ version=0.27.0 exp-grouping=preserve -break-infix=wrap-or-vertical +type-decl=sparse +break-infix=fit-or-vertical break-collection-expressions=wrap break-sequences=false break-infix-before-func=false diff --git a/src/assets.ml b/src/assets.ml index 5116e366..4ec1b634 100644 --- a/src/assets.ml +++ b/src/assets.ml @@ -8,7 +8,9 @@ https://docs.taler.net/design-documents/003-tos-rendering.html *) (* todo: maybe move this type to config.ml *) -type t = Terms | Privacy +type t = + | Terms + | Privacy let etag = function | Terms -> Config.terms_etag diff --git a/src/config.ml b/src/config.ml index f5b0b0a8..304788ae 100644 --- a/src/config.ml +++ b/src/config.ml @@ -26,7 +26,11 @@ let currency_to_string = function `Eur -> "EUR" (* Values that represent an amount are in the usual amount syntax: CURRENCY:VALUE.FRACTION, e.g. EUR:1.50. The FRACTION portion may extend up to 8 places. *) -type value = { currency: [ `Eur ]; value: int; fraction: int } +type value = { + currency: [ `Eur ] + ; value: int + ; fraction: int +} let currency_round_unit = { currency= `Eur; value= 0; fraction= 1 } diff --git a/src/headers_lib.ml b/src/headers_lib.ml index c54081b4..357b9d0b 100644 --- a/src/headers_lib.ml +++ b/src/headers_lib.ml @@ -20,8 +20,14 @@ end = struct type t = string (* type for the value of header field *) - type header_etag_item = { weak: bool; value: string } - type header_value = Any_etag | Etag_list of header_etag_item list + type header_etag_item = { + weak: bool + ; value: string + } + + type header_value = + | Any_etag + | Etag_list of header_etag_item list let pp_header_etag_item ppf { weak; value } = if weak then Fmt.pf ppf {|W/"%s"|} value else Fmt.pf ppf {|"%s"|} value diff --git a/src/types.ml b/src/types.ml index d2406dec..e9903a99 100644 --- a/src/types.ml +++ b/src/types.ml @@ -2,14 +2,32 @@ module Error_detail = struct (* TODO GANA error codes https://git.gnunet.org/gana.git/tree/gnu-taler-error-codes/registry.rec *) - type t = { code: int; hint: string option } + type t = { + code: int + ; hint: string option + } end +(* TODO number + - number is "float", but we probably want int everywhere instead + - numeric values capped at 2^53 -1 inclusive because json + - have a type for seconds/microseconds/..? *) module Timestamp = struct (* Seconds since epoch, or the special value "never" to represent an event that will never happen. *) - type t = Never | Seconds of float + type t = + | Seconds of float + | Never +end + +module Relative_time = struct + (* Duration in microseconds or "forever" + to represent an infinite duration. Numeric + values are capped at 2^53 - 1 inclusive. *) + type t = + | Microseconds of float + | Forever end module Amount = struct