Files
nadekobot/NadekoBot.Core/Services/Settings/ConfigParsers.cs
2021-09-06 21:29:22 +02:00

46 lines
1.2 KiB
C#

using System.Globalization;
using SixLabors.ImageSharp.PixelFormats;
namespace NadekoBot.Core.Services
{
/// <summary>
/// Custom setting value parsers for types which don't have them by default
/// </summary>
public static class ConfigParsers
{
/// <summary>
/// Default string parser. Passes input to output and returns true.
/// </summary>
public static bool String(string input, out string output)
{
output = input;
return true;
}
public static bool Culture(string input, out CultureInfo output)
{
try
{
output = new CultureInfo(input);
return true;
}
catch
{
output = null;
return false;
}
}
}
public static class ConfigPrinters
{
public static string ToString<TAny>(TAny input)
=> input.ToString();
public static string Culture(CultureInfo culture)
=> culture.Name;
public static string Color(Rgba32 color)
=> ((uint) (color.B << 0 | color.G << 8 | color.R << 16)).ToString("X6");
}
}