Skip to content

Commit b3e13ca

Browse files
SwoorupTheAngryByrd
authored andcommitted
Replace NonAffine Tasks with Affine tasks
1 parent 5abfd3b commit b3e13ca

File tree

9 files changed

+95
-92
lines changed

9 files changed

+95
-92
lines changed

src/FsToolkit.ErrorHandling.TaskResult/List.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ namespace FsToolkit.ErrorHandling
22

33
open System.Threading.Tasks
44
open FsToolkit.ErrorHandling
5-
open FSharp.Control.Tasks.NonAffine
5+
open FSharp.Control.Tasks.Affine
66

77
[<RequireQualifiedAccess>]
88
module List =

src/FsToolkit.ErrorHandling.TaskResult/Result.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
namespace FsToolkit.ErrorHandling
22

33
open System.Threading.Tasks
4-
open FSharp.Control.Tasks.NonAffine
4+
open FSharp.Control.Tasks.Affine
55

66
module Result =
77

src/FsToolkit.ErrorHandling.TaskResult/Task.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
namespace FsToolkit.ErrorHandling
22

33
open System.Threading.Tasks
4-
open FSharp.Control.Tasks.NonAffine
4+
open FSharp.Control.Tasks.Affine
55

66
[<RequireQualifiedAccess>]
77
module Task =

src/FsToolkit.ErrorHandling.TaskResult/TaskOption.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
namespace FsToolkit.ErrorHandling
22

33
open System.Threading.Tasks
4-
open FSharp.Control.Tasks.NonAffine
4+
open FSharp.Control.Tasks.Affine
55

66
[<RequireQualifiedAccess>]
77
module TaskOption =

src/FsToolkit.ErrorHandling.TaskResult/TaskOptionCE.fs

Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,20 @@ namespace FsToolkit.ErrorHandling
22

33
open System
44
open System.Threading.Tasks
5-
open FSharp.Control.Tasks.NonAffine.Unsafe
6-
open FSharp.Control.Tasks.NonAffine
5+
open FSharp.Control.Tasks.Affine
76
open Ply
87

