diff options
| author | godosa <godosa@godosa.eu> | 2026-10-06 23:39:36 +0200 |
|---|---|---|
| committer | godosa <godosa@godosa.eu> | 2026-10-06 23:39:36 +0200 |
| commit | 39066900773e7857faf2d02e7ed51b71d219d97d (patch) | |
| tree | ffab8e4ddd971626776c3b1f4ce1da2c186c2187 /src/Godosa.Core/Diagnostics/DebugFlags.cs | |
| download | godosa-engine-39066900773e7857faf2d02e7ed51b71d219d97d.tar.gz godosa-engine-39066900773e7857faf2d02e7ed51b71d219d97d.zip | |
godosa-engine: initial public history
Diffstat (limited to 'src/Godosa.Core/Diagnostics/DebugFlags.cs')
| -rw-r--r-- | src/Godosa.Core/Diagnostics/DebugFlags.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Godosa.Core/Diagnostics/DebugFlags.cs b/src/Godosa.Core/Diagnostics/DebugFlags.cs new file mode 100644 index 0000000..27b63bf --- /dev/null +++ b/src/Godosa.Core/Diagnostics/DebugFlags.cs @@ -0,0 +1,20 @@ +namespace Godosa.Core.Diagnostics; + +/// <summary>Opt-in debug categories from one environment value: a comma list, +/// case-insensitive; <c>all</c> turns on every category but not <see cref="Exact"/> +/// switches (perf experiments like <c>nohud</c>).</summary> +public sealed class DebugFlags +{ + private readonly string[] _names; + + public DebugFlags(string? value) => + _names = (value ?? "").Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + + public bool On(string category) => + Array.Exists(_names, n => + n.Equals(category, StringComparison.OrdinalIgnoreCase) || + n.Equals("all", StringComparison.OrdinalIgnoreCase)); + + public bool Exact(string name) => + Array.Exists(_names, n => n.Equals(name, StringComparison.OrdinalIgnoreCase)); +} |
