Skip to content

Instantly share code, notes, and snippets.

View dyrkin's full-sized avatar

Yevhen Zadyra dyrkin

  • Wrocław, Poland
View GitHub Profile
@dyrkin
dyrkin / wire_transfer.go
Last active June 28, 2021 13:37
Decomposed WireTransfer FSM definition
func whenInitial(wt *fsm.FSM) fsm.StateFunction {
return func(event *fsm.Event) *fsm.NextState {
transfer, transferOk := event.Message.(*Transfer)
if transferOk && event.Data == nil {
transfer.source <- transfer.amount
return wt.Goto(AwaitFromState).With(
&WireTransferData{transfer.source, transfer.target, transfer.amount, wt},
)
}
return wt.DefaultHandler()(event)