Table of Contents

Class Slug

Namespace
Trellis.Primitives
Assembly
Trellis.Primitives.dll

URL-safe slug value object (lowercase letters, digits, single hyphens).

[JsonConverter(typeof(ParsableJsonConverter<Slug>))]
public class Slug : ScalarValueObject<Slug, string>, IComparable<ValueObject>, IEquatable<ValueObject>, IConvertible, IScalarValue<Slug, string>, IParsable<Slug>
Inheritance
Slug
Implements
Inherited Members
Extension Methods

Remarks

Validation Rules (Opinionated):

  • Lowercase letters only (no uppercase)
  • Digits allowed
  • Hyphens allowed but not consecutive, leading, or trailing

If these rules don't fit your domain (e.g., you allow uppercase in slugs), create your own Slug value object using the ScalarValueObject<TSelf, T> base class.

Methods

Parse(string?, IFormatProvider?)

Parses a slug.

public static Slug Parse(string? s, IFormatProvider? provider)

Parameters

s string
provider IFormatProvider

Returns

Slug

TryCreate(string?, string?)

Attempts to create a slug.

public static Result<Slug> TryCreate(string? value, string? fieldName = null)

Parameters

value string
fieldName string

Returns

Result<Slug>

TryParse(string?, IFormatProvider?, out Slug)

Tries to parse a slug.

public static bool TryParse(string? s, IFormatProvider? provider, out Slug result)

Parameters

s string
provider IFormatProvider
result Slug

Returns

bool