Files
UnrealEngine/Engine/Source/Programs/Horde/HordeServer.Shared/Plugins/PluginName.cs
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

45 lines
1.0 KiB
C#

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