Slugs for Scala 3
Find a file
Pat Garrity 5339b31b3a
All checks were successful
/ Build and Test Library Snapshot (pull_request) Successful in 1m10s
(patch) I forgot how to BASH. Oops.
2024-03-23 23:00:04 -05:00
.forgejo/workflows (patch) I forgot how to BASH. Oops. 2024-03-23 23:00:04 -05:00
project gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -05:00
src (patch) Enable pre-commit. 2024-03-23 22:54:29 -05:00
.gitignore gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -05:00
.pre-commit-config.yaml gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -05:00
.scalafmt.conf gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -05:00
build.sbt gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -05:00
LICENSE gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -05:00
README.md (patch) Enable pre-commit. 2024-03-23 22:54:29 -05:00

gs-slug

License (Apache 2.0)

Scala 3 Slugs. Slugs are URL-safe restricted string identifiers.

Usage

This artifact is available in the Garrity Software Maven repository.

externalResolvers +=
  "Garrity Software Releases" at "https://maven.garrity.co/gs"

val GsSlug: ModuleID =
  "gs" %% "gs-slug-v0" % "0.1.0"

Slug Type

Slug is the type exposed by this library. It is an extremely small, restricted, opaque type (String) that adheres to the following regular expression:

^[a-z0-9]+(?:\-[a-z0-9]+)*$

This type is intended for use in the following scenarios:

  • Restricted ASCII is acceptable.
  • URL safety is desired.

Additionally, Slug is usually intended to be unique within some context, where the implementation defines the context. For example, if some organization owns a number of repositories, each repository might have a Slug which is unique within that organization.