def GCounter.merge

bend-kit-crdt@0.2.0.0 · crdt.bend:25

import bend-kit-crdt@0.2.0.0/crdt.bend as Crdt
import Base

25# Component-wise maximum. It is commutative, associative, and idempotent.
26def GCounter.merge(a: List<&2, U32>, b: List<&2, U32>) -> List<&2, U32>:
27  match a b:
28    case Nil{} Nil{}:
29      Nil{}
30    case Nil{} Con{y, ys}:
31      Con{y, ys}
32    case Con{x, xs} Nil{}:
33      Con{x, xs}
34    case Con{x, xs} Con{y, ys}:
35      Con{U32.max(x, y), GCounter.merge(xs, ys)}

Uses (3)

Used by (1)