Skip to content

Commit d7a85c3

Browse files
committed
Create() - move to separate file
1 parent 4542abe commit d7a85c3

File tree

3 files changed

+70
-61
lines changed

3 files changed

+70
-61
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
using System;
2+
using System.Diagnostics;
3+
using System.Threading.Tasks;
4+
5+
namespace CSharpFunctionalExtensions
6+
{
7+
public partial struct Result
8+
{
9+
[DebuggerStepThrough]
10+
public static Result Create(bool isSuccess, string error)
11+
{
12+
return isSuccess
13+
? Ok()
14+
: Fail(error);
15+
}
16+
17+
public static Result Create(Func<bool> predicate, string error)
18+
{
19+
return Create(predicate(), error);
20+
}
21+
22+
public static async Task<Result> Create(Func<Task<bool>> predicate, string error)
23+
{
24+
bool isSuccess = await predicate().ConfigureAwait(DefaultConfigureAwait);
25+
return Create(isSuccess, error);
26+
}
27+
28+
public static Result<T> Create<T>(bool isSuccess, T value, string error)
29+
{
30+
return isSuccess
31+
? Ok(value)
32+
: Fail<T>(error);
33+
}
34+
35+
public static Result<T> Create<T>(Func<bool> predicate, T value, string error)
36+
{
37+
return Create(predicate(), value, error);
38+
}
39+
40+
public static async Task<Result<T>> Create<T>(Func<Task<bool>> predicate, T value, string error)
41+
{
42+
bool isSuccess = await predicate().ConfigureAwait(DefaultConfigureAwait);
43+
return Create(isSuccess, value, error);
44+
}
45+
46+
[DebuggerStepThrough]
47+
public static Result<T, E> Create<T, E>(bool isSuccess, T value, E error)
48+
{
49+
return isSuccess
50+
? Ok<T, E>(value)
51+
: Fail<T, E>(error);
52+
}
53+
54+
public static Result<T, E> Create<T, E>(Func<bool> predicate, T value, E error)
55+
{
56+
return predicate()
57+
? Ok<T, E>(value)
58+
: Fail<T, E>(error);
59+
}
60+
61+
public static async Task<Result<T, E>> Create<T, E>(Func<Task<bool>> predicate, T value, E error)
62+
{
63+
bool isSuccess = await predicate().ConfigureAwait(Result.DefaultConfigureAwait);
64+
return isSuccess
65+
? Ok<T, E>(value)
66+
: Fail<T, E>(error);
67+
}
68+
}
69+
}

CSharpFunctionalExtensions/Result/Result.cs

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,6 @@ private Result(bool isFailure, string error)
3838
_logic = ResultCommonLogic.Create(isFailure, error);
3939
}
4040

41-
42-
[DebuggerStepThrough]
43-
public static Result Create(bool isSuccess, string error)
44-
{
45-
return isSuccess
46-
? Ok()
47-
: Fail(error);
48-
}
49-
50-
public static Result Create(Func<bool> predicate, string error)
51-
{
52-
return Create(predicate(), error);
53-
}
54-
55-
public static async Task<Result> Create(Func<Task<bool>> predicate, string error)
56-
{
57-
bool isSuccess = await predicate().ConfigureAwait(DefaultConfigureAwait);
58-
return Create(isSuccess, error);
59-
}
60-
6141
public static Result CreateFailure(bool isFailure, string error)
6242
{
6343
return isFailure
@@ -80,24 +60,6 @@ public static async Task<Result> CreateFailure(Func<Task<bool>> failurePredicate
8060
: Ok();
8161
}
8262

83-
public static Result<T> Create<T>(bool isSuccess, T value, string error)
84-
{
85-
return isSuccess
86-
? Ok(value)
87-
: Fail<T>(error);
88-
}
89-
90-
public static Result<T> Create<T>(Func<bool> predicate, T value, string error)
91-
{
92-
return Create(predicate(), value, error);
93-
}
94-
95-
public static async Task<Result<T>> Create<T>(Func<Task<bool>> predicate, T value, string error)
96-
{
97-
bool isSuccess = await predicate().ConfigureAwait(DefaultConfigureAwait);
98-
return Create(isSuccess, value, error);
99-
}
100-
10163
public static Result<T> CreateFailure<T>(bool isFailure, T value, string error)
10264
{
10365
return isFailure
@@ -120,29 +82,6 @@ public static async Task<Result<T>> CreateFailure<T>(Func<Task<bool>> failurePre
12082
: Ok<T>(value);
12183
}
12284

123-
[DebuggerStepThrough]
124-
public static Result<T, E> Create<T, E>(bool isSuccess, T value, E error)
125-
{
126-
return isSuccess
127-
? Ok<T, E>(value)
128-
: Fail<T, E>(error);
129-
}
130-
131-
public static Result<T, E> Create<T, E>(Func<bool> predicate, T value, E error)
132-
{
133-
return predicate()
134-
? Ok<T, E>(value)
135-
: Fail<T, E>(error);
136-
}
137-
138-
public static async Task<Result<T, E>> Create<T, E>(Func<Task<bool>> predicate, T value, E error)
139-
{
140-
bool isSuccess = await predicate().ConfigureAwait(Result.DefaultConfigureAwait);
141-
return isSuccess
142-
? Ok<T, E>(value)
143-
: Fail<T, E>(error);
144-
}
145-
14685
[DebuggerStepThrough]
14786
public static Result<T, E> CreateFailure<T, E>(bool isFailure, T value, E error)
14887
{

CSharpFunctionalExtensionsNet4.0/CSharpFunctionalExtensionsNet4.0.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
<Compile Include="..\CSharpFunctionalExtensions\Result\Internal\ResultCommonLogic.cs" Link="Result\Internal\ResultCommonLogic.cs" />
6565
<Compile Include="..\CSharpFunctionalExtensions\Result\Internal\ResultMessages.cs" Link="Result\Internal\ResultMessages.cs" />
6666
<Compile Include="..\CSharpFunctionalExtensions\Result\Methods\Combine.cs" Link="Result\Methods\Combine.cs" />
67+
<Compile Include="..\CSharpFunctionalExtensions\Result\Methods\Create.cs" Link="Result\Methods\Create.cs" />
6768
<Compile Include="..\CSharpFunctionalExtensions\Result\Methods\Fail.cs" Link="Result\Methods\Fail.cs" />
6869
<Compile Include="..\CSharpFunctionalExtensions\Result\Methods\Ok.cs" Link="Result\Methods\Ok.cs" />
6970
<Compile Include="..\CSharpFunctionalExtensions\Result\Methods\Try.cs" Link="Result\Methods\Try.cs" />

0 commit comments

Comments
 (0)