diff options
Diffstat (limited to 'vendor/github.com/jackc/pgx/v5/pgproto3/gss_response.go')
| -rw-r--r-- | vendor/github.com/jackc/pgx/v5/pgproto3/gss_response.go | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/vendor/github.com/jackc/pgx/v5/pgproto3/gss_response.go b/vendor/github.com/jackc/pgx/v5/pgproto3/gss_response.go new file mode 100644 index 0000000..10d9377 --- /dev/null +++ b/vendor/github.com/jackc/pgx/v5/pgproto3/gss_response.go @@ -0,0 +1,46 @@ +package pgproto3 + +import ( +	"encoding/json" +) + +type GSSResponse struct { +	Data []byte +} + +// Frontend identifies this message as sendable by a PostgreSQL frontend. +func (g *GSSResponse) Frontend() {} + +func (g *GSSResponse) Decode(data []byte) error { +	g.Data = data +	return nil +} + +func (g *GSSResponse) Encode(dst []byte) ([]byte, error) { +	dst, sp := beginMessage(dst, 'p') +	dst = append(dst, g.Data...) +	return finishMessage(dst, sp) +} + +// MarshalJSON implements encoding/json.Marshaler. +func (g *GSSResponse) MarshalJSON() ([]byte, error) { +	return json.Marshal(struct { +		Type string +		Data []byte +	}{ +		Type: "GSSResponse", +		Data: g.Data, +	}) +} + +// UnmarshalJSON implements encoding/json.Unmarshaler. +func (g *GSSResponse) UnmarshalJSON(data []byte) error { +	var msg struct { +		Data []byte +	} +	if err := json.Unmarshal(data, &msg); err != nil { +		return err +	} +	g.Data = msg.Data +	return nil +} | 
