op: implement StackOp in terms of general save/load of state

Push/Pop only allows saving and restoring operation state in a
stack-like manner. We're going to need restoring arbitrary state
for implementing deferred operations.

Generalize state save/restore and implement Push and Pop on top of
that.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2021-01-11 19:59:51 +01:00
parent f114acdb02
commit f7902f299b
6 changed files with 139 additions and 71 deletions
+6 -6
View File
@@ -25,8 +25,8 @@ const (
TypeKeyInput
TypeKeyFocus
TypeKeySoftKeyboard
TypePush
TypePop
TypeSave
TypeLoad
TypeAux
TypeClip
TypeProfile
@@ -54,8 +54,8 @@ const (
TypeKeyInputLen = 1
TypeKeyFocusLen = 1 + 1
TypeKeySoftKeyboardLen = 1 + 1
TypePushLen = 1
TypePopLen = 1
TypeSaveLen = 1 + 4
TypeLoadLen = 1 + 4
TypeAuxLen = 1
TypeClipLen = 1 + 4*4 + 1
TypeProfileLen = 1
@@ -84,8 +84,8 @@ func (t OpType) Size() int {
TypeKeyInputLen,
TypeKeyFocusLen,
TypeKeySoftKeyboardLen,
TypePushLen,
TypePopLen,
TypeSaveLen,
TypeLoadLen,
TypeAuxLen,
TypeClipLen,
TypeProfileLen,