File: Version.ml

package info (click to toggle)
ocamlformat 0.27.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,068 kB
  • sloc: ml: 61,288; pascal: 4,739; lisp: 229; sh: 217; makefile: 121
file content (25 lines) | stat: -rw-r--r-- 1,234 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(**************************************************************************)
(*                                                                        *)
(*                              OCamlFormat                               *)
(*                                                                        *)
(*            Copyright (c) Facebook, Inc. and its affiliates.            *)
(*                                                                        *)
(*      This source code is licensed under the MIT license found in       *)
(*      the LICENSE file in the root directory of this source tree.       *)
(*                                                                        *)
(**************************************************************************)

type t = {major: int; minor: int; patch: int option}

let make ~major ~minor ~patch = {major; minor; patch}

let to_string = function
  | {major; minor; patch= None} -> Format.sprintf "%i.%i" major minor
  | {major; minor; patch= Some patch} ->
      Format.sprintf "%i.%i.%i" major minor patch

let pp fs v = Format.fprintf fs "%s" (to_string v)

let current =
  let open Build_info.V1 in
  version () |> Option.value_map ~f:Version.to_string ~default:"unknown"