using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; namespace Wabbajack.Common { public static class EnumExt { public static IEnumerable<T> GetValues<T>() where T : struct, Enum { return Enum.GetValues(typeof(T)).Cast<T>(); } public static string ToDescriptionString<TEnum>(this TEnum val) where TEnum : struct, IConvertible { if (!typeof(TEnum).IsEnum) { throw new ArgumentException("T must be an Enum"); } var attributes = (DescriptionAttribute[])val.GetType().GetField(val.ToString()!)!.GetCustomAttributes(typeof(DescriptionAttribute), false); return attributes.Length > 0 ? attributes[0].Description : val.ToString()!; } } }