// Copyright Epic Games, Inc. All Rights Reserved. using System.ComponentModel; using EpicGames.Core; using EpicGames.Horde; namespace HordeServer.Plugins { /// /// Name of a plugin /// /// [LogValueType] [JsonSchemaString] [TypeConverter(typeof(StringIdTypeConverter))] [StringIdConverter(typeof(PluginNameStringIdConverter))] public record struct PluginName(StringId Id) { /// /// Constructor /// /// public PluginName(string name) : this(new StringId(name)) { } /// public override string ToString() => Id.ToString(); } /// /// Converter from PluginName objects to regular StringId types /// class PluginNameStringIdConverter : StringIdConverter { /// public override PluginName FromStringId(StringId id) => new PluginName(id); /// public override StringId ToStringId(PluginName value) => value.Id; } }