Skip to content

Commit 275e465

Browse files
SwoorupTheAngryByrd
authored andcommitted
Revert to use uply
1 parent b9a9ba9 commit 275e465

File tree

3 files changed

+83
-86
lines changed

3 files changed

+83
-86
lines changed

src/FsToolkit.ErrorHandling.TaskResult/TaskOptionCE.fs

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ namespace FsToolkit.ErrorHandling
22

33
open System
44
open System.Threading.Tasks
5+
open FSharp.Control.Tasks.Affine.Unsafe
56
open FSharp.Control.Tasks.Affine
67
open Ply
78

@@ -10,12 +11,12 @@ module TaskOptionCE =
1011
type TaskOptionBuilder() =
1112
member inline _.Return (value: 'T)
1213
: Ply<Option<_>> =
13-
task.Return <| option.Return value
14+
uply.Return <| option.Return value
1415

1516
member inline _.ReturnFrom
1617
(taskResult: Task<Option<_>>)
1718
: Ply<Option<_>> =
18-
task.ReturnFrom taskResult
19+
uply.ReturnFrom taskResult
1920

2021
member inline this.ReturnFrom
2122
(asyncResult: Async<Option<_>>)
@@ -25,10 +26,10 @@ module TaskOptionCE =
2526
member inline _.ReturnFrom
2627
(result: Option<_>)
2728
: Ply<Option<_>> =
28-
task.Return result
29+
uply.Return result
2930

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

3334
member inline _.Bind
3435
(taskResult: Task<Option<_>>,
@@ -37,8 +38,8 @@ module TaskOptionCE =
3738
let binder' r =
3839
match r with
3940
| Some x -> binder x
40-
| None -> task.Return None
41-
task.Bind(taskResult, binder')
41+
| None -> uply.Return None
42+
uply.Bind(taskResult, binder')
4243

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

5758
member inline _.Delay
5859
(generator: unit -> Ply<Option<_>>) =
59-
task.Delay(generator)
60+
uply.Delay(generator)
6061

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

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

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

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

8989
member _.While
9090
(guard: unit -> bool, computation: unit -> Ply<Option<'U>>)
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
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+
}
103102

104103
member _.For
105104
(sequence: #seq<'T>, binder: 'T -> Ply<Option<'U>>)
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
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+
}
119117

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

src/FsToolkit.ErrorHandling.TaskResult/TaskResultCE.fs

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
open System
44
open System.Threading.Tasks
5+
open FSharp.Control.Tasks.Affine.Unsafe
56
open FSharp.Control.Tasks.Affine
67
open Ply
78

@@ -12,15 +13,15 @@ module TaskResultCE =
1213

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

1718
member inline _.ReturnFrom
1819
(taskResult: Task<Result<'T, 'TError>>)
1920
: Ply<Result<'T, 'TError>> =
20-
task.ReturnFrom taskResult
21+
uply.ReturnFrom taskResult
2122

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

2526
member inline _.Bind
2627
(taskResult: Task<Result<'T, 'TError>>,
@@ -29,69 +30,66 @@ module TaskResultCE =
2930
let binder' r =
3031
match r with
3132
| Ok x -> binder x
32-
| Error x -> task.Return <| Error x
33-
task.Bind(taskResult, binder')
33+
| Error x -> uply.Return <| Error x
34+
uply.Bind(taskResult, binder')
3435

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

3940
member inline _.Combine
4041
(computation1: Ply<Result<unit, 'TError>>,
4142
computation2: unit -> Ply<Result<'U, 'TError>>)
42-
: Ply<Result<'U, 'TError>> =
43-
task {
44-
match! computation1 with
45-
| Error e -> return Error e
46-
| Ok _ -> return! computation2()
47-
} |> task.ReturnFrom
43+
: Ply<Result<'U, 'TError>> = uply {
44+
match! computation1 with
45+
| Error e -> return Error e
46+
| Ok _ -> return! computation2()
47+
}
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-
task.TryWith(computation, handler)
53+
uply.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-
task.TryFinally(computation, compensation)
59+
uply.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-
task.Using(resource, binder)
65+
uply.Using(resource, binder)
6666

6767
member _.While
6868
(guard: unit -> bool, computation: unit -> Ply<Result<unit, 'TError>>)
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
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+
}
8079

8180
member _.For
8281
(sequence: #seq<'T>, binder: 'T -> Ply<Result<unit, 'TError>>)
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
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+
}
9593

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

src/FsToolkit.ErrorHandling.TaskResult/TaskResultOptionCE.fs

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

33
open System.Threading.Tasks
4+
open FSharp.Control.Tasks.Affine.Unsafe
45
open FSharp.Control.Tasks.Affine
56
open Ply
67

@@ -10,12 +11,12 @@ module TaskResultOptionCE =
1011
type TaskResultOptionBuilder() =
1112
member inline _.Return (value: 'T)
1213
: Ply<Result<'T option,'TError>> =
13-
task.Return <| result.Return (Some value)
14+
uply.Return <| result.Return (Some value)
1415

1516
member inline _.ReturnFrom
1617
(taskResult: Task<Result<'T option, 'TError>>)
1718
: Ply<Result<'T option, 'TError>> =
18-
task.ReturnFrom taskResult
19+
uply.ReturnFrom taskResult
1920

2021
member inline _.Bind
2122
(taskResult: Task<Result<'T option, 'TError>>,
@@ -24,17 +25,17 @@ module TaskResultOptionCE =
2425
let binder' r =
2526
match r with
2627
| Ok (Some x) -> binder x
27-
| Ok None -> task.Return <| Ok None
28-
| Error x -> task.Return <| Error x
29-
task.Bind(taskResult, binder')
28+
| Ok None -> uply.Return <| Ok None
29+
| Error x -> uply.Return <| Error x
30+
uply.Bind(taskResult, binder')
3031

3132
member inline _.Combine(tro1, tro2) =
3233
tro1
3334
|> TaskResultOption.bind (fun _ -> tro2)
34-
|> task.ReturnFrom
35+
|> uply.ReturnFrom
3536

3637
member inline _.Delay f =
37-
task.Delay f
38+
uply.Delay f
3839

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

0 commit comments

Comments
 (0)