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
sstringproviderIFormatProvider
Returns
TryCreate(string?, string?)
Attempts to create a slug.
public static Result<Slug> TryCreate(string? value, string? fieldName = null)
Parameters
Returns
TryParse(string?, IFormatProvider?, out Slug)
Tries to parse a slug.
public static bool TryParse(string? s, IFormatProvider? provider, out Slug result)
Parameters
sstringproviderIFormatProviderresultSlug