package  pgproto3 
 
import  ( 
	"bytes"  
	"encoding/binary"  
	"encoding/json"  
 
	"github.com/jackc/pgx/v5/internal/pgio"  
) 
 
type  ParameterDescription  struct  { 
	ParameterOIDs []uint32  
} 
 
 
func  (*ParameterDescription ) Backend () {} 
 
 
 
func  (dst  *ParameterDescription ) Decode (src  []byte ) error  { 
	buf  := bytes .NewBuffer (src ) 
 
	if  buf .Len () < 2  { 
		return  &invalidMessageFormatErr {messageType : "ParameterDescription" } 
	} 
 
	 
	buf .Next (2 ) 
	 
	parameterCount  := buf .Len () / 4  
 
	*dst  = ParameterDescription {ParameterOIDs : make ([]uint32 , parameterCount )} 
 
	for  i  := 0 ; i  < parameterCount ; i ++ { 
		dst .ParameterOIDs [i ] = binary .BigEndian .Uint32 (buf .Next (4 )) 
	} 
 
	return  nil  
} 
 
 
func  (src  *ParameterDescription ) Encode (dst  []byte ) []byte  { 
	dst  = append (dst , 't' ) 
	sp  := len (dst ) 
	dst  = pgio .AppendInt32 (dst , -1 ) 
 
	dst  = pgio .AppendUint16 (dst , uint16 (len (src .ParameterOIDs ))) 
	for  _ , oid  := range  src .ParameterOIDs  { 
		dst  = pgio .AppendUint32 (dst , oid ) 
	} 
 
	pgio .SetInt32 (dst [sp :], int32 (len (dst [sp :]))) 
 
	return  dst  
} 
 
 
func  (src  ParameterDescription ) MarshalJSON () ([]byte , error ) { 
	return  json .Marshal (struct  { 
		Type           string  
		ParameterOIDs  []uint32  
	}{ 
		Type :          "ParameterDescription" , 
		ParameterOIDs : src .ParameterOIDs , 
	}) 
} 
  
The pages are generated with Golds   v0.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 .