Skip to content

Commit 1f1d223

Browse files
committed
Deconstruct() - convert to extension method
1 parent ce6b067 commit 1f1d223

File tree

4 files changed

+60
-55
lines changed

4 files changed

+60
-55
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
namespace CSharpFunctionalExtensions
2+
{
3+
public static partial class ResultExtensions
4+
{
5+
public static void Deconstruct(this Result result, out bool isSuccess, out bool isFailure)
6+
{
7+
isSuccess = result.IsSuccess;
8+
isFailure = result.IsFailure;
9+
}
10+
11+
public static void Deconstruct(this Result result, out bool isSuccess, out bool isFailure, out string error)
12+
{
13+
isSuccess = result.IsSuccess;
14+
isFailure = result.IsFailure;
15+
error = result.IsFailure ? result.Error : null;
16+
}
17+
18+
public static void Deconstruct<T>(this Result<T> result, out bool isSuccess, out bool isFailure)
19+
{
20+
isSuccess = result.IsSuccess;
21+
isFailure = result.IsFailure;
22+
}
23+
24+
public static void Deconstruct<T>(this Result<T> result, out bool isSuccess, out bool isFailure, out T value)
25+
{
26+
isSuccess = result.IsSuccess;
27+
isFailure = result.IsFailure;
28+
value = result.IsSuccess ? result.Value : default(T);
29+
}
30+
31+
public static void Deconstruct<T>(this Result<T> result, out bool isSuccess, out bool isFailure, out T value, out string error)
32+
{
33+
isSuccess = result.IsSuccess;
34+
isFailure = result.IsFailure;
35+
value = result.IsSuccess ? result.Value : default(T);
36+
error = result.IsFailure ? result.Error : null;
37+
}
38+
39+
public static void Deconstruct<T, E>(this Result<T, E> result, out bool isSuccess, out bool isFailure)
40+
{
41+
isSuccess = result.IsSuccess;
42+
isFailure = result.IsFailure;
43+
}
44+
45+
public static void Deconstruct<T, E>(this Result<T, E> result, out bool isSuccess, out bool isFailure, out T value)
46+
{
47+
isSuccess = result.IsSuccess;
48+
isFailure = result.IsFailure;
49+
value = result.IsSuccess ? result.Value : default(T);
50+
}
51+
52+
public static void Deconstruct<T, E>(this Result<T, E> result, out bool isSuccess, out bool isFailure, out T value, out E error)
53+
{
54+
isSuccess = result.IsSuccess;
55+
isFailure = result.IsFailure;
56+
value = result.IsSuccess ? result.Value : default(T);
57+
error = result.IsFailure ? result.Error : default(E);
58+
}
59+
}
60+
}

CSharpFunctionalExtensions/Result/Result.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -347,19 +347,6 @@ public static async Task<Result<T, E>> Try<T, E>(Func<Task<T>> func, Func<Except
347347
}
348348
}
349349

350-
public void Deconstruct(out bool isSuccess, out bool isFailure)
351-
{
352-
isSuccess = IsSuccess;
353-
isFailure = IsFailure;
354-
}
355-
356-
public void Deconstruct(out bool isSuccess, out bool isFailure, out string error)
357-
{
358-
isSuccess = IsSuccess;
359-
isFailure = IsFailure;
360-
error = IsFailure ? Error : null;
361-
}
362-
363350
public Result<T> MapFailure<T>()
364351
{
365352
if (IsSuccess)

CSharpFunctionalExtensions/Result/ResultT.cs

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -77,27 +77,6 @@ public static implicit operator Result(Result<T> result)
7777
return Result.Fail(result.Error);
7878
}
7979

80-
public void Deconstruct(out bool isSuccess, out bool isFailure)
81-
{
82-
isSuccess = IsSuccess;
83-
isFailure = IsFailure;
84-
}
85-
86-
public void Deconstruct(out bool isSuccess, out bool isFailure, out T value)
87-
{
88-
isSuccess = IsSuccess;
89-
isFailure = IsFailure;
90-
value = IsSuccess ? Value : default(T);
91-
}
92-
93-
public void Deconstruct(out bool isSuccess, out bool isFailure, out T value, out string error)
94-
{
95-
isSuccess = IsSuccess;
96-
isFailure = IsFailure;
97-
value = IsSuccess ? Value : default(T);
98-
error = IsFailure ? Error : null;
99-
}
100-
10180
public Result<K> MapFailure<K>()
10281
{
10382
if (IsSuccess)

CSharpFunctionalExtensions/Result/ResultTE.cs

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -85,27 +85,6 @@ public static implicit operator Result<T>(Result<T, E> result)
8585
return Result.Fail<T>(result.Error.ToString());
8686
}
8787

88-
public void Deconstruct(out bool isSuccess, out bool isFailure)
89-
{
90-
isSuccess = IsSuccess;
91-
isFailure = IsFailure;
92-
}
93-
94-
public void Deconstruct(out bool isSuccess, out bool isFailure, out T value)
95-
{
96-
isSuccess = IsSuccess;
97-
isFailure = IsFailure;
98-
value = IsSuccess ? Value : default(T);
99-
}
100-
101-
public void Deconstruct(out bool isSuccess, out bool isFailure, out T value, out E error)
102-
{
103-
isSuccess = IsSuccess;
104-
isFailure = IsFailure;
105-
value = IsSuccess ? Value : default(T);
106-
error = IsFailure ? Error : default(E);
107-
}
108-
10988
public Result<K, E> MapFailure<K>()
11089
{
11190
if (IsSuccess)

0 commit comments

Comments
 (0)