File tree Expand file tree Collapse file tree 5 files changed +34
-86
lines changed
tests/FSharp.Control.R3.Tests Expand file tree Collapse file tree 5 files changed +34
-86
lines changed Original file line number Diff line number Diff line change 22
22
<PackageVersion Include =" NuGet.Common" Version =" 6.11.1" />
23
23
<PackageVersion Include =" NuGet.Protocol" Version =" 6.11.1" />
24
24
<PackageVersion Include =" Octokit" Version =" 13.0.1" />
25
+ <PackageVersion Include =" R3" Version =" 1.2.9" />
25
26
<PackageVersion Include =" Unquote" Version =" 7.0.0" />
26
27
</ItemGroup >
27
- </Project >
28
+ </Project >
Original file line number Diff line number Diff line change 16
16
17
17
<ItemGroup >
18
18
<Compile Include =" AssemblyInfo.fs" />
19
- <Compile Include =" Library .fs" />
19
+ <Compile Include =" Observable .fs" />
20
20
</ItemGroup >
21
21
22
22
<ItemGroup >
23
23
<PackageReference Include =" Microsoft.SourceLink.GitHub" >
24
24
<PrivateAssets >all</PrivateAssets >
25
25
<IncludeAssets >runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets >
26
26
</PackageReference >
27
+ <PackageReference Include =" R3" />
27
28
</ItemGroup >
28
29
</Project >
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ module FSharp.Control.Observable
2
+
3
+ open R3
4
+ open System.Threading
5
+ open System.Threading .Tasks
6
+
7
+ let asyncMap ( f : 't -> Async < 'r >) source =
8
+ let selector x ct = ValueTask< 'r> ( Async.StartImmediateAsTask ( f x, ct))
9
+ ObservableExtensions.SelectAwait ( source, selector)
10
+
11
+ let mapAsync ( f : CancellationToken -> 't -> Task < 'r >) source =
12
+ let selector x ct = ValueTask< 'r> ( f ct x)
13
+ ObservableExtensions.SelectAwait ( source, selector)
14
+
15
+ let inline map ( f : 't -> 'r ) source = ObservableExtensions.Select ( source, f)
16
+
17
+ let length source = async {
18
+ let! ct = Async.CancellationToken
19
+ return !
20
+ ObservableExtensions.CountAsync ( source, ct)
21
+ |> Async.AwaitTask
22
+ }
23
+
24
+ let inline iter ( action : 't -> unit ) source = ObservableExtensions.ForEachAsync ( source, action)
25
+
26
+ let asyncIter ( action : 't -> Async < unit >) source = source |> asyncMap action |> length |> Async.Ignore
27
+
28
+ let iterAsync ( action : CancellationToken -> 't -> Task < unit >) source = source |> mapAsync action |> length |> Async.Ignore
Original file line number Diff line number Diff line change 1
1
namespace FSharp.Control.R3.Tests
2
2
3
3
open System
4
- open FSharp.Control .R3
5
- open FSharp.Control .R3 .Say
4
+ open FSharp.Control
6
5
open Microsoft.VisualStudio .TestTools .UnitTesting
7
6
open Swensen.Unquote
8
7
9
8
[<TestClass>]
10
- type SayTests () =
11
-
12
- member _. ``Add two integers`` () =
13
- let subject = Say.add 1 2
14
- test <@ subject = 3 @>
15
- //Assert.AreEqual (subject, 3, message = "Addition works")
16
-
17
- member _. ``Say nothing`` () =
18
- let subject = Say.nothing ()
19
- Assert.AreEqual ( subject, (), " Not an absolute unit" )
20
-
21
- member _. ``Say hello all`` () =
22
- let person = {
23
- Name = " Jean-Luc Picard"
24
- FavoriteNumber = 4
25
- FavoriteColor = Red
26
- DateOfBirth = DateTimeOffset.Parse ( " July 13, 2305" )
27
- }
28
-
29
- let subject = Say.helloPerson person
30
-
31
- test <@ subject = " Hello Jean-Luc Picard. You were born on 2305/07/13 and your favorite number is 4. You like Red." @>
32
-
33
- //Assert.AreEqual<String> (
34
- // subject,
35
- // "Hello Jean-Luc Picard. You were born on 2305/07/13 and your favorite number is 4. You like Red.",
36
- // message = "You didn't say hello"
37
- //)
9
+ type SayTests () = class end
You can’t perform that action at this time.
0 commit comments