diff options
Diffstat (limited to 'lib/Plugins.Essentials/src/FileProcessArgs.cs')
-rw-r--r-- | lib/Plugins.Essentials/src/FileProcessArgs.cs | 80 |
1 files changed, 12 insertions, 68 deletions
diff --git a/lib/Plugins.Essentials/src/FileProcessArgs.cs b/lib/Plugins.Essentials/src/FileProcessArgs.cs index dae695b..5ed4667 100644 --- a/lib/Plugins.Essentials/src/FileProcessArgs.cs +++ b/lib/Plugins.Essentials/src/FileProcessArgs.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) 2022 Vaughn Nugent +* Copyright (c) 2023 Vaughn Nugent * * Library: VNLib * Package: VNLib.Plugins.Essentials @@ -25,6 +25,8 @@ using System; using System.Net; +#nullable enable + namespace VNLib.Plugins.Essentials { /// <summary> @@ -69,7 +71,13 @@ namespace VNLib.Plugins.Essentials /// <summary> /// Specifies operations the file processor will follow during request handling /// </summary> - public readonly struct FileProcessArgs : IEquatable<FileProcessArgs> + /// <param name="Alternate"> + /// The routine the file processor should execute + /// </param> + /// <param name="Routine"> + /// An optional alternate path for the given routine + /// </param> + public readonly record struct FileProcessArgs(FpRoutine Routine, string Alternate) { /// <summary> /// Signals the file processor should complete with a <see cref="FpRoutine.Deny"/> routine @@ -91,79 +99,15 @@ namespace VNLib.Plugins.Essentials /// Signals the file processor should not process the connection /// </summary> public static readonly FileProcessArgs VirtualSkip = new (FpRoutine.VirtualSkip); - /// <summary> - /// The routine the file processor should execute - /// </summary> - public readonly FpRoutine Routine { get; init; } - /// <summary> - /// An optional alternate path for the given routine - /// </summary> - public readonly string Alternate { get; init; } + /// <summary> /// Initializes a new <see cref="FileProcessArgs"/> with the specified routine /// and empty <see cref="Alternate"/> path /// </summary> /// <param name="routine">The file processing routine to execute</param> - public FileProcessArgs(FpRoutine routine) - { - this.Routine = routine; - this.Alternate = string.Empty; - } - /// <summary> - /// Initializes a new <see cref="FileProcessArgs"/> with the specified routine - /// and alternate path - /// </summary> - /// <param name="routine"></param> - /// <param name="alternatePath"></param> - public FileProcessArgs(FpRoutine routine, string alternatePath) - { - this.Routine = routine; - this.Alternate = alternatePath; - } - /// <summary> - /// - /// </summary> - /// <param name="arg1"></param> - /// <param name="arg2"></param> - /// <returns></returns> - public static bool operator == (FileProcessArgs arg1, FileProcessArgs arg2) - { - return arg1.Equals(arg2); - } - /// <summary> - /// - /// </summary> - /// <param name="arg1"></param> - /// <param name="arg2"></param> - /// <returns></returns> - public static bool operator != (FileProcessArgs arg1, FileProcessArgs arg2) - { - return !arg1.Equals(arg2); - } - ///<inheritdoc/> - public bool Equals(FileProcessArgs other) - { - //make sure the routine types match - if (Routine != other.Routine) - { - return false; - } - //Next make sure the hashcodes of the alternate paths match - return (Alternate?.GetHashCode(StringComparison.OrdinalIgnoreCase)) == (other.Alternate?.GetHashCode(StringComparison.OrdinalIgnoreCase)); - } - ///<inheritdoc/> - public override bool Equals(object obj) - { - return obj is FileProcessArgs args && Equals(args); - } - /// <summary> - /// <inheritdoc/> - /// </summary> - /// <returns></returns> - public override int GetHashCode() + public FileProcessArgs(FpRoutine routine):this(routine, string.Empty) { - return base.GetHashCode(); } } }
\ No newline at end of file |