// Copyright Epic Games, Inc. All Rights Reserved. using System.ComponentModel; using EpicGames.Core; namespace EpicGames.Horde.Agents.Leases { /// /// Identifier for a user /// /// Id to construct from [LogValueType] [JsonSchemaString] [TypeConverter(typeof(BinaryIdTypeConverter))] [BinaryIdConverter(typeof(LeaseIdConverter))] public readonly record struct LeaseId(BinaryId Id) { /// public static bool TryParse(string text, out LeaseId leaseId) { BinaryId objectId; if (BinaryId.TryParse(text, out objectId)) { leaseId = new LeaseId(objectId); return true; } else { leaseId = default; return false; } } /// public static LeaseId Parse(string text) => new LeaseId(BinaryId.Parse(text)); /// public override string ToString() => Id.ToString(); } /// /// Converter to and from instances. /// class LeaseIdConverter : BinaryIdConverter { /// public override LeaseId FromBinaryId(BinaryId id) => new LeaseId(id); /// public override BinaryId ToBinaryId(LeaseId value) => value.Id; } }