Skip to content

Instantly share code, notes, and snippets.

@BashkaMen
BashkaMen / todo
Last active April 16, 2020 11:58
open System
type Id = int
type TodoValue =
| Text of string
| Markdown of string
| Html of string
type IStore =
abstract member GetState : unit -> Async<'T>
abstract member SaveState: 'T -> Async<unit>
type IServiceProvider =
abstract member Resolve : unit -> 'T
type GetTodoListQuery = unit
type AddCommand = { Title: string; }
type RemoveCommand = { Id: Id; }
module CounterBot =
type State = int
type Msg =
| Increment
| Decrement
let init = 0
type BuilderStep =
| SetupProxy = 1
| SetupTimeouts = 2
type DriverBuilder() =
let steps = Dictionary()
let driverOpt = ChromeOptions()
do
let inline ( ^ ) f x = f x
let debounce time f =
let loop = MailboxProcessor.Start ^ fun mailbox -> async {
let mutable lastMsg = None
while true do
let! msg = mailbox.TryReceive(time)
match msg with
| None when lastMsg.IsSome -> f lastMsg.Value
// Learn more about F# at http://fsharp.org
open System
open System.Threading.Tasks
let ( ^ ) f x = f x
type IStore =
abstract member Save: 'T -> Guid
type ColumnSelector = { Name: string; ColumnName: string }
type RowSelector = { Name: string; RowName: string }
type SetValueArgs = { Name: string; RowName: string; ColumnName: string; Value: string }
type SetDefaultValueArgs = { Name: string; RowName: string; Value: string }
type Command =
| Create of string
| AddColumn of ColumnSelector
module Application.ES
open System
open System.Collections.Concurrent
let inline ( ^ ) f x = f x
type UserStatus = Normal | VIP | SuperVIP
type Name = Name of string
open System
open System.Collections.Concurrent
open System.Threading.Tasks
let inline ( ^ ) f x = f x
let inline safeable f x =
try
Ok (f x)
with e -> Error e
module Application.ES
open System
open FsToolkit.ErrorHandling
let inline ( ^ ) f x = f x
type CommandMeta<'id, 'command> = { AggId: 'id; Command: 'command }
type EventMeta<'id, 'payload> = { AggId: 'id; Created: DateTime; Payload: 'payload }
let mkEvent id created x = { AggId = id; Created = created; Payload = x }