| File: ApacheModRewrite\Flags.cs | Web Access |
| Project: src\aspnetcore\src\Middleware\Rewrite\src\Microsoft.AspNetCore.Rewrite.csproj (Microsoft.AspNetCore.Rewrite) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics.CodeAnalysis; namespace Microsoft.AspNetCore.Rewrite.ApacheModRewrite; // For more information of flags, and what flags we currently support: // https://github.com/aspnet/BasicMiddleware/issues/66 // http://httpd.apache.org/docs/current/expr.html#vars internal sealed class Flags { public IDictionary<FlagType, string> FlagDictionary { get; } public Flags(IDictionary<FlagType, string> flags) { FlagDictionary = flags; } public Flags() { FlagDictionary = new Dictionary<FlagType, string>(); } public void SetFlag(FlagType flag, string value) { if (value == null) { value = string.Empty; } FlagDictionary[flag] = value; } public bool GetValue(FlagType flag, [NotNullWhen(true)] out string? value) { if (!FlagDictionary.TryGetValue(flag, out var res)) { value = null; return false; } value = res; return true; } public string? this[FlagType flag] { get { if (!FlagDictionary.TryGetValue(flag, out var res)) { return null; } return res; } set { FlagDictionary[flag] = value ?? string.Empty; } } public bool HasFlag(FlagType flag) { return FlagDictionary.ContainsKey(flag); } }