From 69d53cebb74c43a652668ccaa819ab967aad35a6 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 21 Jul 2026 21:10:26 +0000 Subject: [PATCH] build: add a public-API baseline and package validation The shipping libraries commit to SemVer but had no automated breaking-change gate: a repo-wide search found no PublicApiAnalyzers, no package validation, no ApiCompat baseline. A removed overload, a narrowed return type, or a renamed member could ship silently under a version that promises compatibility. Pre-release is the cheapest moment to install this, since the first published surface becomes the baseline. Wire both guards once in build/PublicApiBaseline.props, imported by the four packable libraries -- the lib train (FirstClassErrors, FirstClassErrors.Testing, FirstClassErrors.RequestBinder) and Dummies: * PublicApiAnalyzers tracks each project's surface in committed PublicAPI.Shipped.txt / PublicAPI.Unshipped.txt files, one pair per target framework (Dummies' net8.0 leg carries the modern generators netstandard2.0 lacks). RS0016/RS0017 stay warnings locally and become errors under the CI warnings-as-errors ratchet, so a surface change fails the build until the same change records it. * EnablePackageValidation runs ApiCompat on pack -- baseline-less for now (the same-package cross-TFM check), ready to gate against a published version via PackageValidationBaselineVersion once the surface stabilises. The issue scoped this to Dummies; it is extended to the lib train because those packages carry the same SemVer promise and the mechanism is identical. RS0026/RS0027 (the optional-parameter overload design rules) are disabled deliberately: they fire on the deliberate central fluent APIs (Outcome.Then/Recover/Finally/Try, Any.Reproducibly), where enforcing them would demand a breaking redesign -- a separate call for the maintainer, not a baseline chore. Refs: #221 Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01LuKEgwmiNthNBXEXidrbhV --- CONTRIBUTING.md | 41 ++ Directory.Packages.props | 1 + Dummies/Dummies.csproj | 4 + .../PublicAPI/net8.0/PublicAPI.Shipped.txt | 1 + .../PublicAPI/net8.0/PublicAPI.Unshipped.txt | 412 ++++++++++++++++++ .../netstandard2.0/PublicAPI.Shipped.txt | 1 + .../netstandard2.0/PublicAPI.Unshipped.txt | 342 +++++++++++++++ .../FirstClassErrors.RequestBinder.csproj | 3 + .../netstandard2.0/PublicAPI.Shipped.txt | 1 + .../netstandard2.0/PublicAPI.Unshipped.txt | 99 +++++ .../FirstClassErrors.Testing.csproj | 3 + .../netstandard2.0/PublicAPI.Shipped.txt | 1 + .../netstandard2.0/PublicAPI.Unshipped.txt | 41 ++ FirstClassErrors/FirstClassErrors.csproj | 3 + .../netstandard2.0/PublicAPI.Shipped.txt | 1 + .../netstandard2.0/PublicAPI.Unshipped.txt | 287 ++++++++++++ build/PublicApiBaseline.props | 75 ++++ doc/handwritten/for-users/CONTRIBUTING.fr.md | 47 ++ 18 files changed, 1363 insertions(+) create mode 100644 Dummies/PublicAPI/net8.0/PublicAPI.Shipped.txt create mode 100644 Dummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt create mode 100644 Dummies/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt create mode 100644 Dummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt create mode 100644 FirstClassErrors.RequestBinder/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt create mode 100644 FirstClassErrors.RequestBinder/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt create mode 100644 FirstClassErrors.Testing/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt create mode 100644 FirstClassErrors.Testing/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt create mode 100644 FirstClassErrors/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt create mode 100644 FirstClassErrors/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt create mode 100644 build/PublicApiBaseline.props diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 608a5202..392c21ef 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,6 +17,47 @@ library produces. This guide defines how commits are written here. See [`CLAUDE.md`](CLAUDE.md) for the project layout and the broader change guidelines. +## Public API baseline + +The shipping libraries — `FirstClassErrors`, `FirstClassErrors.Testing`, +`FirstClassErrors.RequestBinder` (the `lib` train) and `Dummies` (the `dum` +train) — carry a committed public-API baseline, so every change to their public +surface is a reviewed diff and an accidental breaking change (a removed overload, +a narrowed return type, a renamed member) cannot ship silently under a version +number that promises compatibility. Two guards, wired once in +[`build/PublicApiBaseline.props`](build/PublicApiBaseline.props): + +* **`Microsoft.CodeAnalysis.PublicApiAnalyzers`** tracks the surface in committed + `PublicAPI.Shipped.txt` / `PublicAPI.Unshipped.txt` files under each project's + `PublicAPI//` folder. An undeclared public symbol raises + `RS0016`; a declared symbol that no longer exists raises `RS0017`. Both are + warnings locally and errors in CI (the warnings-as-errors ratchet), so a + surface change fails the build until the same change updates the baseline. +* **Package validation** (`EnablePackageValidation`) runs ApiCompat during + `dotnet pack`. With no baseline version set it performs the same-package + cross-target-framework check (it proves `Dummies`' net8.0 surface never drops + API a netstandard2.0 consumer sees). To additionally gate against a published + version, set `PackageValidationBaselineVersion`; `0.1.0-preview.1` is the first + such baseline available for the `lib` train. + +**Accepting an intended surface change.** Update the baseline in the same commit: + +* **In an IDE**: apply the *"Add to public API"* code fix on the `RS0016` + diagnostic. +* **From the CLI**: `dotnet format analyzers --diagnostics RS0016` + appends the new entries to `PublicAPI.Unshipped.txt`; for a **removal**, delete + the matching line by hand. +* **Multi-target (`Dummies`)**: each framework has its own baseline under + `PublicAPI//`, and `dotnet format` rewrites only one framework's file per + run — update `net8.0` and `netstandard2.0` separately when a change touches both. +* **At release**: promote the accumulated `PublicAPI.Unshipped.txt` entries into + `PublicAPI.Shipped.txt` (the *"mark shipped"* fix, or by hand). + +`RS0026`/`RS0027` (the "optional parameters across overloads" design rules) are +disabled deliberately: they fire on the library's central fluent APIs +(`Outcome.Then`/`Recover`/`Finally`/`Try`, `Any.Reproducibly`), where enforcing +them would demand a breaking redesign — a separate decision, not a baseline chore. + ## Enabling the commit-message hook A `commit-msg` hook checks every message against the convention below before it diff --git a/Directory.Packages.props b/Directory.Packages.props index 9ff52b83..b203e811 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -31,6 +31,7 @@ + diff --git a/Dummies/Dummies.csproj b/Dummies/Dummies.csproj index 96b74101..0c371cd8 100644 --- a/Dummies/Dummies.csproj +++ b/Dummies/Dummies.csproj @@ -1,5 +1,9 @@ + + + diff --git a/Dummies/PublicAPI/net8.0/PublicAPI.Shipped.txt b/Dummies/PublicAPI/net8.0/PublicAPI.Shipped.txt new file mode 100644 index 00000000..7dc5c581 --- /dev/null +++ b/Dummies/PublicAPI/net8.0/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/Dummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt b/Dummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..46f7533c --- /dev/null +++ b/Dummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt @@ -0,0 +1,412 @@ +#nullable enable +Dummies.Any +Dummies.AnyArray +Dummies.AnyArray.Distinct() -> Dummies.AnyArray! +Dummies.AnyArray.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnyArray! +Dummies.AnyBoolean +Dummies.AnyBoolean.DifferentFrom(bool value) -> Dummies.AnyBoolean! +Dummies.AnyBoolean.False() -> Dummies.AnyBoolean! +Dummies.AnyBoolean.Generate() -> bool +Dummies.AnyBoolean.True() -> Dummies.AnyBoolean! +Dummies.AnyByte +Dummies.AnyByte.Between(byte minimum, byte maximum) -> Dummies.AnyByte! +Dummies.AnyByte.DifferentFrom(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.Except(params byte[]! values) -> Dummies.AnyByte! +Dummies.AnyByte.Generate() -> byte +Dummies.AnyByte.GreaterThan(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.GreaterThanOrEqualTo(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.LessThan(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.LessThanOrEqualTo(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.NonZero() -> Dummies.AnyByte! +Dummies.AnyByte.OneOf(params byte[]! values) -> Dummies.AnyByte! +Dummies.AnyByte.Zero() -> Dummies.AnyByte! +Dummies.AnyChar +Dummies.AnyChar.Alpha() -> Dummies.AnyChar! +Dummies.AnyChar.AlphaNumeric() -> Dummies.AnyChar! +Dummies.AnyChar.DifferentFrom(char value) -> Dummies.AnyChar! +Dummies.AnyChar.Except(params char[]! values) -> Dummies.AnyChar! +Dummies.AnyChar.Generate() -> char +Dummies.AnyChar.LowerCase() -> Dummies.AnyChar! +Dummies.AnyChar.Numeric() -> Dummies.AnyChar! +Dummies.AnyChar.OneOf(params char[]! values) -> Dummies.AnyChar! +Dummies.AnyChar.UpperCase() -> Dummies.AnyChar! +Dummies.AnyCollection +Dummies.AnyCollection.Containing(TItem value) -> TSelf! +Dummies.AnyCollection.ContainingAny(Dummies.IAny! generator) -> TSelf! +Dummies.AnyCollection.Empty() -> TSelf! +Dummies.AnyCollection.Generate() -> TResult +Dummies.AnyCollection.NonEmpty() -> TSelf! +Dummies.AnyCollection.WithCount(int count) -> TSelf! +Dummies.AnyCollection.WithCountBetween(int minimum, int maximum) -> TSelf! +Dummies.AnyCollection.WithMaxCount(int count) -> TSelf! +Dummies.AnyCollection.WithMinCount(int count) -> TSelf! +Dummies.AnyContext +Dummies.AnyContext.Boolean() -> Dummies.AnyBoolean! +Dummies.AnyContext.Byte() -> Dummies.AnyByte! +Dummies.AnyContext.Char() -> Dummies.AnyChar! +Dummies.AnyContext.DateOnly() -> Dummies.AnyDateOnly! +Dummies.AnyContext.DateTime() -> Dummies.AnyDateTime! +Dummies.AnyContext.DateTimeOffset() -> Dummies.AnyDateTimeOffset! +Dummies.AnyContext.Decimal() -> Dummies.AnyDecimal! +Dummies.AnyContext.Double() -> Dummies.AnyDouble! +Dummies.AnyContext.Enum() -> Dummies.AnyEnum! +Dummies.AnyContext.Guid() -> Dummies.AnyGuid! +Dummies.AnyContext.Half() -> Dummies.AnyHalf! +Dummies.AnyContext.Int128() -> Dummies.AnyInt128! +Dummies.AnyContext.Int16() -> Dummies.AnyInt16! +Dummies.AnyContext.Int32() -> Dummies.AnyInt32! +Dummies.AnyContext.Int64() -> Dummies.AnyInt64! +Dummies.AnyContext.SByte() -> Dummies.AnySByte! +Dummies.AnyContext.Seed.get -> int +Dummies.AnyContext.Single() -> Dummies.AnySingle! +Dummies.AnyContext.String() -> Dummies.AnyString! +Dummies.AnyContext.StringMatching(string! pattern) -> Dummies.AnyPattern! +Dummies.AnyContext.StringMatching(System.Text.RegularExpressions.Regex! pattern) -> Dummies.AnyPattern! +Dummies.AnyContext.TimeOnly() -> Dummies.AnyTimeOnly! +Dummies.AnyContext.TimeSpan() -> Dummies.AnyTimeSpan! +Dummies.AnyContext.UInt128() -> Dummies.AnyUInt128! +Dummies.AnyContext.UInt16() -> Dummies.AnyUInt16! +Dummies.AnyContext.UInt32() -> Dummies.AnyUInt32! +Dummies.AnyContext.UInt64() -> Dummies.AnyUInt64! +Dummies.AnyDateOnly +Dummies.AnyDateOnly.After(System.DateOnly date) -> Dummies.AnyDateOnly! +Dummies.AnyDateOnly.AfterOrEqualTo(System.DateOnly date) -> Dummies.AnyDateOnly! +Dummies.AnyDateOnly.Before(System.DateOnly date) -> Dummies.AnyDateOnly! +Dummies.AnyDateOnly.BeforeOrEqualTo(System.DateOnly date) -> Dummies.AnyDateOnly! +Dummies.AnyDateOnly.Between(System.DateOnly start, System.DateOnly end) -> Dummies.AnyDateOnly! +Dummies.AnyDateOnly.DifferentFrom(System.DateOnly value) -> Dummies.AnyDateOnly! +Dummies.AnyDateOnly.Except(params System.DateOnly[]! values) -> Dummies.AnyDateOnly! +Dummies.AnyDateOnly.Generate() -> System.DateOnly +Dummies.AnyDateOnly.OneOf(params System.DateOnly[]! values) -> Dummies.AnyDateOnly! +Dummies.AnyDateTime +Dummies.AnyDateTime.After(System.DateTime instant) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.AfterOrEqualTo(System.DateTime instant) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.Before(System.DateTime instant) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.BeforeOrEqualTo(System.DateTime instant) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.Between(System.DateTime start, System.DateTime end) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.DifferentFrom(System.DateTime value) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.Except(params System.DateTime[]! values) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.Generate() -> System.DateTime +Dummies.AnyDateTime.OneOf(params System.DateTime[]! values) -> Dummies.AnyDateTime! +Dummies.AnyDateTimeOffset +Dummies.AnyDateTimeOffset.After(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.AfterOrEqualTo(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.Before(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.BeforeOrEqualTo(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.Between(System.DateTimeOffset start, System.DateTimeOffset end) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.DifferentFrom(System.DateTimeOffset value) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.Except(params System.DateTimeOffset[]! values) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.Generate() -> System.DateTimeOffset +Dummies.AnyDateTimeOffset.OneOf(params System.DateTimeOffset[]! values) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDecimal +Dummies.AnyDecimal.Between(decimal minimum, decimal maximum) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.DifferentFrom(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Except(params decimal[]! values) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Generate() -> decimal +Dummies.AnyDecimal.GreaterThan(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.GreaterThanOrEqualTo(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.LessThan(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.LessThanOrEqualTo(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Negative() -> Dummies.AnyDecimal! +Dummies.AnyDecimal.NonZero() -> Dummies.AnyDecimal! +Dummies.AnyDecimal.OneOf(params decimal[]! values) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Positive() -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Zero() -> Dummies.AnyDecimal! +Dummies.AnyDictionary +Dummies.AnyDictionary.Empty() -> Dummies.AnyDictionary! +Dummies.AnyDictionary.Generate() -> System.Collections.Generic.Dictionary! +Dummies.AnyDictionary.NonEmpty() -> Dummies.AnyDictionary! +Dummies.AnyDictionary.WithCount(int count) -> Dummies.AnyDictionary! +Dummies.AnyDictionary.WithCountBetween(int minimum, int maximum) -> Dummies.AnyDictionary! +Dummies.AnyDictionary.WithMaxCount(int count) -> Dummies.AnyDictionary! +Dummies.AnyDictionary.WithMinCount(int count) -> Dummies.AnyDictionary! +Dummies.AnyDouble +Dummies.AnyDouble.Between(double minimum, double maximum) -> Dummies.AnyDouble! +Dummies.AnyDouble.DifferentFrom(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.Except(params double[]! values) -> Dummies.AnyDouble! +Dummies.AnyDouble.Generate() -> double +Dummies.AnyDouble.GreaterThan(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.GreaterThanOrEqualTo(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.LessThan(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.LessThanOrEqualTo(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.Negative() -> Dummies.AnyDouble! +Dummies.AnyDouble.NonZero() -> Dummies.AnyDouble! +Dummies.AnyDouble.OneOf(params double[]! values) -> Dummies.AnyDouble! +Dummies.AnyDouble.Positive() -> Dummies.AnyDouble! +Dummies.AnyDouble.Zero() -> Dummies.AnyDouble! +Dummies.AnyEnum +Dummies.AnyEnum.DifferentFrom(TEnum value) -> Dummies.AnyEnum! +Dummies.AnyEnum.Except(params TEnum[]! values) -> Dummies.AnyEnum! +Dummies.AnyEnum.Generate() -> TEnum +Dummies.AnyEnum.OneOf(params TEnum[]! values) -> Dummies.AnyEnum! +Dummies.AnyException +Dummies.AnyException.AnyException(string! message) -> void +Dummies.AnyException.AnyException(string! message, System.Exception! innerException) -> void +Dummies.AnyExtensions +Dummies.AnyGenerationException +Dummies.AnyGenerationException.AnyGenerationException(string! message) -> void +Dummies.AnyGenerationException.AnyGenerationException(string! message, System.Exception! innerException) -> void +Dummies.AnyGenerationException.Seed.get -> int? +Dummies.AnyGuid +Dummies.AnyGuid.DifferentFrom(System.Guid value) -> Dummies.AnyGuid! +Dummies.AnyGuid.Empty() -> Dummies.AnyGuid! +Dummies.AnyGuid.Except(params System.Guid[]! values) -> Dummies.AnyGuid! +Dummies.AnyGuid.Generate() -> System.Guid +Dummies.AnyGuid.NonEmpty() -> Dummies.AnyGuid! +Dummies.AnyGuid.OneOf(params System.Guid[]! values) -> Dummies.AnyGuid! +Dummies.AnyHalf +Dummies.AnyHalf.Between(System.Half minimum, System.Half maximum) -> Dummies.AnyHalf! +Dummies.AnyHalf.DifferentFrom(System.Half value) -> Dummies.AnyHalf! +Dummies.AnyHalf.Except(params System.Half[]! values) -> Dummies.AnyHalf! +Dummies.AnyHalf.Generate() -> System.Half +Dummies.AnyHalf.GreaterThan(System.Half value) -> Dummies.AnyHalf! +Dummies.AnyHalf.GreaterThanOrEqualTo(System.Half value) -> Dummies.AnyHalf! +Dummies.AnyHalf.LessThan(System.Half value) -> Dummies.AnyHalf! +Dummies.AnyHalf.LessThanOrEqualTo(System.Half value) -> Dummies.AnyHalf! +Dummies.AnyHalf.Negative() -> Dummies.AnyHalf! +Dummies.AnyHalf.NonZero() -> Dummies.AnyHalf! +Dummies.AnyHalf.OneOf(params System.Half[]! values) -> Dummies.AnyHalf! +Dummies.AnyHalf.Positive() -> Dummies.AnyHalf! +Dummies.AnyHalf.Zero() -> Dummies.AnyHalf! +Dummies.AnyInt128 +Dummies.AnyInt128.Between(System.Int128 minimum, System.Int128 maximum) -> Dummies.AnyInt128! +Dummies.AnyInt128.DifferentFrom(System.Int128 value) -> Dummies.AnyInt128! +Dummies.AnyInt128.Except(params System.Int128[]! values) -> Dummies.AnyInt128! +Dummies.AnyInt128.Generate() -> System.Int128 +Dummies.AnyInt128.GreaterThan(System.Int128 value) -> Dummies.AnyInt128! +Dummies.AnyInt128.GreaterThanOrEqualTo(System.Int128 value) -> Dummies.AnyInt128! +Dummies.AnyInt128.LessThan(System.Int128 value) -> Dummies.AnyInt128! +Dummies.AnyInt128.LessThanOrEqualTo(System.Int128 value) -> Dummies.AnyInt128! +Dummies.AnyInt128.Negative() -> Dummies.AnyInt128! +Dummies.AnyInt128.NonZero() -> Dummies.AnyInt128! +Dummies.AnyInt128.OneOf(params System.Int128[]! values) -> Dummies.AnyInt128! +Dummies.AnyInt128.Positive() -> Dummies.AnyInt128! +Dummies.AnyInt128.Zero() -> Dummies.AnyInt128! +Dummies.AnyInt16 +Dummies.AnyInt16.Between(short minimum, short maximum) -> Dummies.AnyInt16! +Dummies.AnyInt16.DifferentFrom(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.Except(params short[]! values) -> Dummies.AnyInt16! +Dummies.AnyInt16.Generate() -> short +Dummies.AnyInt16.GreaterThan(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.GreaterThanOrEqualTo(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.LessThan(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.LessThanOrEqualTo(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.Negative() -> Dummies.AnyInt16! +Dummies.AnyInt16.NonZero() -> Dummies.AnyInt16! +Dummies.AnyInt16.OneOf(params short[]! values) -> Dummies.AnyInt16! +Dummies.AnyInt16.Positive() -> Dummies.AnyInt16! +Dummies.AnyInt16.Zero() -> Dummies.AnyInt16! +Dummies.AnyInt32 +Dummies.AnyInt32.Between(int minimum, int maximum) -> Dummies.AnyInt32! +Dummies.AnyInt32.DifferentFrom(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.Except(params int[]! values) -> Dummies.AnyInt32! +Dummies.AnyInt32.Generate() -> int +Dummies.AnyInt32.GreaterThan(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.GreaterThanOrEqualTo(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.LessThan(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.LessThanOrEqualTo(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.Negative() -> Dummies.AnyInt32! +Dummies.AnyInt32.NonZero() -> Dummies.AnyInt32! +Dummies.AnyInt32.OneOf(params int[]! values) -> Dummies.AnyInt32! +Dummies.AnyInt32.Positive() -> Dummies.AnyInt32! +Dummies.AnyInt32.Zero() -> Dummies.AnyInt32! +Dummies.AnyInt64 +Dummies.AnyInt64.Between(long minimum, long maximum) -> Dummies.AnyInt64! +Dummies.AnyInt64.DifferentFrom(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.Except(params long[]! values) -> Dummies.AnyInt64! +Dummies.AnyInt64.Generate() -> long +Dummies.AnyInt64.GreaterThan(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.GreaterThanOrEqualTo(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.LessThan(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.LessThanOrEqualTo(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.Negative() -> Dummies.AnyInt64! +Dummies.AnyInt64.NonZero() -> Dummies.AnyInt64! +Dummies.AnyInt64.OneOf(params long[]! values) -> Dummies.AnyInt64! +Dummies.AnyInt64.Positive() -> Dummies.AnyInt64! +Dummies.AnyInt64.Zero() -> Dummies.AnyInt64! +Dummies.AnyList +Dummies.AnyList.Distinct() -> Dummies.AnyList! +Dummies.AnyList.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnyList! +Dummies.AnyPattern +Dummies.AnyPattern.Generate() -> string! +Dummies.AnySByte +Dummies.AnySByte.Between(sbyte minimum, sbyte maximum) -> Dummies.AnySByte! +Dummies.AnySByte.DifferentFrom(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.Except(params sbyte[]! values) -> Dummies.AnySByte! +Dummies.AnySByte.Generate() -> sbyte +Dummies.AnySByte.GreaterThan(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.GreaterThanOrEqualTo(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.LessThan(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.LessThanOrEqualTo(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.Negative() -> Dummies.AnySByte! +Dummies.AnySByte.NonZero() -> Dummies.AnySByte! +Dummies.AnySByte.OneOf(params sbyte[]! values) -> Dummies.AnySByte! +Dummies.AnySByte.Positive() -> Dummies.AnySByte! +Dummies.AnySByte.Zero() -> Dummies.AnySByte! +Dummies.AnySequence +Dummies.AnySequence.Distinct() -> Dummies.AnySequence! +Dummies.AnySequence.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnySequence! +Dummies.AnySet +Dummies.AnySingle +Dummies.AnySingle.Between(float minimum, float maximum) -> Dummies.AnySingle! +Dummies.AnySingle.DifferentFrom(float value) -> Dummies.AnySingle! +Dummies.AnySingle.Except(params float[]! values) -> Dummies.AnySingle! +Dummies.AnySingle.Generate() -> float +Dummies.AnySingle.GreaterThan(float value) -> Dummies.AnySingle! +Dummies.AnySingle.GreaterThanOrEqualTo(float value) -> Dummies.AnySingle! +Dummies.AnySingle.LessThan(float value) -> Dummies.AnySingle! +Dummies.AnySingle.LessThanOrEqualTo(float value) -> Dummies.AnySingle! +Dummies.AnySingle.Negative() -> Dummies.AnySingle! +Dummies.AnySingle.NonZero() -> Dummies.AnySingle! +Dummies.AnySingle.OneOf(params float[]! values) -> Dummies.AnySingle! +Dummies.AnySingle.Positive() -> Dummies.AnySingle! +Dummies.AnySingle.Zero() -> Dummies.AnySingle! +Dummies.AnyString +Dummies.AnyString.Alpha() -> Dummies.AnyString! +Dummies.AnyString.AlphaNumeric() -> Dummies.AnyString! +Dummies.AnyString.Containing(string! value) -> Dummies.AnyString! +Dummies.AnyString.EndingWith(string! suffix) -> Dummies.AnyString! +Dummies.AnyString.Generate() -> string! +Dummies.AnyString.LowerCase() -> Dummies.AnyString! +Dummies.AnyString.NonEmpty() -> Dummies.AnyString! +Dummies.AnyString.Numeric() -> Dummies.AnyString! +Dummies.AnyString.OneOf(params string![]! values) -> Dummies.AnyStringOneOf! +Dummies.AnyString.OneOf(System.Collections.Generic.IEnumerable! values) -> Dummies.AnyStringOneOf! +Dummies.AnyString.StartingWith(string! prefix) -> Dummies.AnyString! +Dummies.AnyString.UpperCase() -> Dummies.AnyString! +Dummies.AnyString.WithLength(int length) -> Dummies.AnyString! +Dummies.AnyString.WithLengthBetween(int minimum, int maximum) -> Dummies.AnyString! +Dummies.AnyString.WithMaxLength(int length) -> Dummies.AnyString! +Dummies.AnyString.WithMinLength(int length) -> Dummies.AnyString! +Dummies.AnyStringOneOf +Dummies.AnyStringOneOf.Generate() -> string! +Dummies.AnyTimeOnly +Dummies.AnyTimeOnly.After(System.TimeOnly time) -> Dummies.AnyTimeOnly! +Dummies.AnyTimeOnly.AfterOrEqualTo(System.TimeOnly time) -> Dummies.AnyTimeOnly! +Dummies.AnyTimeOnly.Before(System.TimeOnly time) -> Dummies.AnyTimeOnly! +Dummies.AnyTimeOnly.BeforeOrEqualTo(System.TimeOnly time) -> Dummies.AnyTimeOnly! +Dummies.AnyTimeOnly.Between(System.TimeOnly start, System.TimeOnly end) -> Dummies.AnyTimeOnly! +Dummies.AnyTimeOnly.DifferentFrom(System.TimeOnly value) -> Dummies.AnyTimeOnly! +Dummies.AnyTimeOnly.Except(params System.TimeOnly[]! values) -> Dummies.AnyTimeOnly! +Dummies.AnyTimeOnly.Generate() -> System.TimeOnly +Dummies.AnyTimeOnly.OneOf(params System.TimeOnly[]! values) -> Dummies.AnyTimeOnly! +Dummies.AnyTimeSpan +Dummies.AnyTimeSpan.Between(System.TimeSpan minimum, System.TimeSpan maximum) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.DifferentFrom(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Except(params System.TimeSpan[]! values) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Generate() -> System.TimeSpan +Dummies.AnyTimeSpan.GreaterThan(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.GreaterThanOrEqualTo(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.LessThan(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.LessThanOrEqualTo(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Negative() -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.NonZero() -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.OneOf(params System.TimeSpan[]! values) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Positive() -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Zero() -> Dummies.AnyTimeSpan! +Dummies.AnyUInt128 +Dummies.AnyUInt128.Between(System.UInt128 minimum, System.UInt128 maximum) -> Dummies.AnyUInt128! +Dummies.AnyUInt128.DifferentFrom(System.UInt128 value) -> Dummies.AnyUInt128! +Dummies.AnyUInt128.Except(params System.UInt128[]! values) -> Dummies.AnyUInt128! +Dummies.AnyUInt128.Generate() -> System.UInt128 +Dummies.AnyUInt128.GreaterThan(System.UInt128 value) -> Dummies.AnyUInt128! +Dummies.AnyUInt128.GreaterThanOrEqualTo(System.UInt128 value) -> Dummies.AnyUInt128! +Dummies.AnyUInt128.LessThan(System.UInt128 value) -> Dummies.AnyUInt128! +Dummies.AnyUInt128.LessThanOrEqualTo(System.UInt128 value) -> Dummies.AnyUInt128! +Dummies.AnyUInt128.NonZero() -> Dummies.AnyUInt128! +Dummies.AnyUInt128.OneOf(params System.UInt128[]! values) -> Dummies.AnyUInt128! +Dummies.AnyUInt128.Zero() -> Dummies.AnyUInt128! +Dummies.AnyUInt16 +Dummies.AnyUInt16.Between(ushort minimum, ushort maximum) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.DifferentFrom(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.Except(params ushort[]! values) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.Generate() -> ushort +Dummies.AnyUInt16.GreaterThan(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.GreaterThanOrEqualTo(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.LessThan(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.LessThanOrEqualTo(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.NonZero() -> Dummies.AnyUInt16! +Dummies.AnyUInt16.OneOf(params ushort[]! values) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.Zero() -> Dummies.AnyUInt16! +Dummies.AnyUInt32 +Dummies.AnyUInt32.Between(uint minimum, uint maximum) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.DifferentFrom(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.Except(params uint[]! values) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.Generate() -> uint +Dummies.AnyUInt32.GreaterThan(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.GreaterThanOrEqualTo(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.LessThan(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.LessThanOrEqualTo(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.NonZero() -> Dummies.AnyUInt32! +Dummies.AnyUInt32.OneOf(params uint[]! values) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.Zero() -> Dummies.AnyUInt32! +Dummies.AnyUInt64 +Dummies.AnyUInt64.Between(ulong minimum, ulong maximum) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.DifferentFrom(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.Except(params ulong[]! values) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.Generate() -> ulong +Dummies.AnyUInt64.GreaterThan(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.GreaterThanOrEqualTo(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.LessThan(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.LessThanOrEqualTo(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.NonZero() -> Dummies.AnyUInt64! +Dummies.AnyUInt64.OneOf(params ulong[]! values) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.Zero() -> Dummies.AnyUInt64! +Dummies.ConflictingAnyConstraintException +Dummies.ConflictingAnyConstraintException.ConflictingAnyConstraintException(string! message) -> void +Dummies.IAny +Dummies.IAny.Generate() -> T +Dummies.NullableExtensions +Dummies.NullableReferenceExtensions +Dummies.UnsupportedRegexException +Dummies.UnsupportedRegexException.UnsupportedRegexException(string! message) -> void +static Dummies.Any.ArrayOf(Dummies.IAny! item) -> Dummies.AnyArray! +static Dummies.Any.Boolean() -> Dummies.AnyBoolean! +static Dummies.Any.Byte() -> Dummies.AnyByte! +static Dummies.Any.Char() -> Dummies.AnyChar! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, Dummies.IAny! seventh, Dummies.IAny! eighth, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, Dummies.IAny! seventh, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.DateOnly() -> Dummies.AnyDateOnly! +static Dummies.Any.DateTime() -> Dummies.AnyDateTime! +static Dummies.Any.DateTimeOffset() -> Dummies.AnyDateTimeOffset! +static Dummies.Any.Decimal() -> Dummies.AnyDecimal! +static Dummies.Any.DictionaryOf(Dummies.IAny! keys, Dummies.IAny! values) -> Dummies.AnyDictionary! +static Dummies.Any.DictionaryOf(Dummies.IAny! keys, Dummies.IAny! values, System.Collections.Generic.IEqualityComparer! keyComparer) -> Dummies.AnyDictionary! +static Dummies.Any.Double() -> Dummies.AnyDouble! +static Dummies.Any.Enum() -> Dummies.AnyEnum! +static Dummies.Any.Guid() -> Dummies.AnyGuid! +static Dummies.Any.Half() -> Dummies.AnyHalf! +static Dummies.Any.Int128() -> Dummies.AnyInt128! +static Dummies.Any.Int16() -> Dummies.AnyInt16! +static Dummies.Any.Int32() -> Dummies.AnyInt32! +static Dummies.Any.Int64() -> Dummies.AnyInt64! +static Dummies.Any.ListOf(Dummies.IAny! item) -> Dummies.AnyList! +static Dummies.Any.PairOf(Dummies.IAny! first, Dummies.IAny! second) -> Dummies.IAny<(T1, T2)>! +static Dummies.Any.Reproducibly(int seed, System.Action! body, System.Action? report = null) -> void +static Dummies.Any.Reproducibly(int seed, System.Func! body, System.Action? report = null) -> System.Threading.Tasks.Task! +static Dummies.Any.Reproducibly(System.Action! body, System.Action? report = null) -> void +static Dummies.Any.Reproducibly(System.Func! body, System.Action? report = null) -> System.Threading.Tasks.Task! +static Dummies.Any.SByte() -> Dummies.AnySByte! +static Dummies.Any.SequenceOf(Dummies.IAny! item) -> Dummies.AnySequence! +static Dummies.Any.SetOf(Dummies.IAny! item) -> Dummies.AnySet! +static Dummies.Any.SetOf(Dummies.IAny! item, System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnySet! +static Dummies.Any.Single() -> Dummies.AnySingle! +static Dummies.Any.String() -> Dummies.AnyString! +static Dummies.Any.StringMatching(string! pattern) -> Dummies.AnyPattern! +static Dummies.Any.StringMatching(System.Text.RegularExpressions.Regex! pattern) -> Dummies.AnyPattern! +static Dummies.Any.TimeOnly() -> Dummies.AnyTimeOnly! +static Dummies.Any.TimeSpan() -> Dummies.AnyTimeSpan! +static Dummies.Any.TripleOf(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third) -> Dummies.IAny<(T1, T2, T3)>! +static Dummies.Any.UInt128() -> Dummies.AnyUInt128! +static Dummies.Any.UInt16() -> Dummies.AnyUInt16! +static Dummies.Any.UInt32() -> Dummies.AnyUInt32! +static Dummies.Any.UInt64() -> Dummies.AnyUInt64! +static Dummies.Any.WithSeed(int seed) -> Dummies.AnyContext! +static Dummies.AnyExtensions.As(this Dummies.IAny! generator, System.Func! factory) -> Dummies.IAny! +static Dummies.NullableExtensions.OrNull(this Dummies.IAny! generator) -> Dummies.IAny! +static Dummies.NullableReferenceExtensions.OrNull(this Dummies.IAny! generator) -> Dummies.IAny! diff --git a/Dummies/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/Dummies/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt new file mode 100644 index 00000000..7dc5c581 --- /dev/null +++ b/Dummies/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/Dummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/Dummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..3b612113 --- /dev/null +++ b/Dummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt @@ -0,0 +1,342 @@ +#nullable enable +Dummies.Any +Dummies.AnyArray +Dummies.AnyArray.Distinct() -> Dummies.AnyArray! +Dummies.AnyArray.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnyArray! +Dummies.AnyBoolean +Dummies.AnyBoolean.DifferentFrom(bool value) -> Dummies.AnyBoolean! +Dummies.AnyBoolean.False() -> Dummies.AnyBoolean! +Dummies.AnyBoolean.Generate() -> bool +Dummies.AnyBoolean.True() -> Dummies.AnyBoolean! +Dummies.AnyByte +Dummies.AnyByte.Between(byte minimum, byte maximum) -> Dummies.AnyByte! +Dummies.AnyByte.DifferentFrom(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.Except(params byte[]! values) -> Dummies.AnyByte! +Dummies.AnyByte.Generate() -> byte +Dummies.AnyByte.GreaterThan(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.GreaterThanOrEqualTo(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.LessThan(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.LessThanOrEqualTo(byte value) -> Dummies.AnyByte! +Dummies.AnyByte.NonZero() -> Dummies.AnyByte! +Dummies.AnyByte.OneOf(params byte[]! values) -> Dummies.AnyByte! +Dummies.AnyByte.Zero() -> Dummies.AnyByte! +Dummies.AnyChar +Dummies.AnyChar.Alpha() -> Dummies.AnyChar! +Dummies.AnyChar.AlphaNumeric() -> Dummies.AnyChar! +Dummies.AnyChar.DifferentFrom(char value) -> Dummies.AnyChar! +Dummies.AnyChar.Except(params char[]! values) -> Dummies.AnyChar! +Dummies.AnyChar.Generate() -> char +Dummies.AnyChar.LowerCase() -> Dummies.AnyChar! +Dummies.AnyChar.Numeric() -> Dummies.AnyChar! +Dummies.AnyChar.OneOf(params char[]! values) -> Dummies.AnyChar! +Dummies.AnyChar.UpperCase() -> Dummies.AnyChar! +Dummies.AnyCollection +Dummies.AnyCollection.Containing(TItem value) -> TSelf! +Dummies.AnyCollection.ContainingAny(Dummies.IAny! generator) -> TSelf! +Dummies.AnyCollection.Empty() -> TSelf! +Dummies.AnyCollection.Generate() -> TResult +Dummies.AnyCollection.NonEmpty() -> TSelf! +Dummies.AnyCollection.WithCount(int count) -> TSelf! +Dummies.AnyCollection.WithCountBetween(int minimum, int maximum) -> TSelf! +Dummies.AnyCollection.WithMaxCount(int count) -> TSelf! +Dummies.AnyCollection.WithMinCount(int count) -> TSelf! +Dummies.AnyContext +Dummies.AnyContext.Boolean() -> Dummies.AnyBoolean! +Dummies.AnyContext.Byte() -> Dummies.AnyByte! +Dummies.AnyContext.Char() -> Dummies.AnyChar! +Dummies.AnyContext.DateTime() -> Dummies.AnyDateTime! +Dummies.AnyContext.DateTimeOffset() -> Dummies.AnyDateTimeOffset! +Dummies.AnyContext.Decimal() -> Dummies.AnyDecimal! +Dummies.AnyContext.Double() -> Dummies.AnyDouble! +Dummies.AnyContext.Enum() -> Dummies.AnyEnum! +Dummies.AnyContext.Guid() -> Dummies.AnyGuid! +Dummies.AnyContext.Int16() -> Dummies.AnyInt16! +Dummies.AnyContext.Int32() -> Dummies.AnyInt32! +Dummies.AnyContext.Int64() -> Dummies.AnyInt64! +Dummies.AnyContext.SByte() -> Dummies.AnySByte! +Dummies.AnyContext.Seed.get -> int +Dummies.AnyContext.Single() -> Dummies.AnySingle! +Dummies.AnyContext.String() -> Dummies.AnyString! +Dummies.AnyContext.StringMatching(string! pattern) -> Dummies.AnyPattern! +Dummies.AnyContext.StringMatching(System.Text.RegularExpressions.Regex! pattern) -> Dummies.AnyPattern! +Dummies.AnyContext.TimeSpan() -> Dummies.AnyTimeSpan! +Dummies.AnyContext.UInt16() -> Dummies.AnyUInt16! +Dummies.AnyContext.UInt32() -> Dummies.AnyUInt32! +Dummies.AnyContext.UInt64() -> Dummies.AnyUInt64! +Dummies.AnyDateTime +Dummies.AnyDateTime.After(System.DateTime instant) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.AfterOrEqualTo(System.DateTime instant) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.Before(System.DateTime instant) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.BeforeOrEqualTo(System.DateTime instant) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.Between(System.DateTime start, System.DateTime end) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.DifferentFrom(System.DateTime value) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.Except(params System.DateTime[]! values) -> Dummies.AnyDateTime! +Dummies.AnyDateTime.Generate() -> System.DateTime +Dummies.AnyDateTime.OneOf(params System.DateTime[]! values) -> Dummies.AnyDateTime! +Dummies.AnyDateTimeOffset +Dummies.AnyDateTimeOffset.After(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.AfterOrEqualTo(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.Before(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.BeforeOrEqualTo(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.Between(System.DateTimeOffset start, System.DateTimeOffset end) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.DifferentFrom(System.DateTimeOffset value) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.Except(params System.DateTimeOffset[]! values) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDateTimeOffset.Generate() -> System.DateTimeOffset +Dummies.AnyDateTimeOffset.OneOf(params System.DateTimeOffset[]! values) -> Dummies.AnyDateTimeOffset! +Dummies.AnyDecimal +Dummies.AnyDecimal.Between(decimal minimum, decimal maximum) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.DifferentFrom(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Except(params decimal[]! values) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Generate() -> decimal +Dummies.AnyDecimal.GreaterThan(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.GreaterThanOrEqualTo(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.LessThan(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.LessThanOrEqualTo(decimal value) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Negative() -> Dummies.AnyDecimal! +Dummies.AnyDecimal.NonZero() -> Dummies.AnyDecimal! +Dummies.AnyDecimal.OneOf(params decimal[]! values) -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Positive() -> Dummies.AnyDecimal! +Dummies.AnyDecimal.Zero() -> Dummies.AnyDecimal! +Dummies.AnyDictionary +Dummies.AnyDictionary.Empty() -> Dummies.AnyDictionary! +Dummies.AnyDictionary.Generate() -> System.Collections.Generic.Dictionary! +Dummies.AnyDictionary.NonEmpty() -> Dummies.AnyDictionary! +Dummies.AnyDictionary.WithCount(int count) -> Dummies.AnyDictionary! +Dummies.AnyDictionary.WithCountBetween(int minimum, int maximum) -> Dummies.AnyDictionary! +Dummies.AnyDictionary.WithMaxCount(int count) -> Dummies.AnyDictionary! +Dummies.AnyDictionary.WithMinCount(int count) -> Dummies.AnyDictionary! +Dummies.AnyDouble +Dummies.AnyDouble.Between(double minimum, double maximum) -> Dummies.AnyDouble! +Dummies.AnyDouble.DifferentFrom(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.Except(params double[]! values) -> Dummies.AnyDouble! +Dummies.AnyDouble.Generate() -> double +Dummies.AnyDouble.GreaterThan(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.GreaterThanOrEqualTo(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.LessThan(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.LessThanOrEqualTo(double value) -> Dummies.AnyDouble! +Dummies.AnyDouble.Negative() -> Dummies.AnyDouble! +Dummies.AnyDouble.NonZero() -> Dummies.AnyDouble! +Dummies.AnyDouble.OneOf(params double[]! values) -> Dummies.AnyDouble! +Dummies.AnyDouble.Positive() -> Dummies.AnyDouble! +Dummies.AnyDouble.Zero() -> Dummies.AnyDouble! +Dummies.AnyEnum +Dummies.AnyEnum.DifferentFrom(TEnum value) -> Dummies.AnyEnum! +Dummies.AnyEnum.Except(params TEnum[]! values) -> Dummies.AnyEnum! +Dummies.AnyEnum.Generate() -> TEnum +Dummies.AnyEnum.OneOf(params TEnum[]! values) -> Dummies.AnyEnum! +Dummies.AnyException +Dummies.AnyException.AnyException(string! message) -> void +Dummies.AnyException.AnyException(string! message, System.Exception! innerException) -> void +Dummies.AnyExtensions +Dummies.AnyGenerationException +Dummies.AnyGenerationException.AnyGenerationException(string! message) -> void +Dummies.AnyGenerationException.AnyGenerationException(string! message, System.Exception! innerException) -> void +Dummies.AnyGenerationException.Seed.get -> int? +Dummies.AnyGuid +Dummies.AnyGuid.DifferentFrom(System.Guid value) -> Dummies.AnyGuid! +Dummies.AnyGuid.Empty() -> Dummies.AnyGuid! +Dummies.AnyGuid.Except(params System.Guid[]! values) -> Dummies.AnyGuid! +Dummies.AnyGuid.Generate() -> System.Guid +Dummies.AnyGuid.NonEmpty() -> Dummies.AnyGuid! +Dummies.AnyGuid.OneOf(params System.Guid[]! values) -> Dummies.AnyGuid! +Dummies.AnyInt16 +Dummies.AnyInt16.Between(short minimum, short maximum) -> Dummies.AnyInt16! +Dummies.AnyInt16.DifferentFrom(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.Except(params short[]! values) -> Dummies.AnyInt16! +Dummies.AnyInt16.Generate() -> short +Dummies.AnyInt16.GreaterThan(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.GreaterThanOrEqualTo(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.LessThan(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.LessThanOrEqualTo(short value) -> Dummies.AnyInt16! +Dummies.AnyInt16.Negative() -> Dummies.AnyInt16! +Dummies.AnyInt16.NonZero() -> Dummies.AnyInt16! +Dummies.AnyInt16.OneOf(params short[]! values) -> Dummies.AnyInt16! +Dummies.AnyInt16.Positive() -> Dummies.AnyInt16! +Dummies.AnyInt16.Zero() -> Dummies.AnyInt16! +Dummies.AnyInt32 +Dummies.AnyInt32.Between(int minimum, int maximum) -> Dummies.AnyInt32! +Dummies.AnyInt32.DifferentFrom(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.Except(params int[]! values) -> Dummies.AnyInt32! +Dummies.AnyInt32.Generate() -> int +Dummies.AnyInt32.GreaterThan(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.GreaterThanOrEqualTo(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.LessThan(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.LessThanOrEqualTo(int value) -> Dummies.AnyInt32! +Dummies.AnyInt32.Negative() -> Dummies.AnyInt32! +Dummies.AnyInt32.NonZero() -> Dummies.AnyInt32! +Dummies.AnyInt32.OneOf(params int[]! values) -> Dummies.AnyInt32! +Dummies.AnyInt32.Positive() -> Dummies.AnyInt32! +Dummies.AnyInt32.Zero() -> Dummies.AnyInt32! +Dummies.AnyInt64 +Dummies.AnyInt64.Between(long minimum, long maximum) -> Dummies.AnyInt64! +Dummies.AnyInt64.DifferentFrom(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.Except(params long[]! values) -> Dummies.AnyInt64! +Dummies.AnyInt64.Generate() -> long +Dummies.AnyInt64.GreaterThan(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.GreaterThanOrEqualTo(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.LessThan(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.LessThanOrEqualTo(long value) -> Dummies.AnyInt64! +Dummies.AnyInt64.Negative() -> Dummies.AnyInt64! +Dummies.AnyInt64.NonZero() -> Dummies.AnyInt64! +Dummies.AnyInt64.OneOf(params long[]! values) -> Dummies.AnyInt64! +Dummies.AnyInt64.Positive() -> Dummies.AnyInt64! +Dummies.AnyInt64.Zero() -> Dummies.AnyInt64! +Dummies.AnyList +Dummies.AnyList.Distinct() -> Dummies.AnyList! +Dummies.AnyList.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnyList! +Dummies.AnyPattern +Dummies.AnyPattern.Generate() -> string! +Dummies.AnySByte +Dummies.AnySByte.Between(sbyte minimum, sbyte maximum) -> Dummies.AnySByte! +Dummies.AnySByte.DifferentFrom(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.Except(params sbyte[]! values) -> Dummies.AnySByte! +Dummies.AnySByte.Generate() -> sbyte +Dummies.AnySByte.GreaterThan(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.GreaterThanOrEqualTo(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.LessThan(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.LessThanOrEqualTo(sbyte value) -> Dummies.AnySByte! +Dummies.AnySByte.Negative() -> Dummies.AnySByte! +Dummies.AnySByte.NonZero() -> Dummies.AnySByte! +Dummies.AnySByte.OneOf(params sbyte[]! values) -> Dummies.AnySByte! +Dummies.AnySByte.Positive() -> Dummies.AnySByte! +Dummies.AnySByte.Zero() -> Dummies.AnySByte! +Dummies.AnySequence +Dummies.AnySequence.Distinct() -> Dummies.AnySequence! +Dummies.AnySequence.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnySequence! +Dummies.AnySet +Dummies.AnySingle +Dummies.AnySingle.Between(float minimum, float maximum) -> Dummies.AnySingle! +Dummies.AnySingle.DifferentFrom(float value) -> Dummies.AnySingle! +Dummies.AnySingle.Except(params float[]! values) -> Dummies.AnySingle! +Dummies.AnySingle.Generate() -> float +Dummies.AnySingle.GreaterThan(float value) -> Dummies.AnySingle! +Dummies.AnySingle.GreaterThanOrEqualTo(float value) -> Dummies.AnySingle! +Dummies.AnySingle.LessThan(float value) -> Dummies.AnySingle! +Dummies.AnySingle.LessThanOrEqualTo(float value) -> Dummies.AnySingle! +Dummies.AnySingle.Negative() -> Dummies.AnySingle! +Dummies.AnySingle.NonZero() -> Dummies.AnySingle! +Dummies.AnySingle.OneOf(params float[]! values) -> Dummies.AnySingle! +Dummies.AnySingle.Positive() -> Dummies.AnySingle! +Dummies.AnySingle.Zero() -> Dummies.AnySingle! +Dummies.AnyString +Dummies.AnyString.Alpha() -> Dummies.AnyString! +Dummies.AnyString.AlphaNumeric() -> Dummies.AnyString! +Dummies.AnyString.Containing(string! value) -> Dummies.AnyString! +Dummies.AnyString.EndingWith(string! suffix) -> Dummies.AnyString! +Dummies.AnyString.Generate() -> string! +Dummies.AnyString.LowerCase() -> Dummies.AnyString! +Dummies.AnyString.NonEmpty() -> Dummies.AnyString! +Dummies.AnyString.Numeric() -> Dummies.AnyString! +Dummies.AnyString.OneOf(params string![]! values) -> Dummies.AnyStringOneOf! +Dummies.AnyString.OneOf(System.Collections.Generic.IEnumerable! values) -> Dummies.AnyStringOneOf! +Dummies.AnyString.StartingWith(string! prefix) -> Dummies.AnyString! +Dummies.AnyString.UpperCase() -> Dummies.AnyString! +Dummies.AnyString.WithLength(int length) -> Dummies.AnyString! +Dummies.AnyString.WithLengthBetween(int minimum, int maximum) -> Dummies.AnyString! +Dummies.AnyString.WithMaxLength(int length) -> Dummies.AnyString! +Dummies.AnyString.WithMinLength(int length) -> Dummies.AnyString! +Dummies.AnyStringOneOf +Dummies.AnyStringOneOf.Generate() -> string! +Dummies.AnyTimeSpan +Dummies.AnyTimeSpan.Between(System.TimeSpan minimum, System.TimeSpan maximum) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.DifferentFrom(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Except(params System.TimeSpan[]! values) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Generate() -> System.TimeSpan +Dummies.AnyTimeSpan.GreaterThan(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.GreaterThanOrEqualTo(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.LessThan(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.LessThanOrEqualTo(System.TimeSpan value) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Negative() -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.NonZero() -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.OneOf(params System.TimeSpan[]! values) -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Positive() -> Dummies.AnyTimeSpan! +Dummies.AnyTimeSpan.Zero() -> Dummies.AnyTimeSpan! +Dummies.AnyUInt16 +Dummies.AnyUInt16.Between(ushort minimum, ushort maximum) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.DifferentFrom(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.Except(params ushort[]! values) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.Generate() -> ushort +Dummies.AnyUInt16.GreaterThan(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.GreaterThanOrEqualTo(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.LessThan(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.LessThanOrEqualTo(ushort value) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.NonZero() -> Dummies.AnyUInt16! +Dummies.AnyUInt16.OneOf(params ushort[]! values) -> Dummies.AnyUInt16! +Dummies.AnyUInt16.Zero() -> Dummies.AnyUInt16! +Dummies.AnyUInt32 +Dummies.AnyUInt32.Between(uint minimum, uint maximum) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.DifferentFrom(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.Except(params uint[]! values) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.Generate() -> uint +Dummies.AnyUInt32.GreaterThan(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.GreaterThanOrEqualTo(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.LessThan(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.LessThanOrEqualTo(uint value) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.NonZero() -> Dummies.AnyUInt32! +Dummies.AnyUInt32.OneOf(params uint[]! values) -> Dummies.AnyUInt32! +Dummies.AnyUInt32.Zero() -> Dummies.AnyUInt32! +Dummies.AnyUInt64 +Dummies.AnyUInt64.Between(ulong minimum, ulong maximum) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.DifferentFrom(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.Except(params ulong[]! values) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.Generate() -> ulong +Dummies.AnyUInt64.GreaterThan(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.GreaterThanOrEqualTo(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.LessThan(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.LessThanOrEqualTo(ulong value) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.NonZero() -> Dummies.AnyUInt64! +Dummies.AnyUInt64.OneOf(params ulong[]! values) -> Dummies.AnyUInt64! +Dummies.AnyUInt64.Zero() -> Dummies.AnyUInt64! +Dummies.ConflictingAnyConstraintException +Dummies.ConflictingAnyConstraintException.ConflictingAnyConstraintException(string! message) -> void +Dummies.IAny +Dummies.IAny.Generate() -> T +Dummies.NullableExtensions +Dummies.NullableReferenceExtensions +Dummies.UnsupportedRegexException +Dummies.UnsupportedRegexException.UnsupportedRegexException(string! message) -> void +static Dummies.Any.ArrayOf(Dummies.IAny! item) -> Dummies.AnyArray! +static Dummies.Any.Boolean() -> Dummies.AnyBoolean! +static Dummies.Any.Byte() -> Dummies.AnyByte! +static Dummies.Any.Char() -> Dummies.AnyChar! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, Dummies.IAny! seventh, Dummies.IAny! eighth, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, Dummies.IAny! seventh, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, System.Func! compose) -> Dummies.IAny! +static Dummies.Any.DateTime() -> Dummies.AnyDateTime! +static Dummies.Any.DateTimeOffset() -> Dummies.AnyDateTimeOffset! +static Dummies.Any.Decimal() -> Dummies.AnyDecimal! +static Dummies.Any.DictionaryOf(Dummies.IAny! keys, Dummies.IAny! values) -> Dummies.AnyDictionary! +static Dummies.Any.DictionaryOf(Dummies.IAny! keys, Dummies.IAny! values, System.Collections.Generic.IEqualityComparer! keyComparer) -> Dummies.AnyDictionary! +static Dummies.Any.Double() -> Dummies.AnyDouble! +static Dummies.Any.Enum() -> Dummies.AnyEnum! +static Dummies.Any.Guid() -> Dummies.AnyGuid! +static Dummies.Any.Int16() -> Dummies.AnyInt16! +static Dummies.Any.Int32() -> Dummies.AnyInt32! +static Dummies.Any.Int64() -> Dummies.AnyInt64! +static Dummies.Any.ListOf(Dummies.IAny! item) -> Dummies.AnyList! +static Dummies.Any.PairOf(Dummies.IAny! first, Dummies.IAny! second) -> Dummies.IAny<(T1, T2)>! +static Dummies.Any.Reproducibly(int seed, System.Action! body, System.Action? report = null) -> void +static Dummies.Any.Reproducibly(int seed, System.Func! body, System.Action? report = null) -> System.Threading.Tasks.Task! +static Dummies.Any.Reproducibly(System.Action! body, System.Action? report = null) -> void +static Dummies.Any.Reproducibly(System.Func! body, System.Action? report = null) -> System.Threading.Tasks.Task! +static Dummies.Any.SByte() -> Dummies.AnySByte! +static Dummies.Any.SequenceOf(Dummies.IAny! item) -> Dummies.AnySequence! +static Dummies.Any.SetOf(Dummies.IAny! item) -> Dummies.AnySet! +static Dummies.Any.SetOf(Dummies.IAny! item, System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnySet! +static Dummies.Any.Single() -> Dummies.AnySingle! +static Dummies.Any.String() -> Dummies.AnyString! +static Dummies.Any.StringMatching(string! pattern) -> Dummies.AnyPattern! +static Dummies.Any.StringMatching(System.Text.RegularExpressions.Regex! pattern) -> Dummies.AnyPattern! +static Dummies.Any.TimeSpan() -> Dummies.AnyTimeSpan! +static Dummies.Any.TripleOf(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third) -> Dummies.IAny<(T1, T2, T3)>! +static Dummies.Any.UInt16() -> Dummies.AnyUInt16! +static Dummies.Any.UInt32() -> Dummies.AnyUInt32! +static Dummies.Any.UInt64() -> Dummies.AnyUInt64! +static Dummies.Any.WithSeed(int seed) -> Dummies.AnyContext! +static Dummies.AnyExtensions.As(this Dummies.IAny! generator, System.Func! factory) -> Dummies.IAny! +static Dummies.NullableExtensions.OrNull(this Dummies.IAny! generator) -> Dummies.IAny! +static Dummies.NullableReferenceExtensions.OrNull(this Dummies.IAny! generator) -> Dummies.IAny! diff --git a/FirstClassErrors.RequestBinder/FirstClassErrors.RequestBinder.csproj b/FirstClassErrors.RequestBinder/FirstClassErrors.RequestBinder.csproj index 149b3e43..9681dd43 100644 --- a/FirstClassErrors.RequestBinder/FirstClassErrors.RequestBinder.csproj +++ b/FirstClassErrors.RequestBinder/FirstClassErrors.RequestBinder.csproj @@ -1,5 +1,8 @@ + + + netstandard2.0 diff --git a/FirstClassErrors.RequestBinder/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/FirstClassErrors.RequestBinder/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt new file mode 100644 index 00000000..7dc5c581 --- /dev/null +++ b/FirstClassErrors.RequestBinder/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/FirstClassErrors.RequestBinder/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/FirstClassErrors.RequestBinder/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..479cf541 --- /dev/null +++ b/FirstClassErrors.RequestBinder/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt @@ -0,0 +1,99 @@ +#nullable enable +FirstClassErrors.RequestBinder.ArgumentListSource +FirstClassErrors.RequestBinder.ArgumentListSource.From(string! source, System.Collections.Generic.IEnumerable? values) -> FirstClassErrors.RequestBinder.ListOfSimplePropertiesConverter! +FirstClassErrors.RequestBinder.ArgumentListSource.From(string! source, System.Collections.Generic.IEnumerable? values) -> FirstClassErrors.RequestBinder.ListOfSimpleValuePropertiesConverter! +FirstClassErrors.RequestBinder.ArgumentSource +FirstClassErrors.RequestBinder.ArgumentSource.From(string! source, TArgument? value) -> FirstClassErrors.RequestBinder.SimplePropertyConverter! +FirstClassErrors.RequestBinder.ArgumentSourceExtensions +FirstClassErrors.RequestBinder.Bind +FirstClassErrors.RequestBinder.BinderErrorDefinition +FirstClassErrors.RequestBinder.BinderErrorDefinition.BinderErrorDefinition(FirstClassErrors.ErrorCode! code, System.Func! message) -> void +FirstClassErrors.RequestBinder.BinderErrorDefinition.Code.get -> FirstClassErrors.ErrorCode! +FirstClassErrors.RequestBinder.BinderErrorDefinition.GetMessage(string! argumentPath) -> FirstClassErrors.RequestBinder.BindingMessage! +FirstClassErrors.RequestBinder.BinderErrorDefinition.WithCode(FirstClassErrors.ErrorCode! code) -> FirstClassErrors.RequestBinder.BinderErrorDefinition! +FirstClassErrors.RequestBinder.BinderErrorDefinition.WithMessage(System.Func! message) -> FirstClassErrors.RequestBinder.BinderErrorDefinition! +FirstClassErrors.RequestBinder.BindingAssembler +FirstClassErrors.RequestBinder.BindingMessage +FirstClassErrors.RequestBinder.BindingMessage.BindingMessage(string! shortMessage, string? detailedMessage = null) -> void +FirstClassErrors.RequestBinder.BindingMessage.DetailedMessage.get -> string? +FirstClassErrors.RequestBinder.BindingMessage.ShortMessage.get -> string! +FirstClassErrors.RequestBinder.BindingScope +FirstClassErrors.RequestBinder.BindingScope.BindingScope() -> void +FirstClassErrors.RequestBinder.BindingScope.Get(FirstClassErrors.RequestBinder.OptionalReferenceField! field) -> TProperty? +FirstClassErrors.RequestBinder.BindingScope.Get(FirstClassErrors.RequestBinder.OptionalValueField! field) -> TProperty? +FirstClassErrors.RequestBinder.BindingScope.Get(FirstClassErrors.RequestBinder.RequiredField! field) -> TProperty +FirstClassErrors.RequestBinder.ComplexPropertyConverter +FirstClassErrors.RequestBinder.ComplexPropertyConverter.AsOptionalReference(System.Func!>! bindNested) -> FirstClassErrors.RequestBinder.OptionalReferenceField! +FirstClassErrors.RequestBinder.ComplexPropertyConverter.AsRequired(System.Func!>! bindNested) -> FirstClassErrors.RequestBinder.RequiredField! +FirstClassErrors.RequestBinder.ComplexPropertyEnvelopeStage +FirstClassErrors.RequestBinder.ComplexPropertyEnvelopeStage.FailWith(System.Func! envelope) -> FirstClassErrors.RequestBinder.ComplexPropertyConverter! +FirstClassErrors.RequestBinder.ConfiguredBind +FirstClassErrors.RequestBinder.ConfiguredBind.Request(System.Func! envelope) -> FirstClassErrors.RequestBinder.RequestBinder! +FirstClassErrors.RequestBinder.IArgumentNameProvider +FirstClassErrors.RequestBinder.IArgumentNameProvider.GetArgumentNameFrom(System.Reflection.PropertyInfo! property) -> string! +FirstClassErrors.RequestBinder.ListOfComplexPropertiesConverter +FirstClassErrors.RequestBinder.ListOfComplexPropertiesConverter.AsOptional(System.Func!>! bindElement) -> FirstClassErrors.RequestBinder.RequiredField!>! +FirstClassErrors.RequestBinder.ListOfComplexPropertiesConverter.AsRequired(System.Func!>! bindElement) -> FirstClassErrors.RequestBinder.RequiredField!>! +FirstClassErrors.RequestBinder.ListOfComplexPropertiesEnvelopeStage +FirstClassErrors.RequestBinder.ListOfComplexPropertiesEnvelopeStage.FailWith(System.Func! envelope) -> FirstClassErrors.RequestBinder.ListOfComplexPropertiesConverter! +FirstClassErrors.RequestBinder.ListOfSimplePropertiesConverter +FirstClassErrors.RequestBinder.ListOfSimplePropertiesConverter.AsOptional(System.Func!>! convertElement) -> FirstClassErrors.RequestBinder.RequiredField!>! +FirstClassErrors.RequestBinder.ListOfSimplePropertiesConverter.AsRequired(System.Func!>! convertElement) -> FirstClassErrors.RequestBinder.RequiredField!>! +FirstClassErrors.RequestBinder.ListOfSimpleValuePropertiesConverter +FirstClassErrors.RequestBinder.ListOfSimpleValuePropertiesConverter.AsOptional(System.Func!>! convertElement) -> FirstClassErrors.RequestBinder.RequiredField!>! +FirstClassErrors.RequestBinder.ListOfSimpleValuePropertiesConverter.AsRequired(System.Func!>! convertElement) -> FirstClassErrors.RequestBinder.RequiredField!>! +FirstClassErrors.RequestBinder.OptionalReferenceField +FirstClassErrors.RequestBinder.OptionalValueField +FirstClassErrors.RequestBinder.PropertySource +FirstClassErrors.RequestBinder.PropertySource.ComplexProperty(System.Linq.Expressions.Expression!>! selector) -> FirstClassErrors.RequestBinder.ComplexPropertyEnvelopeStage! +FirstClassErrors.RequestBinder.PropertySource.ListOfComplexProperties(System.Linq.Expressions.Expression?>!>! selector) -> FirstClassErrors.RequestBinder.ListOfComplexPropertiesEnvelopeStage! +FirstClassErrors.RequestBinder.PropertySource.ListOfSimpleProperties(System.Linq.Expressions.Expression?>!>! selector) -> FirstClassErrors.RequestBinder.ListOfSimplePropertiesConverter! +FirstClassErrors.RequestBinder.PropertySource.ListOfSimpleProperties(System.Linq.Expressions.Expression?>!>! selector) -> FirstClassErrors.RequestBinder.ListOfSimpleValuePropertiesConverter! +FirstClassErrors.RequestBinder.PropertySource.SimpleProperty(System.Linq.Expressions.Expression!>! selector) -> FirstClassErrors.RequestBinder.SimplePropertyConverter! +FirstClassErrors.RequestBinder.RequestBinder +FirstClassErrors.RequestBinder.RequestBinder.Argument(string! name) -> FirstClassErrors.RequestBinder.ArgumentSource! +FirstClassErrors.RequestBinder.RequestBinder.ArgumentList(string! name) -> FirstClassErrors.RequestBinder.ArgumentListSource! +FirstClassErrors.RequestBinder.RequestBinder.Create(FirstClassErrors.RequestBinder.ValidatingAssembler! assemble) -> FirstClassErrors.Outcome! +FirstClassErrors.RequestBinder.RequestBinder.New(FirstClassErrors.RequestBinder.BindingAssembler! assemble) -> FirstClassErrors.Outcome! +FirstClassErrors.RequestBinder.RequestBinder.PropertiesOf(TDto dto) -> FirstClassErrors.RequestBinder.PropertySource! +FirstClassErrors.RequestBinder.RequestBinderOptions +FirstClassErrors.RequestBinder.RequestBinderOptions.ArgumentInvalid.get -> FirstClassErrors.RequestBinder.BinderErrorDefinition! +FirstClassErrors.RequestBinder.RequestBinderOptions.ArgumentNameProvider.get -> FirstClassErrors.RequestBinder.IArgumentNameProvider! +FirstClassErrors.RequestBinder.RequestBinderOptions.ArgumentRequired.get -> FirstClassErrors.RequestBinder.BinderErrorDefinition! +FirstClassErrors.RequestBinder.RequestBinderOptions.RequestBinderOptions(FirstClassErrors.RequestBinder.IArgumentNameProvider! argumentNameProvider, FirstClassErrors.RequestBinder.BinderErrorDefinition? argumentRequired = null, FirstClassErrors.RequestBinder.BinderErrorDefinition? argumentInvalid = null) -> void +FirstClassErrors.RequestBinder.RequestBindingError +FirstClassErrors.RequestBinder.RequiredField +FirstClassErrors.RequestBinder.SimplePropertyConverter +FirstClassErrors.RequestBinder.SimplePropertyConverter.AsOptional(System.Func!>! convert, TArgument rawFallback) -> FirstClassErrors.RequestBinder.RequiredField! +FirstClassErrors.RequestBinder.SimplePropertyConverter.AsOptionalReference(System.Func!>! convert) -> FirstClassErrors.RequestBinder.OptionalReferenceField! +FirstClassErrors.RequestBinder.SimplePropertyConverter.AsOptionalValue(System.Func!>! convert) -> FirstClassErrors.RequestBinder.OptionalValueField! +FirstClassErrors.RequestBinder.SimplePropertyConverter.AsRequired() -> FirstClassErrors.RequestBinder.RequiredField! +FirstClassErrors.RequestBinder.SimplePropertyConverter.AsRequired(System.Func!>! convert) -> FirstClassErrors.RequestBinder.RequiredField! +FirstClassErrors.RequestBinder.ValidatingAssembler +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromBody(this FirstClassErrors.RequestBinder.ArgumentSource! argument, TArgument? value) -> FirstClassErrors.RequestBinder.SimplePropertyConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromForm(this FirstClassErrors.RequestBinder.ArgumentListSource! argument, System.Collections.Generic.IEnumerable? values) -> FirstClassErrors.RequestBinder.ListOfSimplePropertiesConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromForm(this FirstClassErrors.RequestBinder.ArgumentListSource! argument, System.Collections.Generic.IEnumerable? values) -> FirstClassErrors.RequestBinder.ListOfSimpleValuePropertiesConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromForm(this FirstClassErrors.RequestBinder.ArgumentSource! argument, TArgument? value) -> FirstClassErrors.RequestBinder.SimplePropertyConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromHeader(this FirstClassErrors.RequestBinder.ArgumentListSource! argument, System.Collections.Generic.IEnumerable? values) -> FirstClassErrors.RequestBinder.ListOfSimplePropertiesConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromHeader(this FirstClassErrors.RequestBinder.ArgumentListSource! argument, System.Collections.Generic.IEnumerable? values) -> FirstClassErrors.RequestBinder.ListOfSimpleValuePropertiesConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromHeader(this FirstClassErrors.RequestBinder.ArgumentSource! argument, TArgument? value) -> FirstClassErrors.RequestBinder.SimplePropertyConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromQuery(this FirstClassErrors.RequestBinder.ArgumentListSource! argument, System.Collections.Generic.IEnumerable? values) -> FirstClassErrors.RequestBinder.ListOfSimplePropertiesConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromQuery(this FirstClassErrors.RequestBinder.ArgumentListSource! argument, System.Collections.Generic.IEnumerable? values) -> FirstClassErrors.RequestBinder.ListOfSimpleValuePropertiesConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromQuery(this FirstClassErrors.RequestBinder.ArgumentSource! argument, TArgument? value) -> FirstClassErrors.RequestBinder.SimplePropertyConverter! +static FirstClassErrors.RequestBinder.ArgumentSourceExtensions.FromRoute(this FirstClassErrors.RequestBinder.ArgumentSource! argument, TArgument? value) -> FirstClassErrors.RequestBinder.SimplePropertyConverter! +static FirstClassErrors.RequestBinder.Bind.Request(System.Func! envelope) -> FirstClassErrors.RequestBinder.RequestBinder! +static FirstClassErrors.RequestBinder.Bind.WithOptions(FirstClassErrors.RequestBinder.RequestBinderOptions! options) -> FirstClassErrors.RequestBinder.ConfiguredBind! +static FirstClassErrors.RequestBinder.RequestBinderOptions.Default.get -> FirstClassErrors.RequestBinder.RequestBinderOptions! +static FirstClassErrors.RequestBinder.RequestBinderOptions.Default.set -> void +static FirstClassErrors.RequestBinder.RequestBindingError.ArgumentPathKey.get -> FirstClassErrors.ErrorContextKey! +static FirstClassErrors.RequestBinder.RequestBindingError.ArgumentSourceKey.get -> FirstClassErrors.ErrorContextKey! +static FirstClassErrors.RequestBinder.RequestBindingError.DefaultArgumentInvalid.get -> FirstClassErrors.RequestBinder.BinderErrorDefinition! +static FirstClassErrors.RequestBinder.RequestBindingError.DefaultArgumentInvalidCode.get -> FirstClassErrors.ErrorCode! +static FirstClassErrors.RequestBinder.RequestBindingError.DefaultArgumentRequired.get -> FirstClassErrors.RequestBinder.BinderErrorDefinition! +static FirstClassErrors.RequestBinder.RequestBindingError.DefaultArgumentRequiredCode.get -> FirstClassErrors.ErrorCode! +static FirstClassErrors.RequestBinder.RequestBindingError.DescribeArgumentInvalid(FirstClassErrors.RequestBinder.BinderErrorDefinition! definition) -> FirstClassErrors.ErrorDocumentation! +static FirstClassErrors.RequestBinder.RequestBindingError.DescribeArgumentRequired(FirstClassErrors.RequestBinder.BinderErrorDefinition! definition) -> FirstClassErrors.ErrorDocumentation! +static FirstClassErrors.RequestBinder.RequestBindingError.SampleArgumentInvalid(FirstClassErrors.RequestBinder.BinderErrorDefinition! definition) -> FirstClassErrors.PrimaryPortError! +static FirstClassErrors.RequestBinder.RequestBindingError.SampleArgumentRequired(FirstClassErrors.RequestBinder.BinderErrorDefinition! definition) -> FirstClassErrors.PrimaryPortError! +virtual FirstClassErrors.RequestBinder.BindingAssembler.Invoke(FirstClassErrors.RequestBinder.BindingScope scope) -> TCommand +virtual FirstClassErrors.RequestBinder.ValidatingAssembler.Invoke(FirstClassErrors.RequestBinder.BindingScope scope) -> FirstClassErrors.Outcome! diff --git a/FirstClassErrors.Testing/FirstClassErrors.Testing.csproj b/FirstClassErrors.Testing/FirstClassErrors.Testing.csproj index a9dba11f..4d5f5c0f 100644 --- a/FirstClassErrors.Testing/FirstClassErrors.Testing.csproj +++ b/FirstClassErrors.Testing/FirstClassErrors.Testing.csproj @@ -1,5 +1,8 @@ + + + netstandard2.0 diff --git a/FirstClassErrors.Testing/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/FirstClassErrors.Testing/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt new file mode 100644 index 00000000..7dc5c581 --- /dev/null +++ b/FirstClassErrors.Testing/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/FirstClassErrors.Testing/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/FirstClassErrors.Testing/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..ba4650bf --- /dev/null +++ b/FirstClassErrors.Testing/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt @@ -0,0 +1,41 @@ +#nullable enable +FirstClassErrors.Testing.Clock +FirstClassErrors.Testing.DetailedMessageFactory +FirstClassErrors.Testing.DiagnosticMessageFactory +FirstClassErrors.Testing.ErrorAssertion +FirstClassErrors.Testing.ErrorAssertion.Subject.get -> FirstClassErrors.Error! +FirstClassErrors.Testing.ErrorAssertion.WithCode(FirstClassErrors.ErrorCode! expectedCode) -> FirstClassErrors.Testing.ErrorAssertion! +FirstClassErrors.Testing.ErrorAssertion.WithCode(string! expectedCode) -> FirstClassErrors.Testing.ErrorAssertion! +FirstClassErrors.Testing.ErrorAssertion.WithContextEntry(string! key) -> FirstClassErrors.Testing.ErrorAssertion! +FirstClassErrors.Testing.ErrorAssertion.WithContextEntry(string! key, object? expectedValue) -> FirstClassErrors.Testing.ErrorAssertion! +FirstClassErrors.Testing.ErrorAssertion.WithDiagnosticMessage(string! expected) -> FirstClassErrors.Testing.ErrorAssertion! +FirstClassErrors.Testing.ErrorAssertion.WithShortMessage(string! expected) -> FirstClassErrors.Testing.ErrorAssertion! +FirstClassErrors.Testing.ErrorCodeFactory +FirstClassErrors.Testing.ErrorOriginFactory +FirstClassErrors.Testing.IClock +FirstClassErrors.Testing.IClock.UtcNow.get -> System.DateTimeOffset +FirstClassErrors.Testing.InstanceIds +FirstClassErrors.Testing.InteractionDirectionFactory +FirstClassErrors.Testing.OutcomeAssertionException +FirstClassErrors.Testing.OutcomeAssertionException.OutcomeAssertionException(string! message) -> void +FirstClassErrors.Testing.OutcomeAssertions +FirstClassErrors.Testing.ShortMessageFactory +FirstClassErrors.Testing.TransienceFactory +static FirstClassErrors.Testing.Clock.Use(FirstClassErrors.Testing.IClock! clock) -> System.IDisposable! +static FirstClassErrors.Testing.Clock.UseAny() -> System.IDisposable! +static FirstClassErrors.Testing.Clock.UseFixed(System.DateTimeOffset instant) -> System.IDisposable! +static FirstClassErrors.Testing.DetailedMessageFactory.Any() -> string! +static FirstClassErrors.Testing.DiagnosticMessageFactory.Any() -> string! +static FirstClassErrors.Testing.ErrorCodeFactory.Any() -> FirstClassErrors.ErrorCode! +static FirstClassErrors.Testing.ErrorOriginFactory.Any() -> FirstClassErrors.ErrorOrigin +static FirstClassErrors.Testing.InstanceIds.Use(System.Func! next) -> System.IDisposable! +static FirstClassErrors.Testing.InstanceIds.UseAny() -> System.IDisposable! +static FirstClassErrors.Testing.InstanceIds.UseFixed(System.Guid id) -> System.IDisposable! +static FirstClassErrors.Testing.InstanceIds.UseSequential() -> System.IDisposable! +static FirstClassErrors.Testing.InteractionDirectionFactory.Any() -> FirstClassErrors.InteractionDirection +static FirstClassErrors.Testing.OutcomeAssertions.ShouldFail(this FirstClassErrors.Outcome! outcome) -> FirstClassErrors.Testing.ErrorAssertion! +static FirstClassErrors.Testing.OutcomeAssertions.ShouldFail(this FirstClassErrors.Outcome! outcome) -> FirstClassErrors.Testing.ErrorAssertion! +static FirstClassErrors.Testing.OutcomeAssertions.ShouldSucceed(this FirstClassErrors.Outcome! outcome) -> void +static FirstClassErrors.Testing.OutcomeAssertions.ShouldSucceed(this FirstClassErrors.Outcome! outcome) -> T +static FirstClassErrors.Testing.ShortMessageFactory.Any() -> string! +static FirstClassErrors.Testing.TransienceFactory.Any() -> FirstClassErrors.Transience diff --git a/FirstClassErrors/FirstClassErrors.csproj b/FirstClassErrors/FirstClassErrors.csproj index a6db7912..a6c4e058 100644 --- a/FirstClassErrors/FirstClassErrors.csproj +++ b/FirstClassErrors/FirstClassErrors.csproj @@ -1,5 +1,8 @@  + + + netstandard2.0 diff --git a/FirstClassErrors/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/FirstClassErrors/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt new file mode 100644 index 00000000..7dc5c581 --- /dev/null +++ b/FirstClassErrors/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/FirstClassErrors/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/FirstClassErrors/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..04ec7357 --- /dev/null +++ b/FirstClassErrors/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt @@ -0,0 +1,287 @@ +#nullable enable +abstract FirstClassErrors.Error.ToException() -> FirstClassErrors.DiagnosableException! +const FirstClassErrors.Error.MissingDiagnosticMessage = "#MISSING_DIAGNOSTIC_MESSAGE" -> string! +const FirstClassErrors.Error.MissingShortMessage = "#MISSING_SHORT_MESSAGE" -> string! +const FirstClassErrors.GenDoc.Rendering.RenderLayouts.Single = "single" -> string! +const FirstClassErrors.GenDoc.Rendering.RenderLayouts.Split = "split" -> string! +FirstClassErrors.DescribeError +FirstClassErrors.DiagnosableException +FirstClassErrors.DiagnosableException.DiagnosableException(FirstClassErrors.Error! error) -> void +FirstClassErrors.DiagnosableException.DiagnosableException(FirstClassErrors.Error! error, System.Exception! innerException) -> void +FirstClassErrors.DiagnosableException.Error.get -> FirstClassErrors.Error! +FirstClassErrors.DocumentedByAttribute +FirstClassErrors.DocumentedByAttribute.DocumentedByAttribute(string! documentationMethodName) -> void +FirstClassErrors.DocumentedByAttribute.MethodName.get -> string! +FirstClassErrors.DomainError +FirstClassErrors.DomainException +FirstClassErrors.DomainException.DomainException(FirstClassErrors.DomainError! error) -> void +FirstClassErrors.Error +FirstClassErrors.Error.Code.get -> FirstClassErrors.ErrorCode! +FirstClassErrors.Error.Context.get -> FirstClassErrors.ErrorContext! +FirstClassErrors.Error.DetailedMessage.get -> string? +FirstClassErrors.Error.DiagnosticMessage.get -> string! +FirstClassErrors.Error.Error(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, string! shortMessage, string? detailedMessage, FirstClassErrors.Error! innerError, System.Action? configureContext = null) -> void +FirstClassErrors.Error.Error(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, string! shortMessage, string? detailedMessage, System.Action? configureContext = null) -> void +FirstClassErrors.Error.Error(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, string! shortMessage, string? detailedMessage, System.Collections.Generic.IEnumerable! innerErrors, System.Action? configureContext = null) -> void +FirstClassErrors.Error.InnerErrors.get -> System.Collections.Generic.IReadOnlyList! +FirstClassErrors.Error.InstanceId.get -> System.Guid +FirstClassErrors.Error.OccurredAt.get -> System.DateTimeOffset +FirstClassErrors.Error.ShortMessage.get -> string! +FirstClassErrors.ErrorCode +FirstClassErrors.ErrorCode.Equals(FirstClassErrors.ErrorCode? other) -> bool +FirstClassErrors.ErrorContext +FirstClassErrors.ErrorContext.IsEmpty.get -> bool +FirstClassErrors.ErrorContext.ToNameDictionary() -> System.Collections.Generic.IReadOnlyDictionary! +FirstClassErrors.ErrorContext.TryGet(FirstClassErrors.ErrorContextKey! key, out T? value) -> bool +FirstClassErrors.ErrorContext.Values.get -> System.Collections.Generic.IReadOnlyDictionary! +FirstClassErrors.ErrorContextBuilder +FirstClassErrors.ErrorContextBuilder.Add(FirstClassErrors.ErrorContextKey! key, T? value) -> FirstClassErrors.ErrorContextBuilder! +FirstClassErrors.ErrorContextBuilder.ErrorContextBuilder() -> void +FirstClassErrors.ErrorContextEntryDocumentation +FirstClassErrors.ErrorContextEntryDocumentation.Description.get -> string? +FirstClassErrors.ErrorContextEntryDocumentation.Description.set -> void +FirstClassErrors.ErrorContextEntryDocumentation.ErrorContextEntryDocumentation() -> void +FirstClassErrors.ErrorContextEntryDocumentation.ExampleValues.get -> System.Collections.Generic.IReadOnlyList! +FirstClassErrors.ErrorContextEntryDocumentation.ExampleValues.set -> void +FirstClassErrors.ErrorContextEntryDocumentation.Key.get -> string? +FirstClassErrors.ErrorContextEntryDocumentation.Key.set -> void +FirstClassErrors.ErrorContextEntryDocumentation.ValueType.get -> string? +FirstClassErrors.ErrorContextEntryDocumentation.ValueType.set -> void +FirstClassErrors.ErrorContextKey +FirstClassErrors.ErrorContextKey.Description.get -> string? +FirstClassErrors.ErrorContextKey.Equals(FirstClassErrors.ErrorContextKey? other) -> bool +FirstClassErrors.ErrorContextKey.Name.get -> string! +FirstClassErrors.ErrorContextKey.ValueType.get -> System.Type! +FirstClassErrors.ErrorContextKey +FirstClassErrors.ErrorDescription +FirstClassErrors.ErrorDescription.DetailedMessage.get -> string? +FirstClassErrors.ErrorDescription.DiagnosticMessage.get -> string! +FirstClassErrors.ErrorDescription.ErrorDescription(string! shortMessage, string! diagnosticMessage, string? detailedMessage = null) -> void +FirstClassErrors.ErrorDescription.ShortMessage.get -> string! +FirstClassErrors.ErrorDiagnostic +FirstClassErrors.ErrorDiagnostic.AnalysisHint.get -> string! +FirstClassErrors.ErrorDiagnostic.ErrorDiagnostic(string! possibleCause, FirstClassErrors.ErrorOrigin origin, string! analysisHint) -> void +FirstClassErrors.ErrorDiagnostic.Origin.get -> FirstClassErrors.ErrorOrigin +FirstClassErrors.ErrorDiagnostic.PossibleCause.get -> string! +FirstClassErrors.ErrorDocumentation +FirstClassErrors.ErrorDocumentation.BusinessRule.get -> string? +FirstClassErrors.ErrorDocumentation.BusinessRule.set -> void +FirstClassErrors.ErrorDocumentation.Code.get -> string? +FirstClassErrors.ErrorDocumentation.Code.set -> void +FirstClassErrors.ErrorDocumentation.Context.get -> System.Collections.Generic.IReadOnlyCollection! +FirstClassErrors.ErrorDocumentation.Context.set -> void +FirstClassErrors.ErrorDocumentation.Diagnostics.get -> System.Collections.Generic.IReadOnlyList! +FirstClassErrors.ErrorDocumentation.Diagnostics.set -> void +FirstClassErrors.ErrorDocumentation.ErrorDocumentation() -> void +FirstClassErrors.ErrorDocumentation.Examples.get -> System.Collections.Generic.IReadOnlyList! +FirstClassErrors.ErrorDocumentation.Examples.set -> void +FirstClassErrors.ErrorDocumentation.Explanation.get -> string? +FirstClassErrors.ErrorDocumentation.Explanation.set -> void +FirstClassErrors.ErrorDocumentation.Source.get -> string? +FirstClassErrors.ErrorDocumentation.Source.set -> void +FirstClassErrors.ErrorDocumentation.SourceDescription.get -> string? +FirstClassErrors.ErrorDocumentation.SourceDescription.set -> void +FirstClassErrors.ErrorDocumentation.Title.get -> string? +FirstClassErrors.ErrorDocumentation.Title.set -> void +FirstClassErrors.ErrorDocumentationException +FirstClassErrors.ErrorOrigin +FirstClassErrors.ErrorOrigin.External = 1 -> FirstClassErrors.ErrorOrigin +FirstClassErrors.ErrorOrigin.Internal = 0 -> FirstClassErrors.ErrorOrigin +FirstClassErrors.ErrorOrigin.InternalOrExternal = 2 -> FirstClassErrors.ErrorOrigin +FirstClassErrors.GenDoc.AssemblyErrorDocumentationReader +FirstClassErrors.GenDoc.ErrorDocumentationExtractionFailure +FirstClassErrors.GenDoc.ErrorDocumentationExtractionFailure.ErrorDocumentationExtractionFailure(string! typeName, string? memberName, string! message, string? exceptionDetail) -> void +FirstClassErrors.GenDoc.ErrorDocumentationExtractionFailure.ExceptionDetail.get -> string? +FirstClassErrors.GenDoc.ErrorDocumentationExtractionFailure.MemberName.get -> string? +FirstClassErrors.GenDoc.ErrorDocumentationExtractionFailure.Message.get -> string! +FirstClassErrors.GenDoc.ErrorDocumentationExtractionFailure.TypeName.get -> string! +FirstClassErrors.GenDoc.ErrorDocumentationExtractionResult +FirstClassErrors.GenDoc.ErrorDocumentationExtractionResult.Documentation.get -> System.Collections.Generic.IReadOnlyList! +FirstClassErrors.GenDoc.ErrorDocumentationExtractionResult.ErrorDocumentationExtractionResult(System.Collections.Generic.IReadOnlyList! documentation, System.Collections.Generic.IReadOnlyList! failures) -> void +FirstClassErrors.GenDoc.ErrorDocumentationExtractionResult.Failures.get -> System.Collections.Generic.IReadOnlyList! +FirstClassErrors.GenDoc.ErrorDocumentationExtractionResult.HasFailures.get -> bool +FirstClassErrors.GenDoc.Rendering.IErrorDocumentationRenderer +FirstClassErrors.GenDoc.Rendering.IErrorDocumentationRenderer.Format.get -> string! +FirstClassErrors.GenDoc.Rendering.IErrorDocumentationRenderer.Render(System.Collections.Generic.IEnumerable! catalog, FirstClassErrors.GenDoc.Rendering.RenderRequest! request) -> System.Collections.Generic.IReadOnlyList! +FirstClassErrors.GenDoc.Rendering.IErrorDocumentationRenderer.SupportedLayouts.get -> System.Collections.Generic.IReadOnlyCollection! +FirstClassErrors.GenDoc.Rendering.LayoutNotSupportedException +FirstClassErrors.GenDoc.Rendering.LayoutNotSupportedException.Format.get -> string! +FirstClassErrors.GenDoc.Rendering.LayoutNotSupportedException.LayoutNotSupportedException(string! format, string! requestedLayout, System.Collections.Generic.IEnumerable! supportedLayouts) -> void +FirstClassErrors.GenDoc.Rendering.LayoutNotSupportedException.RequestedLayout.get -> string! +FirstClassErrors.GenDoc.Rendering.LayoutNotSupportedException.SupportedLayouts.get -> System.Collections.Generic.IReadOnlyList! +FirstClassErrors.GenDoc.Rendering.RenderedDocument +FirstClassErrors.GenDoc.Rendering.RenderedDocument.Content.get -> string! +FirstClassErrors.GenDoc.Rendering.RenderedDocument.RelativePath.get -> string! +FirstClassErrors.GenDoc.Rendering.RenderedDocument.RenderedDocument(string! relativePath, string! content) -> void +FirstClassErrors.GenDoc.Rendering.RenderLayouts +FirstClassErrors.GenDoc.Rendering.RenderRequest +FirstClassErrors.GenDoc.Rendering.RenderRequest.Culture.get -> System.Globalization.CultureInfo! +FirstClassErrors.GenDoc.Rendering.RenderRequest.Layout.get -> string! +FirstClassErrors.GenDoc.Rendering.RenderRequest.RenderRequest(string! layout) -> void +FirstClassErrors.GenDoc.Rendering.RenderRequest.RenderRequest(string! layout, System.Globalization.CultureInfo! culture) -> void +FirstClassErrors.GenDoc.Rendering.RenderRequest.RenderRequest(string! layout, System.Globalization.CultureInfo! culture, string? serviceName) -> void +FirstClassErrors.GenDoc.Rendering.RenderRequest.ServiceName.get -> string? +FirstClassErrors.GenDoc.Rendering.ServiceNameRequiredException +FirstClassErrors.GenDoc.Rendering.ServiceNameRequiredException.Format.get -> string! +FirstClassErrors.GenDoc.Rendering.ServiceNameRequiredException.ServiceNameRequiredException(string! format) -> void +FirstClassErrors.IErrorDescriptionStage +FirstClassErrors.IErrorDescriptionStage.WithDescription(string! description) -> FirstClassErrors.IErrorRuleStage! +FirstClassErrors.IErrorDiagnosticsStage +FirstClassErrors.IErrorDiagnosticsStage.WithDiagnostic(string! cause, FirstClassErrors.ErrorOrigin type, string! analysisLead) -> FirstClassErrors.IErrorExamplesOrDiagnosticsStage! +FirstClassErrors.IErrorDiagnosticsStage.WithDiagnostics(params FirstClassErrors.ErrorDiagnostic![]! diagnostics) -> FirstClassErrors.IErrorExamplesStage! +FirstClassErrors.IErrorDiagnosticsStage.WithoutDiagnostic() -> FirstClassErrors.IErrorExamplesStage! +FirstClassErrors.IErrorExamplesOrDiagnosticsStage +FirstClassErrors.IErrorExamplesOrDiagnosticsStage.AndDiagnostic(string! cause, FirstClassErrors.ErrorOrigin type, string! analysisLead) -> FirstClassErrors.IErrorExamplesOrDiagnosticsStage! +FirstClassErrors.IErrorExamplesOrDiagnosticsStage.WithExamples(params System.Func![]! exampleFactories) -> FirstClassErrors.ErrorDocumentation! +FirstClassErrors.IErrorExamplesStage +FirstClassErrors.IErrorExamplesStage.WithExamples(params System.Func![]! exampleFactories) -> FirstClassErrors.ErrorDocumentation! +FirstClassErrors.IErrorRuleStage +FirstClassErrors.IErrorRuleStage.WithoutRule() -> FirstClassErrors.IErrorDiagnosticsStage! +FirstClassErrors.IErrorRuleStage.WithRule(string! rule) -> FirstClassErrors.IErrorDiagnosticsStage! +FirstClassErrors.IErrorTitleStage +FirstClassErrors.IErrorTitleStage.WithTitle(string! title) -> FirstClassErrors.IErrorDescriptionStage! +FirstClassErrors.InfrastructureError +FirstClassErrors.InfrastructureError.Direction.get -> FirstClassErrors.InteractionDirection +FirstClassErrors.InfrastructureError.Transience.get -> FirstClassErrors.Transience +FirstClassErrors.InfrastructureException +FirstClassErrors.InfrastructureException.InfrastructureException(FirstClassErrors.InfrastructureError! error) -> void +FirstClassErrors.InteractionDirection +FirstClassErrors.InteractionDirection.Incoming = 1 -> FirstClassErrors.InteractionDirection +FirstClassErrors.InteractionDirection.Outgoing = 2 -> FirstClassErrors.InteractionDirection +FirstClassErrors.InteractionDirection.Unknown = 0 -> FirstClassErrors.InteractionDirection +FirstClassErrors.Outcome +FirstClassErrors.Outcome.Error.get -> FirstClassErrors.Error? +FirstClassErrors.Outcome.Finally(System.Action! onSuccess, System.Action! onFailure) -> void +FirstClassErrors.Outcome.Finally(System.Func! onSuccess, System.Func! onFailure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +FirstClassErrors.Outcome.Finally(System.Func!>! onSuccess, System.Func!>! onFailure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +FirstClassErrors.Outcome.Finally(System.Func! onSuccess, System.Func! onFailure) -> TResult +FirstClassErrors.Outcome.IsFailure.get -> bool +FirstClassErrors.Outcome.IsSuccess.get -> bool +FirstClassErrors.Outcome.Recover(System.Func! fallback) -> FirstClassErrors.Outcome! +FirstClassErrors.Outcome.Recover(System.Func!>! fallback, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +FirstClassErrors.Outcome.Then(System.Func! next) -> FirstClassErrors.Outcome! +FirstClassErrors.Outcome.Then(System.Func!>! next, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +FirstClassErrors.Outcome.Then(System.Func!>! next) -> FirstClassErrors.Outcome! +FirstClassErrors.Outcome.Then(System.Func!>!>! next, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +FirstClassErrors.Outcome.ThrowIfFailure() -> void +FirstClassErrors.Outcome +FirstClassErrors.Outcome.Error.get -> FirstClassErrors.Error? +FirstClassErrors.Outcome.Finally(System.Action! onSuccess, System.Action! onFailure) -> void +FirstClassErrors.Outcome.Finally(System.Func! onSuccess, System.Func! onFailure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +FirstClassErrors.Outcome.Finally(System.Func!>! onSuccess, System.Func!>! onFailure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +FirstClassErrors.Outcome.Finally(System.Func! onSuccess, System.Func! onFailure) -> TResult +FirstClassErrors.Outcome.GetResultOrThrow() -> T +FirstClassErrors.Outcome.IsFailure.get -> bool +FirstClassErrors.Outcome.IsSuccess.get -> bool +FirstClassErrors.Outcome.Recover(System.Func!>! fallback) -> FirstClassErrors.Outcome! +FirstClassErrors.Outcome.Recover(System.Func!>!>! fallback, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +FirstClassErrors.Outcome.Recover(System.Func!>! fallback, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +FirstClassErrors.Outcome.Recover(System.Func! fallback) -> FirstClassErrors.Outcome! +FirstClassErrors.Outcome.Then(System.Func! next) -> FirstClassErrors.Outcome! +FirstClassErrors.Outcome.Then(System.Func!>! next, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +FirstClassErrors.Outcome.Then(System.Func!>! next) -> FirstClassErrors.Outcome! +FirstClassErrors.Outcome.Then(System.Func!>!>! next, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +FirstClassErrors.Outcome.Then(System.Func!>! convert, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +FirstClassErrors.Outcome.Then(System.Func! convert) -> FirstClassErrors.Outcome! +FirstClassErrors.Outcome.ThrowIfFailure() -> void +FirstClassErrors.OutcomeTaskExtensions +FirstClassErrors.PrimaryPortError +FirstClassErrors.PrimaryPortException +FirstClassErrors.PrimaryPortException.PrimaryPortException(FirstClassErrors.PrimaryPortError! error) -> void +FirstClassErrors.PrimaryPortInnerErrors +FirstClassErrors.PrimaryPortInnerErrors.Add(FirstClassErrors.DomainError! error) -> FirstClassErrors.PrimaryPortInnerErrors! +FirstClassErrors.PrimaryPortInnerErrors.Add(FirstClassErrors.PrimaryPortError! error) -> FirstClassErrors.PrimaryPortInnerErrors! +FirstClassErrors.PrimaryPortInnerErrors.ComputeTransience() -> FirstClassErrors.Transience +FirstClassErrors.PrimaryPortInnerErrors.PrimaryPortInnerErrors() -> void +FirstClassErrors.ProvidesErrorsForAttribute +FirstClassErrors.ProvidesErrorsForAttribute.Description.get -> string? +FirstClassErrors.ProvidesErrorsForAttribute.Description.set -> void +FirstClassErrors.ProvidesErrorsForAttribute.DescriptionResourceType.get -> System.Type? +FirstClassErrors.ProvidesErrorsForAttribute.DescriptionResourceType.set -> void +FirstClassErrors.ProvidesErrorsForAttribute.ProvidesErrorsForAttribute(string! source) -> void +FirstClassErrors.ProvidesErrorsForAttribute.Source.get -> string! +FirstClassErrors.PublicMessageStage +FirstClassErrors.PublicMessageStage.WithPublicMessage(string! shortMessage, string? detailedMessage = null) -> TError! +FirstClassErrors.SecondaryPortError +FirstClassErrors.SecondaryPortException +FirstClassErrors.SecondaryPortException.SecondaryPortException(FirstClassErrors.SecondaryPortError! error) -> void +FirstClassErrors.SecondaryPortInnerErrors +FirstClassErrors.SecondaryPortInnerErrors.Add(FirstClassErrors.DomainError! error) -> FirstClassErrors.SecondaryPortInnerErrors! +FirstClassErrors.SecondaryPortInnerErrors.Add(FirstClassErrors.SecondaryPortError! error) -> FirstClassErrors.SecondaryPortInnerErrors! +FirstClassErrors.SecondaryPortInnerErrors.ComputeTransience() -> FirstClassErrors.Transience +FirstClassErrors.SecondaryPortInnerErrors.SecondaryPortInnerErrors() -> void +FirstClassErrors.Transience +FirstClassErrors.Transience.NonTransient = 1 -> FirstClassErrors.Transience +FirstClassErrors.Transience.Transient = 2 -> FirstClassErrors.Transience +FirstClassErrors.Transience.Unknown = 0 -> FirstClassErrors.Transience +override FirstClassErrors.DomainError.ToException() -> FirstClassErrors.DiagnosableException! +override FirstClassErrors.Error.ToString() -> string! +override FirstClassErrors.ErrorCode.Equals(object? obj) -> bool +override FirstClassErrors.ErrorCode.GetHashCode() -> int +override FirstClassErrors.ErrorCode.ToString() -> string! +override FirstClassErrors.ErrorContextKey.Equals(object? obj) -> bool +override FirstClassErrors.ErrorContextKey.GetHashCode() -> int +override FirstClassErrors.ErrorContextKey.ToString() -> string! +override FirstClassErrors.ErrorDocumentation.ToString() -> string! +override FirstClassErrors.GenDoc.ErrorDocumentationExtractionFailure.ToString() -> string! +override FirstClassErrors.InfrastructureError.ToException() -> FirstClassErrors.DiagnosableException! +override FirstClassErrors.PrimaryPortError.ToException() -> FirstClassErrors.DiagnosableException! +override FirstClassErrors.PrimaryPortInnerErrors.ToString() -> string! +override FirstClassErrors.SecondaryPortError.ToException() -> FirstClassErrors.DiagnosableException! +override FirstClassErrors.SecondaryPortInnerErrors.ToString() -> string! +static FirstClassErrors.DescribeError.WithTitle(string! title) -> FirstClassErrors.IErrorDescriptionStage! +static FirstClassErrors.DomainError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, FirstClassErrors.DomainError! innerError, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.DomainError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.DomainError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, System.Collections.Generic.IEnumerable! innerErrors, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.ErrorCode.Create(string! code) -> FirstClassErrors.ErrorCode! +static FirstClassErrors.ErrorCode.implicit operator string!(FirstClassErrors.ErrorCode! errorCode) -> string! +static FirstClassErrors.ErrorCode.operator !=(FirstClassErrors.ErrorCode? left, FirstClassErrors.ErrorCode? right) -> bool +static FirstClassErrors.ErrorCode.operator ==(FirstClassErrors.ErrorCode? left, FirstClassErrors.ErrorCode? right) -> bool +static FirstClassErrors.ErrorContext.Empty.get -> FirstClassErrors.ErrorContext! +static FirstClassErrors.ErrorContextKey.Create(string! name, string? description = null) -> FirstClassErrors.ErrorContextKey! +static FirstClassErrors.ErrorContextKey.Create(string! name, System.Func! descriptionProvider) -> FirstClassErrors.ErrorContextKey! +static FirstClassErrors.ErrorContextKey.GetRegisteredKeys() -> System.Collections.Generic.IReadOnlyCollection! +static FirstClassErrors.ErrorContextKey.operator !=(FirstClassErrors.ErrorContextKey? left, FirstClassErrors.ErrorContextKey? right) -> bool +static FirstClassErrors.ErrorContextKey.operator ==(FirstClassErrors.ErrorContextKey? left, FirstClassErrors.ErrorContextKey? right) -> bool +static FirstClassErrors.GenDoc.AssemblyErrorDocumentationReader.GetErrorDocumentationFrom(System.Reflection.Assembly! assembly) -> FirstClassErrors.GenDoc.ErrorDocumentationExtractionResult! +static FirstClassErrors.InfrastructureError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, FirstClassErrors.InteractionDirection direction, FirstClassErrors.Transience transience, FirstClassErrors.Error! innerError, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.InfrastructureError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, FirstClassErrors.InteractionDirection direction, FirstClassErrors.Transience transience, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.InfrastructureError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, FirstClassErrors.InteractionDirection direction, FirstClassErrors.Transience transience, System.Collections.Generic.IEnumerable! innerErrors, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.Outcome.Failure(FirstClassErrors.Error! error) -> FirstClassErrors.Outcome! +static FirstClassErrors.Outcome.Try(System.Func!>! operation, System.Func! onError, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.Outcome.Try(System.Func!>! operation, System.Func! onError) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.Outcome.Try(System.Func! operation, System.Func! onError) -> FirstClassErrors.Outcome! +static FirstClassErrors.Outcome.Try(System.Action! operation, System.Func! onError) -> FirstClassErrors.Outcome! +static FirstClassErrors.Outcome.Try(System.Func! operation, System.Func! onError, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static FirstClassErrors.Outcome.Try(System.Func! operation, System.Func! onError) -> System.Threading.Tasks.Task! +static FirstClassErrors.Outcome.Failure(FirstClassErrors.Error! error) -> FirstClassErrors.Outcome! +static FirstClassErrors.Outcome.Success(T result) -> FirstClassErrors.Outcome! +static FirstClassErrors.OutcomeTaskExtensions.Finally(this System.Threading.Tasks.Task! task, System.Action! onSuccess, System.Action! onFailure) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Finally(this System.Threading.Tasks.Task! task, System.Func! onSuccess, System.Func! onFailure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Finally(this System.Threading.Tasks.Task!>! task, System.Func!>! onSuccess, System.Func!>! onFailure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Finally(this System.Threading.Tasks.Task!>! task, System.Func! onSuccess, System.Func! onFailure) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Finally(this System.Threading.Tasks.Task!>! task, System.Action! onSuccess, System.Action! onFailure) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Finally(this System.Threading.Tasks.Task!>! task, System.Func! onSuccess, System.Func! onFailure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Finally(this System.Threading.Tasks.Task! task, System.Func!>! onSuccess, System.Func!>! onFailure, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Finally(this System.Threading.Tasks.Task! task, System.Func! onSuccess, System.Func! onFailure) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Recover(this System.Threading.Tasks.Task! task, System.Func! fallback) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Recover(this System.Threading.Tasks.Task! task, System.Func!>! fallback, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Recover(this System.Threading.Tasks.Task!>! task, System.Func!>! fallback) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Recover(this System.Threading.Tasks.Task!>! task, System.Func!>!>! fallback, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Recover(this System.Threading.Tasks.Task!>! task, System.Func!>! fallback, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Recover(this System.Threading.Tasks.Task!>! task, System.Func! fallback) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task! task, System.Func! next) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task! task, System.Func!>! next, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task!>! task, System.Func!>! next) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task!>! task, System.Func!>!>! next, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task!>! task, System.Func!>! convert, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task!>! task, System.Func! convert) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task!>! task, System.Func! next) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task!>! task, System.Func!>! next, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task! task, System.Func!>! next) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.OutcomeTaskExtensions.Then(this System.Threading.Tasks.Task! task, System.Func!>!>! next, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +static FirstClassErrors.PrimaryPortError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, FirstClassErrors.PrimaryPortInnerErrors! innerErrors, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.PrimaryPortError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, FirstClassErrors.Transience transience, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.SecondaryPortError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, FirstClassErrors.SecondaryPortInnerErrors! innerErrors, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static FirstClassErrors.SecondaryPortError.Create(FirstClassErrors.ErrorCode! code, string! diagnosticMessage, FirstClassErrors.Transience transience, System.Action? configureContext = null) -> FirstClassErrors.PublicMessageStage! +static readonly FirstClassErrors.Outcome.Success -> FirstClassErrors.Outcome! diff --git a/build/PublicApiBaseline.props b/build/PublicApiBaseline.props new file mode 100644 index 00000000..b2220a2a --- /dev/null +++ b/build/PublicApiBaseline.props @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + true + + + + + $(NoWarn);RS0026;RS0027 + + + diff --git a/doc/handwritten/for-users/CONTRIBUTING.fr.md b/doc/handwritten/for-users/CONTRIBUTING.fr.md index 2d9b3acf..815b62bc 100644 --- a/doc/handwritten/for-users/CONTRIBUTING.fr.md +++ b/doc/handwritten/for-users/CONTRIBUTING.fr.md @@ -18,6 +18,53 @@ commits sont écrits ici. Voir [`CLAUDE.md`](../../../CLAUDE.md) pour l’organisation du projet et les lignes directrices plus larges concernant les changements. +## Base de référence de l’API publique + +Les bibliothèques publiées — `FirstClassErrors`, `FirstClassErrors.Testing`, +`FirstClassErrors.RequestBinder` (le train `lib`) et `Dummies` (le train `dum`) — +portent une base de référence d’API publique versionnée, de sorte que chaque +changement de leur surface publique soit un diff relu et qu’un changement cassant +accidentel (une surcharge retirée, un type de retour rétréci, un membre renommé) ne +puisse pas être publié silencieusement sous un numéro de version qui promet la +compatibilité. Deux garde-fous, câblés une seule fois dans +[`build/PublicApiBaseline.props`](../../../build/PublicApiBaseline.props) : + +* **`Microsoft.CodeAnalysis.PublicApiAnalyzers`** suit la surface dans des fichiers + `PublicAPI.Shipped.txt` / `PublicAPI.Unshipped.txt` versionnés, sous le dossier + `PublicAPI//` de chaque projet. Un symbole public non déclaré + lève `RS0016` ; un symbole déclaré qui n’existe plus lève `RS0017`. Les deux sont + des avertissements en local et des erreurs en CI (le cliquet + « avertissements = erreurs »), de sorte qu’un changement de surface fait échouer la + compilation tant que le même changement ne met pas à jour la base de référence. +* **La validation de package** (`EnablePackageValidation`) exécute ApiCompat lors du + `dotnet pack`. Sans version de référence définie, elle effectue le contrôle + inter-frameworks au sein du même package (elle prouve que la surface net8.0 de + `Dummies` ne retire jamais une API qu’un consommateur netstandard2.0 voit). Pour + verrouiller en plus par rapport à une version publiée, définissez + `PackageValidationBaselineVersion` ; `0.1.0-preview.1` est la première base de + référence disponible pour le train `lib`. + +**Accepter un changement de surface intentionnel.** Mettez à jour la base de +référence dans le même commit : + +* **Dans un IDE** : appliquez le correctif *« Add to public API »* sur le diagnostic + `RS0016`. +* **En ligne de commande** : `dotnet format analyzers --diagnostics RS0016` + ajoute les nouvelles entrées à `PublicAPI.Unshipped.txt` ; pour une **suppression**, + effacez la ligne correspondante à la main. +* **Multi-cible (`Dummies`)** : chaque framework a sa propre base sous + `PublicAPI//`, et `dotnet format` ne réécrit qu’un seul fichier de framework + par exécution — mettez à jour `net8.0` et `netstandard2.0` séparément lorsqu’un + changement touche les deux. +* **À la publication** : promouvez les entrées accumulées de `PublicAPI.Unshipped.txt` + vers `PublicAPI.Shipped.txt` (le correctif *« mark shipped »*, ou à la main). + +`RS0026`/`RS0027` (les règles de conception « paramètres optionnels répartis sur +plusieurs surcharges ») sont désactivées délibérément : elles se déclenchent sur les +API fluentes centrales de la bibliothèque (`Outcome.Then`/`Recover`/`Finally`/`Try`, +`Any.Reproducibly`), où les faire respecter exigerait une refonte cassante — une +décision distincte, pas une corvée de base de référence. + ## Activer le hook de message de commit Un hook `commit-msg` vérifie chaque message par rapport à la convention ci-dessous