package pgproto3
import (
)
type Describe struct {
ObjectType byte
Name string
}
func (*Describe) () {}
func ( *Describe) ( []byte) error {
if len() < 2 {
return &invalidMessageFormatErr{messageType: "Describe"}
}
.ObjectType = [0]
:= 1
:= bytes.IndexByte([:], 0)
if != len([:])-1 {
return &invalidMessageFormatErr{messageType: "Describe"}
}
.Name = string([ : len()-1])
return nil
}
func ( *Describe) ( []byte) ([]byte, error) {
, := beginMessage(, 'D')
= append(, .ObjectType)
= append(, .Name...)
= append(, 0)
return finishMessage(, )
}
func ( Describe) () ([]byte, error) {
return json.Marshal(struct {
string
string
string
}{
: "Describe",
: string(.ObjectType),
: .Name,
})
}
func ( *Describe) ( []byte) error {
if string() == "null" {
return nil
}
var struct {
string
string
}
if := json.Unmarshal(, &); != nil {
return
}
if len(.) != 1 {
return errors.New("invalid length for Describe.ObjectType")
}
.ObjectType = byte(.[0])
.Name = .
return nil
}