211
// processing a replication task.
212
// TODO: Remove this implementation once transition history is fully implemented.
213
>
func (operationMachineDefinition) CompareState(state1, state2 any) (int, error) {
statemachine.go
214
>
o1, ok := state1.(Operation)
215
>
if !ok {
216
return 0, fmt.Errorf("%w: expected state1 to be a Operation instance, got %v", hsm.ErrIncompatibleType, state1)
217
}
219
>
if !ok {
220
return 0, fmt.Errorf("%w: expected state2 to be a Operation instance, got %v", hsm.ErrIncompatibleType, state2)
221
}
222
224
>
if err != nil {
225
return 0, fmt.Errorf("failed to get progress for state1: %w", err)
226
}
228
>
if err != nil {
229
return 0, fmt.Errorf("failed to get progress for state2: %w", err)
230
}
232
return stage1 - stage2, nil
233
}