package pgproto3
import (
)
type ParameterDescription struct {
ParameterOIDs []uint32
}
func (*ParameterDescription) () {}
func ( *ParameterDescription) ( []byte) error {
:= bytes.NewBuffer()
if .Len() < 2 {
return &invalidMessageFormatErr{messageType: "ParameterDescription"}
}
.Next(2)
:= .Len() / 4
* = ParameterDescription{ParameterOIDs: make([]uint32, )}
for := range {
.ParameterOIDs[] = binary.BigEndian.Uint32(.Next(4))
}
return nil
}
func ( *ParameterDescription) ( []byte) ([]byte, error) {
, := beginMessage(, 't')
if len(.ParameterOIDs) > math.MaxUint16 {
return nil, errors.New("too many parameter oids")
}
= pgio.AppendUint16(, uint16(len(.ParameterOIDs)))
for , := range .ParameterOIDs {
= pgio.AppendUint32(, )
}
return finishMessage(, )
}
func ( ParameterDescription) () ([]byte, error) {
return json.Marshal(struct {
string
[]uint32
}{
: "ParameterDescription",
: .ParameterOIDs,
})
}