module Ouroboros.Network.Protocol.LocalTxSubmission.Codec.CDDL where

import Codec.CBOR.Read qualified as CBOR
import Codec.Serialise.Class qualified as Serialise
import Data.ByteString.Lazy qualified as BL
import Network.TypedProtocol.Codec
import Ouroboros.Network.Protocol.LocalTxSubmission.Codec
import Ouroboros.Network.Protocol.LocalTxSubmission.Test
import Ouroboros.Network.Protocol.LocalTxSubmission.Type

localTxSubmissionCodec :: Codec (LocalTxSubmission Tx Reject)
                                CBOR.DeserialiseFailure IO BL.ByteString
localTxSubmissionCodec :: Codec
  (LocalTxSubmission Tx Reject) DeserialiseFailure IO ByteString
localTxSubmissionCodec =
    (Tx -> Encoding)
-> (forall s. Decoder s Tx)
-> (Reject -> Encoding)
-> (forall s. Decoder s Reject)
-> Codec
     (LocalTxSubmission Tx Reject) DeserialiseFailure IO ByteString
forall tx reject (m :: * -> *).
MonadST m =>
(tx -> Encoding)
-> (forall s. Decoder s tx)
-> (reject -> Encoding)
-> (forall s. Decoder s reject)
-> Codec
     (LocalTxSubmission tx reject) DeserialiseFailure m ByteString
codecLocalTxSubmission
      Tx -> Encoding
forall a. Serialise a => a -> Encoding
Serialise.encode
      Decoder s Tx
forall s. Decoder s Tx
forall a s. Serialise a => Decoder s a
Serialise.decode
      Reject -> Encoding
forall a. Serialise a => a -> Encoding
Serialise.encode
      Decoder s Reject
forall s. Decoder s Reject
forall a s. Serialise a => Decoder s a
Serialise.decode