using System.Collections.Concurrent;
using System.Text.Json.Serialization;
namespace Terminal.Gui.Configuration;
///
/// Allow AOT and self-contained single file applications with the .
///
/// The SourceGenerationContext class leverages the System.Text.Json source generation feature to pre-generate
/// serialization metadata for specific types. This approach avoids runtime reflection, which is problematic in AOT
/// scenarios where metadata might be stripped, and improves performance by generating serialization code at
/// compile time.
///
///
[JsonSerializable (typeof (bool?))]
[JsonSerializable (typeof (Dictionary))]
[JsonSerializable (typeof (List))]
[JsonSerializable (typeof (Attribute))]
[JsonSerializable (typeof (Color))]
[JsonSerializable (typeof (Key))]
[JsonSerializable (typeof (Glyphs))]
[JsonSerializable (typeof (Alignment))]
[JsonSerializable (typeof (AlignmentModes))]
[JsonSerializable (typeof (LineStyle))]
[JsonSerializable (typeof (ShadowStyle))]
[JsonSerializable (typeof (MouseState))]
[JsonSerializable (typeof (TextStyle))]
[JsonSerializable (typeof (Dictionary))]
[JsonSerializable (typeof (Dictionary))]
[JsonSerializable (typeof (Dictionary))]
[JsonSerializable (typeof (ConcurrentDictionary))]
[JsonSerializable (typeof (ConfigProperty))]
[JsonSerializable (typeof (Scope))]
[JsonSerializable (typeof (AppSettingsScope))]
[JsonSerializable (typeof (SettingsScope))]
[JsonSerializable (typeof (ThemeScope))]
[JsonSerializable (typeof (Scope))]
[JsonSerializable (typeof (Scope))]
[JsonSerializable (typeof (Scope))]
[JsonSerializable (typeof (ConcurrentDictionary))]
[JsonSerializable (typeof (Dictionary))]
internal partial class SourceGenerationContext : JsonSerializerContext
{ }