package proto
import (
"io"
"github.com/go-faster/errors"
"github.com/gotd/td/bin"
)
type UnencryptedMessage struct {
MessageID int64
MessageData []byte
}
func (u *UnencryptedMessage ) Decode (b *bin .Buffer ) error {
{
id , err := b .Long ()
if err != nil {
return err
}
if id != 0 {
return errors .Errorf ("unexpected auth_key_id %d of plaintext message" , id )
}
}
{
v , err := b .Long ()
if err != nil {
return err
}
u .MessageID = v
}
dataLen , err := b .Int32 ()
if err != nil {
return err
}
if dataLen < 0 {
return &bin .InvalidLengthError {
Length : int (dataLen ),
Where : "plaintext message data" ,
}
}
if int (dataLen ) > b .Len () {
return errors .Wrap (io .ErrUnexpectedEOF , "consume payload" )
}
u .MessageData = append (u .MessageData [:0 ], make ([]byte , dataLen )...)
if err := b .ConsumeN (u .MessageData , int (dataLen )); err != nil {
return errors .Wrap (err , "consume payload" )
}
return nil
}
func (u UnencryptedMessage ) Encode (b *bin .Buffer ) error {
b .PutLong (0 )
b .PutLong (u .MessageID )
b .PutInt32 (int32 (len (u .MessageData )))
b .Put (u .MessageData )
return nil
}
The pages are generated with Golds v0.8.4 . (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 @zigo_101 (reachable from the left QR code) to get the latest news of Golds .