added TryRecover extensions
All checks were successful
.NET Test / test (push) Successful in 1m14s

This commit is contained in:
2023-12-18 18:24:15 +04:00
parent 57e83fbafa
commit 3d34a3021d
7 changed files with 176 additions and 25 deletions

View File

@@ -69,9 +69,9 @@ Result<T> Bar()
```csharp
Result<int> result = GetResult();
var value = result
.Append("new")
.Map((i, s) => $"{s} result {i}")
string value = result
.Append("new") // -> Result<(int, string)>
.Map((i, s) => $"{s} result {i}") // -> Result<string>
.Match(
onSuccess: x => x,
onFailure: err => err.ToString()
@@ -81,6 +81,17 @@ var value = result
Result<int> GetResult() => Result.Success(1);
```
#### Recover from failure
```csharp
Result<string> failed = new NotImplementedException();
Result<string> result = failed.TryRecover(err => err.Type == "System.NotImplementedException"
? "recovered"
: err);
// result with value: "recovered"
```
### Try
```csharp
@@ -99,9 +110,9 @@ int SomeFunction() => 1;
### Ensure
```csharp
var value = GetValue();
Result<int> result = Ensure.That(value)
.NotNull()
int? value = GetValue();
Result<int> result = Ensure.That(value) // -> Ensure<int?>
.NotNull() // -> Ensure<int>
.Satisfies(i => i < 100)
.Result();