internal static ArgumentConversionResult Failure(Argument argument, string error, ArgumentConversionResultType reason) => new(argument, error, reason);
 private ArgumentConversionResult(Argument argument, object?value)
 {
     Argument = argument ?? throw new ArgumentNullException(nameof(argument));
     Value    = value;
     Result   = ArgumentConversionResultType.Successful;
 }
 private ArgumentConversionResult(Argument argument)
 {
     Argument = argument ?? throw new ArgumentNullException(nameof(argument));
     Result   = ArgumentConversionResultType.NoArgument;
 }
 private ArgumentConversionResult(Argument argument, string error, ArgumentConversionResultType failure)
 {
     Argument     = argument ?? throw new ArgumentNullException(nameof(argument));
     ErrorMessage = error ?? throw new ArgumentNullException(nameof(error));
     Result       = failure;
 }