Skip to content

feat: introduce shared Result<T> in AndreGoepel.AppFoundation.Core - #140

Merged
andregoepel merged 1 commit into
mainfrom
feature/result-type
Jul 26, 2026
Merged

feat: introduce shared Result<T> in AndreGoepel.AppFoundation.Core#140
andregoepel merged 1 commit into
mainfrom
feature/result-type

Conversation

@andregoepel

Copy link
Copy Markdown
Owner

Adds Result / Result<T> to AndreGoepel.AppFoundation.Core (zero-dependency package, 1.8.01.9.0) as the canonical implementation of the shared convention "Result<T> for error handling — no exceptions for flow control".

Resolves the decision on #138 (option 1): introduce the shared type here rather than softening the convention. andregoepel/finance-app already has an equivalent hand-rolled Result<T> (same shape: IsSuccess/Error/IsFailure, Ok()/Fail(string)/Ok<T>(value)/Fail<T>(string)) — this type is intentionally identical in shape so finance-app (and any other repo) can adopt it later as a drop-in replacement rather than a rewrite. No repo is migrated in this PR; adoption is incremental per the issue.

Also updated .claude-shared/dotnet-conventions.md to point at this as the canonical type.

Verification: dotnet csharpier format . clean, dotnet build 0 errors, dotnet test --filter "FullyQualifiedName!~E2ETests" 117/117 passed (4 new + 113 existing), dotnet list package --vulnerable --include-transitive clean.

Closes #138

🤖 Generated with Claude Code

@andregoepel
andregoepel merged commit 9dd4469 into main Jul 26, 2026
4 checks passed
@andregoepel
andregoepel deleted the feature/result-type branch July 26, 2026 02:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decide on a shared Result<T> pattern for the app-foundation ecosystem

1 participant