package pgproto3import ()// Message is the interface implemented by an object that can decode and encode// a particular PostgreSQL message.typeMessageinterface {// Decode is allowed and expected to retain a reference to data after // returning (unlike encoding.BinaryUnmarshaler).Decode(data []byte) error// Encode appends itself to dst and returns the new buffer.Encode(dst []byte) []byte}// FrontendMessage is a message sent by the frontend (i.e. the client).typeFrontendMessageinterface {MessageFrontend() // no-op method to distinguish frontend from backend methods}// BackendMessage is a message sent by the backend (i.e. the server).typeBackendMessageinterface {MessageBackend() // no-op method to distinguish frontend from backend methods}typeAuthenticationResponseMessageinterface {BackendMessageAuthenticationResponse() // no-op method to distinguish authentication responses}type invalidMessageLenErr struct { messageType string expectedLen int actualLen int}func ( *invalidMessageLenErr) () string {returnfmt.Sprintf("%s body must have length of %d, but it is %d", .messageType, .expectedLen, .actualLen)}type invalidMessageFormatErr struct { messageType string details string}func ( *invalidMessageFormatErr) () string {returnfmt.Sprintf("%s body is invalid %s", .messageType, .details)}type writeError struct { err error safeToRetry bool}func ( *writeError) () string {returnfmt.Sprintf("write failed: %s", .err.Error())}func ( *writeError) () bool {return .safeToRetry}func ( *writeError) () error {return .err}// getValueFromJSON gets the value from a protocol message representation in JSON.func getValueFromJSON( map[string]string) ([]byte, error) {if == nil {returnnil, nil }if , := ["text"]; {return []byte(), nil }if , := ["binary"]; {returnhex.DecodeString() }returnnil, errors.New("unknown protocol representation")}
The pages are generated with Goldsv0.6.7. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds.