Module Vcs.User_handle

A user handle, such as user pseudonym on GitHub, used in CR comments, etc.

Unlike User_name.t, a user handle does not have spaces. A common practice is to use the users's login on GitHub, which means we inherit already the uniqueness enforced by GitHub.

Example: User_handle.v "jdoe".

It is worth noting that user handles are usually not used directly by the version control. Indeed, Git will use user.name from the user's config, which includes the full first name and last name, including spaces etc. This module is part of the Vcs library for convenience.

type t
val compare : t -> t -> int
val equal : t -> t -> bool
val hash : t -> int
val seeded_hash : int -> t -> int
val sexp_of_t : t -> Sexplib0.Sexp.t
val to_string : t -> string

Given that t = string in the implementation, this function is just the identity.

val of_string : string -> (t, [ `Msg of string ]) Stdlib.Result.t

of_string str returns Ok str if X.invariant str = true, and an error otherwise. This is meant to be used to validate untrusted entries.

val v : string -> t

v str is a convenient wrapper to build a t or raise Invalid_argument. This is typically handy for applying on trusted literals.