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 PeerLocated struct {
Peer PeerClass
Expires int
Distance int
}
const PeerLocatedTypeID = 0xca461b5d
func (p PeerLocated ) construct () PeerLocatedClass { return &p }
var (
_ bin .Encoder = &PeerLocated {}
_ bin .Decoder = &PeerLocated {}
_ bin .BareEncoder = &PeerLocated {}
_ bin .BareDecoder = &PeerLocated {}
_ PeerLocatedClass = &PeerLocated {}
)
func (p *PeerLocated ) Zero () bool {
if p == nil {
return true
}
if !(p .Peer == nil ) {
return false
}
if !(p .Expires == 0 ) {
return false
}
if !(p .Distance == 0 ) {
return false
}
return true
}
func (p *PeerLocated ) String () string {
if p == nil {
return "PeerLocated(nil)"
}
type Alias PeerLocated
return fmt .Sprintf ("PeerLocated%+v" , Alias (*p ))
}
func (p *PeerLocated ) FillFrom (from interface {
GetPeer () (value PeerClass )
GetExpires () (value int )
GetDistance () (value int )
}) {
p .Peer = from .GetPeer ()
p .Expires = from .GetExpires ()
p .Distance = from .GetDistance ()
}
func (*PeerLocated ) TypeID () uint32 {
return PeerLocatedTypeID
}
func (*PeerLocated ) TypeName () string {
return "peerLocated"
}
func (p *PeerLocated ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "peerLocated" ,
ID : PeerLocatedTypeID ,
}
if p == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "Peer" ,
SchemaName : "peer" ,
},
{
Name : "Expires" ,
SchemaName : "expires" ,
},
{
Name : "Distance" ,
SchemaName : "distance" ,
},
}
return typ
}
func (p *PeerLocated ) Encode (b *bin .Buffer ) error {
if p == nil {
return fmt .Errorf ("can't encode peerLocated#ca461b5d as nil" )
}
b .PutID (PeerLocatedTypeID )
return p .EncodeBare (b )
}
func (p *PeerLocated ) EncodeBare (b *bin .Buffer ) error {
if p == nil {
return fmt .Errorf ("can't encode peerLocated#ca461b5d as nil" )
}
if p .Peer == nil {
return fmt .Errorf ("unable to encode peerLocated#ca461b5d: field peer is nil" )
}
if err := p .Peer .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode peerLocated#ca461b5d: field peer: %w" , err )
}
b .PutInt (p .Expires )
b .PutInt (p .Distance )
return nil
}
func (p *PeerLocated ) Decode (b *bin .Buffer ) error {
if p == nil {
return fmt .Errorf ("can't decode peerLocated#ca461b5d to nil" )
}
if err := b .ConsumeID (PeerLocatedTypeID ); err != nil {
return fmt .Errorf ("unable to decode peerLocated#ca461b5d: %w" , err )
}
return p .DecodeBare (b )
}
func (p *PeerLocated ) DecodeBare (b *bin .Buffer ) error {
if p == nil {
return fmt .Errorf ("can't decode peerLocated#ca461b5d to nil" )
}
{
value , err := DecodePeer (b )
if err != nil {
return fmt .Errorf ("unable to decode peerLocated#ca461b5d: field peer: %w" , err )
}
p .Peer = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode peerLocated#ca461b5d: field expires: %w" , err )
}
p .Expires = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode peerLocated#ca461b5d: field distance: %w" , err )
}
p .Distance = value
}
return nil
}
func (p *PeerLocated ) GetPeer () (value PeerClass ) {
if p == nil {
return
}
return p .Peer
}
func (p *PeerLocated ) GetExpires () (value int ) {
if p == nil {
return
}
return p .Expires
}
func (p *PeerLocated ) GetDistance () (value int ) {
if p == nil {
return
}
return p .Distance
}
type PeerSelfLocated struct {
Expires int
}
const PeerSelfLocatedTypeID = 0xf8ec284b
func (p PeerSelfLocated ) construct () PeerLocatedClass { return &p }
var (
_ bin .Encoder = &PeerSelfLocated {}
_ bin .Decoder = &PeerSelfLocated {}
_ bin .BareEncoder = &PeerSelfLocated {}
_ bin .BareDecoder = &PeerSelfLocated {}
_ PeerLocatedClass = &PeerSelfLocated {}
)
func (p *PeerSelfLocated ) Zero () bool {
if p == nil {
return true
}
if !(p .Expires == 0 ) {
return false
}
return true
}
func (p *PeerSelfLocated ) String () string {
if p == nil {
return "PeerSelfLocated(nil)"
}
type Alias PeerSelfLocated
return fmt .Sprintf ("PeerSelfLocated%+v" , Alias (*p ))
}
func (p *PeerSelfLocated ) FillFrom (from interface {
GetExpires () (value int )
}) {
p .Expires = from .GetExpires ()
}
func (*PeerSelfLocated ) TypeID () uint32 {
return PeerSelfLocatedTypeID
}
func (*PeerSelfLocated ) TypeName () string {
return "peerSelfLocated"
}
func (p *PeerSelfLocated ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "peerSelfLocated" ,
ID : PeerSelfLocatedTypeID ,
}
if p == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "Expires" ,
SchemaName : "expires" ,
},
}
return typ
}
func (p *PeerSelfLocated ) Encode (b *bin .Buffer ) error {
if p == nil {
return fmt .Errorf ("can't encode peerSelfLocated#f8ec284b as nil" )
}
b .PutID (PeerSelfLocatedTypeID )
return p .EncodeBare (b )
}
func (p *PeerSelfLocated ) EncodeBare (b *bin .Buffer ) error {
if p == nil {
return fmt .Errorf ("can't encode peerSelfLocated#f8ec284b as nil" )
}
b .PutInt (p .Expires )
return nil
}
func (p *PeerSelfLocated ) Decode (b *bin .Buffer ) error {
if p == nil {
return fmt .Errorf ("can't decode peerSelfLocated#f8ec284b to nil" )
}
if err := b .ConsumeID (PeerSelfLocatedTypeID ); err != nil {
return fmt .Errorf ("unable to decode peerSelfLocated#f8ec284b: %w" , err )
}
return p .DecodeBare (b )
}
func (p *PeerSelfLocated ) DecodeBare (b *bin .Buffer ) error {
if p == nil {
return fmt .Errorf ("can't decode peerSelfLocated#f8ec284b to nil" )
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode peerSelfLocated#f8ec284b: field expires: %w" , err )
}
p .Expires = value
}
return nil
}
func (p *PeerSelfLocated ) GetExpires () (value int ) {
if p == nil {
return
}
return p .Expires
}
const PeerLocatedClassName = "PeerLocated"
type PeerLocatedClass interface {
bin .Encoder
bin .Decoder
bin .BareEncoder
bin .BareDecoder
construct () PeerLocatedClass
TypeID () uint32
TypeName () string
String () string
Zero () bool
GetExpires () (value int )
}
func DecodePeerLocated (buf *bin .Buffer ) (PeerLocatedClass , error ) {
id , err := buf .PeekID ()
if err != nil {
return nil , err
}
switch id {
case PeerLocatedTypeID :
v := PeerLocated {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode PeerLocatedClass: %w" , err )
}
return &v , nil
case PeerSelfLocatedTypeID :
v := PeerSelfLocated {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode PeerLocatedClass: %w" , err )
}
return &v , nil
default :
return nil , fmt .Errorf ("unable to decode PeerLocatedClass: %w" , bin .NewUnexpectedID (id ))
}
}
type PeerLocatedBox struct {
PeerLocated PeerLocatedClass
}
func (b *PeerLocatedBox ) Decode (buf *bin .Buffer ) error {
if b == nil {
return fmt .Errorf ("unable to decode PeerLocatedBox to nil" )
}
v , err := DecodePeerLocated (buf )
if err != nil {
return fmt .Errorf ("unable to decode boxed value: %w" , err )
}
b .PeerLocated = v
return nil
}
func (b *PeerLocatedBox ) Encode (buf *bin .Buffer ) error {
if b == nil || b .PeerLocated == nil {
return fmt .Errorf ("unable to encode PeerLocatedClass as nil" )
}
return b .PeerLocated .Encode (buf )
}
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 .