cardano-diffusion:protocols
Safe HaskellNone
LanguageHaskell2010

Cardano.Network.Protocol.Handshake.Codec

Synopsis

Documentation

nodeToNodeHandshakeCodec :: forall (m :: Type -> Type). MonadST m => Codec (Handshake NodeToNodeVersion Term) DeserialiseFailure m ByteString Source #

Handshake codec for the node-to-node protocol suite.

nodeToClientHandshakeCodec :: forall (m :: Type -> Type). MonadST m => Codec (Handshake NodeToClientVersion Term) DeserialiseFailure m ByteString Source #

Handshake codec for the node-to-client protocol suite.

mkVersionedCodecCBORTerm :: (vNumber -> CodecCBORTerm fail vData) -> VersionedCodecCBORTerm fail vNumber vData #

byteLimitsHandshake :: forall {k} (vNumber :: k). ProtocolSizeLimits (Handshake vNumber Term) ByteString #

decodeRefuseReason :: Show failure => CodecCBORTerm (failure, Maybe Int) vNumber -> Decoder s (RefuseReason vNumber) #

encodeRefuseReason :: CodecCBORTerm fail vNumber -> RefuseReason vNumber -> Encoding #

noTimeLimitsHandshake :: forall {k} (vNumber :: k). ProtocolTimeLimits (Handshake vNumber Term) #

timeLimitsHandshake :: forall {k} (vNumber :: k). ProtocolTimeLimits (Handshake vNumber Term) #

type VersionDataCodec versionNumber versionData = VersionedCodecCBORTerm Text versionNumber versionData #

data VersionedCodecCBORTerm fail v a #

Constructors

VersionedCodecCBORTerm 

Fields

Bundled Patterns

pattern VersionDataCodec :: (v -> a -> Term) -> (v -> Term -> Either Text a) -> VersionDataCodec v a