Skip to content

Commit f95057c

Browse files
author
Jamil Maqdis Anton
committed
Change StartPosition type from an alias to a DU to avoid mistakes
1 parent 61eaa9c commit f95057c

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

src/Read.fs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,30 @@ module Read =
1010
| ReadVersion.End -> int (Position.End)
1111
| ReadVersion.SpecificVersion version -> int (version)
1212

13-
let readFromAllStream: SqlStreamStore.IStreamStore -> ReadingDirection -> StartPositionInclusive -> MessageCount -> Async<ReadAllPage> =
13+
let private fromStartPositionInclusive: StartPosition -> int64 =
14+
function
15+
| StartPosition.Start -> 0L
16+
| StartPosition.End -> -1L
17+
| StartPosition.SpecificPosition position -> position
18+
19+
let readFromAllStream: SqlStreamStore.IStreamStore -> ReadingDirection -> StartPosition -> MessageCount -> Async<ReadAllPage> =
1420
fun store readingDirection startPositionInclusive msgCount ->
1521
match readingDirection with
16-
| ReadingDirection.Forward -> store.ReadAllForwards(startPositionInclusive, msgCount)
17-
| ReadingDirection.Backward -> store.ReadAllBackwards(startPositionInclusive, msgCount)
22+
| ReadingDirection.Forward ->
23+
store.ReadAllForwards(fromStartPositionInclusive startPositionInclusive, msgCount)
24+
| ReadingDirection.Backward ->
25+
store.ReadAllBackwards(fromStartPositionInclusive startPositionInclusive, msgCount)
1826
|> Async.AwaitTask
1927

20-
let readFromAllStream': SqlStreamStore.IStreamStore -> ReadingDirection -> StartPositionInclusive -> MessageCount -> bool -> CancellationToken -> Async<ReadAllPage> =
28+
let readFromAllStream': SqlStreamStore.IStreamStore -> ReadingDirection -> StartPosition -> MessageCount -> bool -> CancellationToken -> Async<ReadAllPage> =
2129
fun store readingDirection startPositionInclusive msgCount prefetchJson cancellationToken ->
2230
match readingDirection with
2331
| ReadingDirection.Forward ->
24-
store.ReadAllForwards(startPositionInclusive, msgCount, prefetchJson, cancellationToken)
32+
store.ReadAllForwards
33+
(fromStartPositionInclusive startPositionInclusive, msgCount, prefetchJson, cancellationToken)
2534
| ReadingDirection.Backward ->
26-
store.ReadAllBackwards(startPositionInclusive, msgCount, prefetchJson, cancellationToken)
35+
store.ReadAllBackwards
36+
(fromStartPositionInclusive startPositionInclusive, msgCount, prefetchJson, cancellationToken)
2737
|> Async.AwaitTask
2838

2939
let readFromStream: SqlStreamStore.IStreamStore -> ReadingDirection -> StreamName -> ReadVersion -> MessageCount -> Async<ReadStreamPage> =

src/Types.fs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ type StreamName = string
1515

1616
[<RequireQualifiedAccessAttribute>]
1717
type ReadVersion =
18-
| Start
19-
| End
20-
| SpecificVersion of uint
18+
| Start
19+
| End
20+
| SpecificVersion of uint
2121

2222
[<RequireQualifiedAccessAttribute>]
2323
type AppendVersion =
@@ -26,7 +26,12 @@ type AppendVersion =
2626
| NoStream
2727
| SpecificVersion of int
2828

29-
type StartPositionInclusive = int64
29+
[<RequireQualifiedAccessAttribute>]
30+
type StartPosition =
31+
| Start
32+
| End
33+
| SpecificPosition of int64
34+
3035
type MessageCount = int
3136

3237
[<RequireQualifiedAccessAttribute>]

0 commit comments

Comments
 (0)