diff options
author | Michael Muré <batolettre@gmail.com> | 2022-07-25 13:16:16 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2022-07-25 13:27:17 +0200 |
commit | 3d454d9dc8ba2409046c0938618a70864e6eb8ef (patch) | |
tree | 8745f656cc8218654632ce003f997a39988d3043 /entity/dag/operation_pack.go | |
parent | 2ade8fb1d570ddcb4aedc9386af46d208b129daa (diff) | |
download | git-bug-3d454d9dc8ba2409046c0938618a70864e6eb8ef.tar.gz |
entity/dag: proper base operation for simplified implementation
- reduce boilerplace necessary to implement an operation
- consolidate what an operation is in the core, which in turn pave the way for a generic cache layer mechanism
- avoid the previously complex unmarshalling process
- support operation metadata from the core
- simplified testing
Diffstat (limited to 'entity/dag/operation_pack.go')
-rw-r--r-- | entity/dag/operation_pack.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/entity/dag/operation_pack.go b/entity/dag/operation_pack.go index 9b42f9bf..b2973343 100644 --- a/entity/dag/operation_pack.go +++ b/entity/dag/operation_pack.go @@ -314,10 +314,15 @@ func unmarshallPack(def Definition, resolver identity.Resolver, data []byte) ([] for _, raw := range aux.Operations { // delegate to specialized unmarshal function - op, err := def.OperationUnmarshaler(author, raw, resolver) + op, err := def.OperationUnmarshaler(raw, resolver) if err != nil { return nil, nil, err } + // Set the id from the serialized data + op.setId(entity.DeriveId(raw)) + // Set the author, taken from the OperationPack + op.setAuthor(author) + ops = append(ops, op) } |