packages feed

ron-0.13: lib/RON/Text/Serialize/Experimental.hs

{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE OverloadedRecordDot #-}
{-# LANGUAGE OverloadedStrings #-}

module RON.Text.Serialize.Experimental (serializeOpenFrame) where

import RON.Prelude

import Data.ByteString.Lazy.Char8 qualified as BSLC

import RON.Text.Serialize (serializeOpenOp)
import RON.Types (Op (opId), OpenFrame)
import RON.UUID qualified as UUID

serializeOpenFrame :: OpenFrame -> ByteStringL
serializeOpenFrame ops =
    BSLC.intercalate ",\n" opsSerialized <> ";\n"
  where
    opsSerialized = zipWith serializeOpenOp (UUID.zero : map (.opId) ops) ops