You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
501 B

[@deriving (eq, ord, make)]
type t = {
major: int,
minor: int,
patch: int,
};
let fromString = str =>
switch (
String.split_on_char('.', str)
|> List.map(int_of_string_opt)
|> Base.Option.all
) {
| Some([major, minor, patch]) => Some({major, minor, patch})
| _ => None
};
let toString = ({major, minor, patch}) =>
Printf.sprintf("%d.%d.%d", major, minor, patch);
let major = ({major, _}) => major;
let minor = ({minor, _}) => minor;
6 years ago
let patch = ({patch, _}) => patch;