crdt-event-fold-1.8.0.0: test/benchmark-serialization.hs
{-# LANGUAGE NumericUnderscores #-}
module Main (main) where
import Data.CRDT.EventFold (UpdateResult(UpdateResult, urEventFold), new)
import Data.CRDT.EventFold.Monad (MonadUpdateEF(event, participate),
runEventFoldT)
import qualified Data.Binary as Binary
import qualified Data.ByteString.Lazy as BSL
main :: IO ()
main = do
((), UpdateResult { urEventFold = ef }) <-
runEventFoldT 'a' (new () 'a') $ do
_ <- participate 'b'
sequence_ $ replicate 15_000 (event ())
let bytes = Binary.encode ef
print ("Encoding size", BSL.length bytes)
let ef2 = Binary.decode bytes
print ("round trip equality", ef2 == ef)
print ("decoded value", ef2)