repo_id.ml1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17type t = { owner : string; name : string; } let pp f { owner; name } = Fmt.pf f "%s/%s" owner name let compare = compare let cmdliner = let open Cmdliner in let parse s = match Astring.String.cuts ~sep:"/" s with | [ owner; name] -> Ok { owner; name } | _ -> Fmt.error_msg "%S not in the form 'owner/name'" s in Arg.conv ~docv:"REPO" (parse, pp)