module Protocol_version = struct (* TODO *) (* libtool version format *) let current = 0 let revision = 0 let age = 0 let v = Fmt.str "%d:%d:%d" end (* -- Ptime -- *) let ptime_to_int64 ptime = ptime |> Ptime.to_float_s |> Int64.of_float let ptime_of_int64 i = match Ptime.of_float_s (Int64.to_float i) with | None -> Fmt.error "ptime_of_int64 error: `%Ld` is not a valid ptime" i | Some ts -> Ok ts let ptime_of_span_exn span = match Ptime.of_span span with | None -> Fmt.failwith "Ptime.of_span: not in the range [min;max]" | Some p -> p let ptime_add_span_exn p span = match Ptime.add_span p span with | None -> Fmt.failwith "Ptime.add_span: not in the range [min;max]" | Some v -> v (* -- *** -- *) (* TODO bin - no [Bin.of_string] ? *) let bin_of_string bin s = let v = Bin.decode bin s (ref 0) in Ok v