aboutsummaryrefslogtreecommitdiff
path: root/lib/kernel/slug.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/slug.mli')
-rw-r--r--lib/kernel/slug.mli16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/kernel/slug.mli b/lib/kernel/slug.mli
new file mode 100644
index 0000000..0081e2b
--- /dev/null
+++ b/lib/kernel/slug.mli
@@ -0,0 +1,16 @@
+(** Stable celebration identifiers: non-empty [a-z0-9-], no leading or trailing
+ hyphen. Also serve as lectionary keys. *)
+type t = private string
+
+val of_string : string -> (t, string) result
+
+(** For literals in code and tests. Raises [Invalid_argument] on a bad slug. *)
+val of_string_exn : string -> t
+
+val to_string : t -> string
+val compare : t -> t -> int
+val equal : t -> t -> bool
+
+(** Validating; raises [Of_sexp_error] on a malformed slug. *)
+val t_of_sexp : Sexplib0.Sexp.t -> t
+val sexp_of_t : t -> Sexplib0.Sexp.t