// 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;
}
}