From d2432d8dcf45d1427f135055fc3ea3531fd5cb22 Mon Sep 17 00:00:00 2001 From: KaliCZ Date: Tue, 8 Sep 2026 08:44:03 +0200 Subject: [PATCH 1/2] Add out-of-support notice pointing to StrongTypes Co-Authored-By: Claude Fable 5.1 --- readme.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/readme.md b/readme.md index ae2842f..4d62c43 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,20 @@ # FuncSharp - Functional C# +> [!WARNING] +> **FuncSharp is out of support.** The repository is no longer maintained. The published [NuGet packages](https://www.nuget.org/packages/FuncSharp/) remain available. +> +> If you like the concepts, check out **[StrongTypes](https://github.com/KaliCZ/StrongTypes)**. It carries them forward (`Option` as `Maybe`, `Try` as `Result`, plus `NonEmptyString`, `NonEmptyEnumerable`, the numeric wrappers and intervals) with a few improvements: +> +> - Built on .NET 10 and C# 14. +> - Nullable reference types throughout: `TryCreate` returns `NonEmptyString?` rather than `Option`. +> - Pattern matching is supported: `if (maybe.Value is { } v)` and `if (result.Error is { } e)`. +> - Generic numeric wrappers: `Positive` over any `INumber` replaces `PositiveInt`, `PositiveLong`, `PositiveDecimal`, … +> - End-to-end support with no extra work: use the types in your requests, logic and DB models and it works. +> - JSON: `System.Text.Json` converters ship with the types, so invalid JSON fails at deserialization. +> - Database: the types can be stored directly in EF Core entities via the EfCore package. +> - OpenAPI: the generated schema matches the wire JSON, so frontend clients get the right types, via the OpenApi.Microsoft or OpenApi.Swashbuckle package. +> - Roslyn analyzers with code fixes shipped inside the package. +

Mews From 0eb402358079f624477fb24cbfaf5569cdbd1b83 Mon Sep 17 00:00:00 2001 From: KaliCZ Date: Tue, 8 Sep 2026 14:32:36 +0200 Subject: [PATCH 2/2] Don't claim EF Core and OpenAPI work with no extra work The notice promised end-to-end support "with no extra work", which only holds for the JSON converters - those are attached via [JsonConverter]. EF Core and OpenAPI each need a companion package installed and registered, so name them and link their setup docs instead. Co-Authored-By: Claude Opus 5 --- readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/readme.md b/readme.md index 4d62c43..559aab3 100644 --- a/readme.md +++ b/readme.md @@ -9,10 +9,10 @@ > - Nullable reference types throughout: `TryCreate` returns `NonEmptyString?` rather than `Option`. > - Pattern matching is supported: `if (maybe.Value is { } v)` and `if (result.Error is { } e)`. > - Generic numeric wrappers: `Positive` over any `INumber` replaces `PositiveInt`, `PositiveLong`, `PositiveDecimal`, … -> - End-to-end support with no extra work: use the types in your requests, logic and DB models and it works. -> - JSON: `System.Text.Json` converters ship with the types, so invalid JSON fails at deserialization. -> - Database: the types can be stored directly in EF Core entities via the EfCore package. -> - OpenAPI: the generated schema matches the wire JSON, so frontend clients get the right types, via the OpenApi.Microsoft or OpenApi.Swashbuckle package. +> - The same types work end to end - in your requests, your logic and your DB models. JSON needs nothing; EF Core and OpenAPI have companion packages to install and register: +> - JSON: the `System.Text.Json` converters are attached to the types via `[JsonConverter]`, so nothing needs registering and invalid JSON fails at deserialization. +> - Database: [`Kalicz.StrongTypes.EfCore`](https://www.nuget.org/packages/Kalicz.StrongTypes.EfCore/) provides the EF Core value converters that map the wrappers to their underlying column types - see its [setup docs](https://github.com/KaliCZ/StrongTypes/blob/main/src/StrongTypes.EfCore/readme.md). +> - OpenAPI: [`Kalicz.StrongTypes.OpenApi.Microsoft`](https://www.nuget.org/packages/Kalicz.StrongTypes.OpenApi.Microsoft/) ([setup](https://github.com/KaliCZ/StrongTypes/blob/main/src/StrongTypes.OpenApi.Microsoft/readme.md)) and [`Kalicz.StrongTypes.OpenApi.Swashbuckle`](https://www.nuget.org/packages/Kalicz.StrongTypes.OpenApi.Swashbuckle/) ([setup](https://github.com/KaliCZ/StrongTypes/blob/main/src/StrongTypes.OpenApi.Swashbuckle/readme.md)) make the generated schema match the wire JSON, so generated clients get the right types. > - Roslyn analyzers with code fixes shipped inside the package.