98
[<AutoOpen>]
109
module TaskOptionCE =
1110
type TaskOptionBuilder() =
1211
member inline _.Return (value: 'T)
1312
: Ply<Option<_>> =
14-
uply.Return <| option.Return value
13+
task.Return <| option.Return value
1514

1615
member inline _.ReturnFrom
1716
(taskResult: Task<Option<_>>)
1817
: Ply<Option<_>> =
19-
uply.ReturnFrom taskResult
18+
task.ReturnFrom taskResult
2019

2120
member inline this.ReturnFrom
2221
(asyncResult: Async<Option<_>>)
@@ -26,10 +25,10 @@ module TaskOptionCE =
2625
member inline _.ReturnFrom
2726
(result: Option<_>)
2827
: Ply<Option<_>> =
29-
uply.Return result
28+
task.Return result
3029

3130
member inline _.Zero () : Ply<Option<_>> =
32-
uply.Return <| option.Zero()
31+
task.Return <| option.Zero()
3332

3433
member inline _.Bind
3534
(taskResult: Task<Option<_>>,
@@ -38,8 +37,8 @@ module TaskOptionCE =
3837
let binder' r =
3938
match r with
4039
| Some x -> binder x
41-
| None -> uply.Return None
42-
uply.Bind(taskResult, binder')
40+
| None -> task.Return None
41+
task.Bind(taskResult, binder')
4342

4443
member inline this.Bind
4544
(asyncResult: Async<Option<_>>,
@@ -57,63 +56,66 @@ module TaskOptionCE =
5756

5857
member inline _.Delay
5958
(generator: unit -> Ply<Option<_>>) =
60-
uply.Delay(generator)
59+
task.Delay(generator)
6160

6261
member inline _.Combine
6362
(computation1: Ply<Option<'T>>,
6463
computation2: unit -> Ply<Option<'U>>)
65-
: Ply<Option<'U>> = uply {
66-
match! computation1 with
67-
| None -> return None
68-
| Some _ -> return! computation2()
69-
}
64+
: Ply<Option<'U>> =
65+
task {
66+
match! computation1 with
67+
| None -> return None
68+
| Some _ -> return! computation2()
69+
} |> task.ReturnFrom
7070

7171
member inline _.TryWith
7272
(computation: unit -> Ply<Option<_>>,
7373
handler: exn -> Ply<Option<_>>) :
7474
Ply<Option<_>> =
75-
uply.TryWith(computation, handler)
75+
task.TryWith(computation, handler)
7676

7777
member inline _.TryFinally
7878
(computation: unit -> Ply<Option<_>>,
7979
compensation: unit -> unit)
8080
: Ply<Option<_>> =
81-
uply.TryFinally(computation, compensation)
81+
task.TryFinally(computation, compensation)
8282

8383
member inline _.Using
8484
(resource: 'T when 'T :> IDisposable,
8585
binder: 'T -> Ply<Option<_>>)
8686
: Ply<Option<_>> =
87-
uply.Using(resource, binder)
87+
task.Using(resource, binder)
8888

8989
member _.While
9090
(guard: unit -> bool, computation: unit -> Ply<Option<'U>>)
91-
: Ply<Option<'U>> = uply {
92-
let mutable fin, result = false, None
93-
while not fin && guard() do
94-
match! computation() with
95-
| Some _ as o ->
96-
result <- o
97-
| None ->
98-
result <- None
99-
fin <- true
100-
return result
101-
}
91+
: Ply<Option<'U>> =
92+
task {
93+
let mutable fin, result = false, None
94+
while not fin && guard() do
95+
match! computation() with
96+
| Some _ as o ->
97+
result <- o
98+
| None ->
99+
result <- None
100+
fin <- true
101+
return result
102+
} |> task.ReturnFrom
102103

103104
member _.For
104105
(sequence: #seq<'T>, binder: 'T -> Ply<Option<'U>>)
105-
: Ply<Option<'U>> = uply {
106-
use enumerator = sequence.GetEnumerator()
107-
let mutable fin, result = false, None
108-
while not fin && enumerator.MoveNext() do
109-
match! binder enumerator.Current with
110-
| Some _ as o ->
111-
result <- o
112-
| None ->
113-
result <- None
114-
fin <- true
115-
return result
116-
}
106+
: Ply<Option<'U>> =
107+
task {
108+
use enumerator = sequence.GetEnumerator()
109+
let mutable fin, result = false, None
110+
while not fin && enumerator.MoveNext() do
111+
match! binder enumerator.Current with
112+
| Some _ as o ->
113+
result <- o
114+
| None ->
115+
result <- None
116+
fin <- true
117+
return result
118+
} |> task.ReturnFrom
117119

118120
member inline _.Run(f : unit -> Ply<'m>) = task.Run f
119121

src/FsToolkit.ErrorHandling.TaskResult/TaskResult.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
namespace FsToolkit.ErrorHandling
22

33
open System.Threading.Tasks
4-
open FSharp.Control.Tasks.NonAffine
4+
open FSharp.Control.Tasks.Affine
55

66
[<RequireQualifiedAccess>]
77
module TaskResult =

src/FsToolkit.ErrorHandling.TaskResult/TaskResultCE.fs

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
open System
44
open System.Threading.Tasks
5-
open FSharp.Control.Tasks.NonAffine.Unsafe
6-
open FSharp.Control.Tasks.NonAffine
5+
open FSharp.Control.Tasks.Affine
76
open Ply
87

98
[<AutoOpen>]
@@ -13,15 +12,15 @@ module TaskResultCE =
1312

1413
member inline _.Return (value: 'T)
1514
: Ply<Result<'T,'TError>> =
16-
uply.Return (result.Return value)
15+
task.Return (result.Return value)
1716

1817
member inline _.ReturnFrom
1918
(taskResult: Task<Result<'T, 'TError>>)
2019
: Ply<Result<'T, 'TError>> =
21-
uply.ReturnFrom taskResult
20+
task.ReturnFrom taskResult
2221

2322
member inline _.Zero () : Ply<Result<unit, 'TError>> =
24-
uply.Return <| result.Zero()
23+
task.Return <| result.Zero()
2524

2625
member inline _.Bind
2726
(taskResult: Task<Result<'T, 'TError>>,
@@ -30,66 +29,69 @@ module TaskResultCE =
3029
let binder' r =
3130
match r with
3231
| Ok x -> binder x
33-
| Error x -> uply.Return <| Error x
34-
uply.Bind(taskResult, binder')
32+
| Error x -> task.Return <| Error x
33+
task.Bind(taskResult, binder')
3534

3635
member inline _.Delay
3736
(generator: unit -> Ply<Result<'T, 'TError>>) =
38-
uply.Delay(generator)
37+
task.Delay(generator)
3938

4039
member inline _.Combine
4140
(computation1: Ply<Result<unit, 'TError>>,
4241
computation2: unit -> Ply<Result<'U, 'TError>>)
43-
: Ply<Result<'U, 'TError>> = uply {
44-
match! computation1 with
45-
| Error e -> return Error e
46-
| Ok _ -> return! computation2()
47-
}
42+
: Ply<Result<'U, 'TError>> =
43+
task {
44+
match! computation1 with
45+
| Error e -> return Error e
46+
| Ok _ -> return! computation2()
47+
} |> task.ReturnFrom
4848

4949
member inline _.TryWith
5050
(computation: unit -> Ply<Result<'T, 'TError>>,
5151
handler: exn -> Ply<Result<'T, 'TError>>) :
5252
Ply<Result<'T, 'TError>> =
53-
uply.TryWith(computation, handler)
53+
task.TryWith(computation, handler)
5454

5555
member inline _.TryFinally
5656
(computation: unit -> Ply<Result<'T, 'TError>>,
5757
compensation: unit -> unit)
5858
: Ply<Result<'T, 'TError>> =
59-
uply.TryFinally(computation, compensation)
59+
task.TryFinally(computation, compensation)
6060

6161
member inline _.Using
6262
(resource: 'T when 'T :> IDisposable,
6363
binder: 'T -> Ply<Result<'U, 'TError>>)
6464
: Ply<Result<'U, 'TError>> =
65-
uply.Using(resource, binder)
65+
task.Using(resource, binder)
6666

6767
member _.While
6868
(guard: unit -> bool, computation: unit -> Ply<Result<unit, 'TError>>)
69-
: Ply<Result<unit, 'TError>> = uply {
70-
let mutable fin, result = false, Ok()
71-
while not fin && guard() do
72-
match! computation() with
73-
| Ok x -> x
74-
| Error _ as e ->
75-
result <- e
76-
fin <- true
77-
return result
78-
}
69+
: Ply<Result<unit, 'TError>> =
70+
task {
71+
let mutable fin, result = false, Ok()
72+
while not fin && guard() do
73+
match! computation() with
74+
| Ok x -> x
75+
| Error _ as e ->
76+
result <- e
77+
fin <- true
78+
return result
79+
} |> task.ReturnFrom
7980

8081
member _.For
8182
(sequence: #seq<'T>, binder: 'T -> Ply<Result<unit, 'TError>>)
82-
: Ply<Result<unit, 'TError>> = uply {
83-
use enumerator = sequence.GetEnumerator()
84-
let mutable fin, result = false, Ok()
85-
while not fin && enumerator.MoveNext() do
86-
match! binder enumerator.Current with
87-
| Ok x -> x
88-
| Error _ as e ->
89-
result <- e
90-
fin <- true
91-
return result
92-
}
83+
: Ply<Result<unit, 'TError>> =
84+
task {
85+
use enumerator = sequence.GetEnumerator()
86+
let mutable fin, result = false, Ok()
87+
while not fin && enumerator.MoveNext() do
88+
match! binder enumerator.Current with
89+
| Ok x -> x
90+
| Error _ as e ->
91+
result <- e
92+
fin <- true
93+
return result
94+
} |> task.ReturnFrom
9395

9496
member inline this.BindReturn(x: Task<Result<'T,'U>>, f) = this.Bind(x, fun x -> this.Return(f x))
9597
member inline _.MergeSources(t1: Task<Result<'T,'U>>, t2: Task<Result<'T1,'U>>) = TaskResult.zip t1 t2

src/FsToolkit.ErrorHandling.TaskResult/TaskResultOption.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace FsToolkit.ErrorHandling
22

3-
open FSharp.Control.Tasks.NonAffine
3+
open FSharp.Control.Tasks.Affine
44

55
[<RequireQualifiedAccess>]
66
module TaskResultOption =

src/FsToolkit.ErrorHandling.TaskResult/TaskResultOptionCE.fs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
namespace FsToolkit.ErrorHandling
22

33
open System.Threading.Tasks
4-
open FSharp.Control.Tasks.NonAffine.Unsafe
5-
open FSharp.Control.Tasks.NonAffine
4+
open FSharp.Control.Tasks.Affine
65
open Ply
76

87
[<AutoOpen>]
@@ -11,12 +10,12 @@ module TaskResultOptionCE =
1110
type TaskResultOptionBuilder() =
1211
member inline _.Return (value: 'T)
1312
: Ply<Result<'T option,'TError>> =
14-
uply.Return <| result.Return (Some value)
13+
task.Return <| result.Return (Some value)
1514

1615
member inline _.ReturnFrom
1716
(taskResult: Task<Result<'T option, 'TError>>)
1817
: Ply<Result<'T option, 'TError>> =
19-
uply.ReturnFrom taskResult
18+
task.ReturnFrom taskResult
2019

2120
member inline _.Bind
2221
(taskResult: Task<Result<'T option, 'TError>>,
@@ -25,17 +24,17 @@ module TaskResultOptionCE =
2524
let binder' r =
2625
match r with
2726
| Ok (Some x) -> binder x
28-
| Ok None -> uply.Return <| Ok None
29-
| Error x -> uply.Return <| Error x
30-
uply.Bind(taskResult, binder')
27+
| Ok None -> task.Return <| Ok None
28+
| Error x -> task.Return <| Error x
29+
task.Bind(taskResult, binder')
3130

3231
member inline _.Combine(tro1, tro2) =
3332
tro1
3433
|> TaskResultOption.bind (fun _ -> tro2)
35-
|> uply.ReturnFrom
34+
|> task.ReturnFrom
3635

3736
member inline _.Delay f =
38-
uply.Delay f
37+
task.Delay f
3938

4039
member inline _.Run(f : unit -> Ply<'m>) = task.Run f
4140

0 commit comments

Comments
 (0)