Slugs for Scala 3
Find a file
Pat Garrity 117f9fa6e6
Some checks failed
/ Build and Test Library Snapshot (pull_request) Failing after 41s
(patch) Update the README
2024-03-23 22:52:46 -05:00
.forgejo/workflows gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -05:00
project gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -05:00
src gs-slug: Initial commit with a complete implementation. 2024-03-23 22:46:21 -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) Update the README 2024-03-23 22:52:46 -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.