namespace AIStudio.Settings.DataModel; public static class PreviewVisibilityExtensions { public static IList GetPreviewFeatures(this PreviewVisibility visibility) { var features = new List(); if (visibility >= PreviewVisibility.RELEASE_CANDIDATE) { } if (visibility >= PreviewVisibility.BETA) { } if (visibility >= PreviewVisibility.ALPHA) { } if (visibility >= PreviewVisibility.PROTOTYPE) { features.Add(PreviewFeatures.PRE_RAG_2024); } if (visibility >= PreviewVisibility.EXPERIMENTAL) { features.Add(PreviewFeatures.PRE_WRITER_MODE_2024); } return features; } public static HashSet FilterPreviewFeatures(this PreviewVisibility visibility, HashSet enabledFeatures) { var filteredFeatures = new HashSet(); var previewFeatures = visibility.GetPreviewFeatures(); foreach (var feature in enabledFeatures) { if (previewFeatures.Contains(feature)) filteredFeatures.Add(feature); } return filteredFeatures; } }