package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"github.com/gotd/td/bin"
"github.com/gotd/td/tdjson"
"github.com/gotd/td/tdp"
"github.com/gotd/td/tgerr"
)
var (
_ = bin .Buffer {}
_ = context .Background ()
_ = fmt .Stringer (nil )
_ = strings .Builder {}
_ = errors .Is
_ = multierr .AppendInto
_ = sort .Ints
_ = tdp .Format
_ = tgerr .Error {}
_ = tdjson .Encoder {}
)
type UpdatesGetDifferenceRequest struct {
Flags bin .Fields
Pts int
PtsLimit int
PtsTotalLimit int
Date int
Qts int
QtsLimit int
}
const UpdatesGetDifferenceRequestTypeID = 0x19c2f763
var (
_ bin .Encoder = &UpdatesGetDifferenceRequest {}
_ bin .Decoder = &UpdatesGetDifferenceRequest {}
_ bin .BareEncoder = &UpdatesGetDifferenceRequest {}
_ bin .BareDecoder = &UpdatesGetDifferenceRequest {}
)
func (g *UpdatesGetDifferenceRequest ) Zero () bool {
if g == nil {
return true
}
if !(g .Flags .Zero ()) {
return false
}
if !(g .Pts == 0 ) {
return false
}
if !(g .PtsLimit == 0 ) {
return false
}
if !(g .PtsTotalLimit == 0 ) {
return false
}
if !(g .Date == 0 ) {
return false
}
if !(g .Qts == 0 ) {
return false
}
if !(g .QtsLimit == 0 ) {
return false
}
return true
}
func (g *UpdatesGetDifferenceRequest ) String () string {
if g == nil {
return "UpdatesGetDifferenceRequest(nil)"
}
type Alias UpdatesGetDifferenceRequest
return fmt .Sprintf ("UpdatesGetDifferenceRequest%+v" , Alias (*g ))
}
func (g *UpdatesGetDifferenceRequest ) FillFrom (from interface {
GetPts () (value int )
GetPtsLimit () (value int , ok bool )
GetPtsTotalLimit () (value int , ok bool )
GetDate () (value int )
GetQts () (value int )
GetQtsLimit () (value int , ok bool )
}) {
g .Pts = from .GetPts ()
if val , ok := from .GetPtsLimit (); ok {
g .PtsLimit = val
}
if val , ok := from .GetPtsTotalLimit (); ok {
g .PtsTotalLimit = val
}
g .Date = from .GetDate ()
g .Qts = from .GetQts ()
if val , ok := from .GetQtsLimit (); ok {
g .QtsLimit = val
}
}
func (*UpdatesGetDifferenceRequest ) TypeID () uint32 {
return UpdatesGetDifferenceRequestTypeID
}
func (*UpdatesGetDifferenceRequest ) TypeName () string {
return "updates.getDifference"
}
func (g *UpdatesGetDifferenceRequest ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "updates.getDifference" ,
ID : UpdatesGetDifferenceRequestTypeID ,
}
if g == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "Pts" ,
SchemaName : "pts" ,
},
{
Name : "PtsLimit" ,
SchemaName : "pts_limit" ,
Null : !g .Flags .Has (1 ),
},
{
Name : "PtsTotalLimit" ,
SchemaName : "pts_total_limit" ,
Null : !g .Flags .Has (0 ),
},
{
Name : "Date" ,
SchemaName : "date" ,
},
{
Name : "Qts" ,
SchemaName : "qts" ,
},
{
Name : "QtsLimit" ,
SchemaName : "qts_limit" ,
Null : !g .Flags .Has (2 ),
},
}
return typ
}
func (g *UpdatesGetDifferenceRequest ) SetFlags () {
if !(g .PtsLimit == 0 ) {
g .Flags .Set (1 )
}
if !(g .PtsTotalLimit == 0 ) {
g .Flags .Set (0 )
}
if !(g .QtsLimit == 0 ) {
g .Flags .Set (2 )
}
}
func (g *UpdatesGetDifferenceRequest ) Encode (b *bin .Buffer ) error {
if g == nil {
return fmt .Errorf ("can't encode updates.getDifference#19c2f763 as nil" )
}
b .PutID (UpdatesGetDifferenceRequestTypeID )
return g .EncodeBare (b )
}
func (g *UpdatesGetDifferenceRequest ) EncodeBare (b *bin .Buffer ) error {
if g == nil {
return fmt .Errorf ("can't encode updates.getDifference#19c2f763 as nil" )
}
g .SetFlags ()
if err := g .Flags .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode updates.getDifference#19c2f763: field flags: %w" , err )
}
b .PutInt (g .Pts )
if g .Flags .Has (1 ) {
b .PutInt (g .PtsLimit )
}
if g .Flags .Has (0 ) {
b .PutInt (g .PtsTotalLimit )
}
b .PutInt (g .Date )
b .PutInt (g .Qts )
if g .Flags .Has (2 ) {
b .PutInt (g .QtsLimit )
}
return nil
}
func (g *UpdatesGetDifferenceRequest ) Decode (b *bin .Buffer ) error {
if g == nil {
return fmt .Errorf ("can't decode updates.getDifference#19c2f763 to nil" )
}
if err := b .ConsumeID (UpdatesGetDifferenceRequestTypeID ); err != nil {
return fmt .Errorf ("unable to decode updates.getDifference#19c2f763: %w" , err )
}
return g .DecodeBare (b )
}
func (g *UpdatesGetDifferenceRequest ) DecodeBare (b *bin .Buffer ) error {
if g == nil {
return fmt .Errorf ("can't decode updates.getDifference#19c2f763 to nil" )
}
{
if err := g .Flags .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode updates.getDifference#19c2f763: field flags: %w" , err )
}
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode updates.getDifference#19c2f763: field pts: %w" , err )
}
g .Pts = value
}
if g .Flags .Has (1 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode updates.getDifference#19c2f763: field pts_limit: %w" , err )
}
g .PtsLimit = value
}
if g .Flags .Has (0 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode updates.getDifference#19c2f763: field pts_total_limit: %w" , err )
}
g .PtsTotalLimit = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode updates.getDifference#19c2f763: field date: %w" , err )
}
g .Date = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode updates.getDifference#19c2f763: field qts: %w" , err )
}
g .Qts = value
}
if g .Flags .Has (2 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode updates.getDifference#19c2f763: field qts_limit: %w" , err )
}
g .QtsLimit = value
}
return nil
}
func (g *UpdatesGetDifferenceRequest ) GetPts () (value int ) {
if g == nil {
return
}
return g .Pts
}
func (g *UpdatesGetDifferenceRequest ) SetPtsLimit (value int ) {
g .Flags .Set (1 )
g .PtsLimit = value
}
func (g *UpdatesGetDifferenceRequest ) GetPtsLimit () (value int , ok bool ) {
if g == nil {
return
}
if !g .Flags .Has (1 ) {
return value , false
}
return g .PtsLimit , true
}
func (g *UpdatesGetDifferenceRequest ) SetPtsTotalLimit (value int ) {
g .Flags .Set (0 )
g .PtsTotalLimit = value
}
func (g *UpdatesGetDifferenceRequest ) GetPtsTotalLimit () (value int , ok bool ) {
if g == nil {
return
}
if !g .Flags .Has (0 ) {
return value , false
}
return g .PtsTotalLimit , true
}
func (g *UpdatesGetDifferenceRequest ) GetDate () (value int ) {
if g == nil {
return
}
return g .Date
}
func (g *UpdatesGetDifferenceRequest ) GetQts () (value int ) {
if g == nil {
return
}
return g .Qts
}
func (g *UpdatesGetDifferenceRequest ) SetQtsLimit (value int ) {
g .Flags .Set (2 )
g .QtsLimit = value
}
func (g *UpdatesGetDifferenceRequest ) GetQtsLimit () (value int , ok bool ) {
if g == nil {
return
}
if !g .Flags .Has (2 ) {
return value , false
}
return g .QtsLimit , true
}
func (c *Client ) UpdatesGetDifference (ctx context .Context , request *UpdatesGetDifferenceRequest ) (UpdatesDifferenceClass , error ) {
var result UpdatesDifferenceBox
if err := c .rpc .Invoke (ctx , request , &result ); err != nil {
return nil , err
}
return result .Difference , nil
}
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 .