35 lines
721 B
C#
35 lines
721 B
C#
using Scalar.AspNetCore;
|
|
|
|
namespace OnlyPrompt.Backend.Utils
|
|
{
|
|
public struct Identifier
|
|
{
|
|
public string Slug { get; init; }
|
|
public Guid? Id { get; init; }
|
|
|
|
public Identifier(string slug)
|
|
{
|
|
this.Slug = slug;
|
|
this.Id = null;
|
|
}
|
|
|
|
public Identifier(Guid guid)
|
|
{
|
|
this.Id = guid;
|
|
this.Slug = string.Empty;
|
|
}
|
|
|
|
public static implicit operator Identifier(string slug) => new Identifier(slug);
|
|
public static implicit operator Identifier(Guid guid) => new Identifier(guid);
|
|
|
|
public static bool TryParse(string input, out Identifier identifier)
|
|
{
|
|
identifier= new Identifier(input);
|
|
if (Guid.TryParse(input, out var guid))
|
|
identifier = new Identifier(guid);
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|