// Copyright Epic Games, Inc. All Rights Reserved. using System.ComponentModel; using EpicGames.Core; namespace EpicGames.Horde.Jobs { /// /// Identifier for a job step batch /// /// Id to construct from [LogValueType] [JsonSchemaString] [TypeConverter(typeof(SubResourceIdTypeConverter))] [SubResourceIdConverter(typeof(JobStepBatchIdConverter))] public readonly record struct JobStepBatchId(SubResourceId SubResourceId) { /// /// Constructor /// public JobStepBatchId(ushort value) : this(new SubResourceId(value)) { } /// /// Creates a new /// public static JobStepBatchId GenerateNewId() => new JobStepBatchId(SubResourceId.GenerateNewId()); /// public static JobStepBatchId Parse(string text) => new JobStepBatchId(SubResourceId.Parse(text)); /// public override string ToString() => SubResourceId.ToString(); } /// /// Converter to and from instances. /// class JobStepBatchIdConverter : SubResourceIdConverter { /// public override JobStepBatchId FromSubResourceId(SubResourceId subResourceId) => new JobStepBatchId(subResourceId); /// public override SubResourceId ToSubResourceId(JobStepBatchId value) => value.SubResourceId; } }