package  pgproto3 
 
import  ( 
	"bytes"  
	"encoding/binary"  
	"encoding/json"  
 
	"github.com/jackc/pgx/v5/internal/pgio"  
) 
 
type  NotificationResponse  struct  { 
	PID     uint32  
	Channel string  
	Payload string  
} 
 
 
func  (*NotificationResponse ) Backend () {} 
 
 
 
func  (dst  *NotificationResponse ) Decode (src  []byte ) error  { 
	buf  := bytes .NewBuffer (src ) 
 
	if  buf .Len () < 4  { 
		return  &invalidMessageFormatErr {messageType : "NotificationResponse" , details : "too short" } 
	} 
 
	pid  := binary .BigEndian .Uint32 (buf .Next (4 )) 
 
	b , err  := buf .ReadBytes (0 ) 
	if  err  != nil  { 
		return  err  
	} 
	channel  := string (b [:len (b )-1 ]) 
 
	b , err  = buf .ReadBytes (0 ) 
	if  err  != nil  { 
		return  err  
	} 
	payload  := string (b [:len (b )-1 ]) 
 
	*dst  = NotificationResponse {PID : pid , Channel : channel , Payload : payload } 
	return  nil  
} 
 
 
func  (src  *NotificationResponse ) Encode (dst  []byte ) []byte  { 
	dst  = append (dst , 'A' ) 
	sp  := len (dst ) 
	dst  = pgio .AppendInt32 (dst , -1 ) 
 
	dst  = pgio .AppendUint32 (dst , src .PID ) 
	dst  = append (dst , src .Channel ...) 
	dst  = append (dst , 0 ) 
	dst  = append (dst , src .Payload ...) 
	dst  = append (dst , 0 ) 
 
	pgio .SetInt32 (dst [sp :], int32 (len (dst [sp :]))) 
 
	return  dst  
} 
 
 
func  (src  NotificationResponse ) MarshalJSON () ([]byte , error ) { 
	return  json .Marshal (struct  { 
		Type     string  
		PID      uint32  
		Channel  string  
		Payload  string  
	}{ 
		Type :    "NotificationResponse" , 
		PID :     src .PID , 
		Channel : src .Channel , 
		Payload : src .Payload , 
	}) 
} 
  
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 .