Files
tasks/components/dummy/statemachine.go
zeekay 5a601d081b rebrand: go.temporal.io/server -> github.com/hanzoai/tasks
Full module path rebrand from Temporal to Hanzo Tasks:
- go.mod module: github.com/hanzoai/tasks
- All internal Go imports updated (1906 files)
- cmd/server renamed to cmd/tasksd
- Binary name: tasksd (was temporal-server)
- Docker images: hanzoai/tasks (was temporalio/server)
- README rewritten with Hanzo Tasks branding
- LLM.md created with integration notes
- Makefile, goreleaser, CI workflows updated
- go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos)

Fork of Temporal.io (MIT license).
2026-03-19 10:36:40 -07:00

96 lines
2.0 KiB
Go

package dummy
import (
"encoding/json"
"go.temporal.io/api/serviceerror"
"github.com/hanzoai/tasks/service/history/hsm"
)
type State int
const (
State0 State = iota
State1
)
var StateMachineType = "dummy.Dummy"
func MachineCollection(tree *hsm.Node) hsm.Collection[*Dummy] {
return hsm.NewCollection[*Dummy](tree, StateMachineType)
}
// Dummy state machine.
// It's used for writing unit tests. Do not use in production!
type Dummy struct {
CurrentState State
}
var _ hsm.StateMachine[State] = &Dummy{}
// NewDummy creates a new callback in the STANDBY state from given params.
func NewDummy() *Dummy {
return &Dummy{
CurrentState: State0,
}
}
func (sm *Dummy) State() State {
return sm.CurrentState
}
func (sm *Dummy) SetState(state State) {
sm.CurrentState = state
}
func (sm Dummy) RegenerateTasks(*hsm.Node) ([]hsm.Task, error) {
return []hsm.Task{}, nil
}
type stateMachineDefinition struct{}
var _ hsm.StateMachineDefinition = stateMachineDefinition{}
func (stateMachineDefinition) Type() string {
return StateMachineType
}
func (stateMachineDefinition) Deserialize(d []byte) (any, error) {
sm := &Dummy{}
err := json.Unmarshal(d, &sm)
return sm, err
}
func (stateMachineDefinition) Serialize(state any) ([]byte, error) {
return json.Marshal(state)
}
func (stateMachineDefinition) CompareState(s1, s2 any) (int, error) {
// This is just a dummy used in tests, CompareState is not used.
return 0, serviceerror.NewUnimplemented("CompareState not implemented for dummy state machine")
}
func RegisterStateMachine(r *hsm.Registry) error {
return r.RegisterMachine(stateMachineDefinition{})
}
type Event0 struct{}
var Transition0 = hsm.NewTransition(
[]State{State0, State1},
State0,
func(sm *Dummy, e Event0) (hsm.TransitionOutput, error) {
return hsm.TransitionOutput{}, nil
},
)
type Event1 struct{}
var Transition1 = hsm.NewTransition(
[]State{State0, State1},
State1,
func(sm *Dummy, e Event1) (hsm.TransitionOutput, error) {
return hsm.TransitionOutput{}, nil
},
)