aboutsummaryrefslogtreecommitdiff
path: root/src/Jellyfin.Extensions/EnumerableExtensions.cs
diff options
context:
space:
mode:
authorJoshua M. Boniface <joshua@boniface.me>2025-08-03 17:27:17 -0400
committerGitHub <noreply@github.com>2025-08-03 17:27:17 -0400
commit4b6fb6c4bb2478badad068ce18aabe0c2955db48 (patch)
tree15f986ee62327cceb8f5c8f009bcf08d10cfaa66 /src/Jellyfin.Extensions/EnumerableExtensions.cs
parente7bc86ebb8496615e0b3f73eb4f13ab4c0913dc8 (diff)
parentdb7465e83d9cc07134a0bffad7ed17b1c7b873da (diff)
Merge branch 'master' into master
Diffstat (limited to 'src/Jellyfin.Extensions/EnumerableExtensions.cs')
-rw-r--r--src/Jellyfin.Extensions/EnumerableExtensions.cs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/Jellyfin.Extensions/EnumerableExtensions.cs b/src/Jellyfin.Extensions/EnumerableExtensions.cs
index fd46358a4..3eb9da01f 100644
--- a/src/Jellyfin.Extensions/EnumerableExtensions.cs
+++ b/src/Jellyfin.Extensions/EnumerableExtensions.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Linq;
namespace Jellyfin.Extensions;
@@ -55,4 +56,22 @@ public static class EnumerableExtensions
{
yield return item;
}
+
+ /// <summary>
+ /// Gets an IEnumerable consisting of all flags of an enum.
+ /// </summary>
+ /// <param name="flags">The flags enum.</param>
+ /// <typeparam name="T">The type of item.</typeparam>
+ /// <returns>The IEnumerable{Enum}.</returns>
+ public static IEnumerable<T> GetUniqueFlags<T>(this T flags)
+ where T : Enum
+ {
+ foreach (Enum value in Enum.GetValues(flags.GetType()))
+ {
+ if (flags.HasFlag(value))
+ {
+ yield return (T)value;
+ }
+ }
+ }
}