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 IPPort struct {
Ipv4 int
Port int
}
const IPPortTypeID = 0xd433ad73
func (i IPPort ) construct () IPPortClass { return &i }
var (
_ bin .Encoder = &IPPort {}
_ bin .Decoder = &IPPort {}
_ bin .BareEncoder = &IPPort {}
_ bin .BareDecoder = &IPPort {}
_ IPPortClass = &IPPort {}
)
func (i *IPPort ) Zero () bool {
if i == nil {
return true
}
if !(i .Ipv4 == 0 ) {
return false
}
if !(i .Port == 0 ) {
return false
}
return true
}
func (i *IPPort ) String () string {
if i == nil {
return "IPPort(nil)"
}
type Alias IPPort
return fmt .Sprintf ("IPPort%+v" , Alias (*i ))
}
func (i *IPPort ) FillFrom (from interface {
GetIpv4 () (value int )
GetPort () (value int )
}) {
i .Ipv4 = from .GetIpv4 ()
i .Port = from .GetPort ()
}
func (*IPPort ) TypeID () uint32 {
return IPPortTypeID
}
func (*IPPort ) TypeName () string {
return "ipPort"
}
func (i *IPPort ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "ipPort" ,
ID : IPPortTypeID ,
}
if i == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "Ipv4" ,
SchemaName : "ipv4" ,
},
{
Name : "Port" ,
SchemaName : "port" ,
},
}
return typ
}
func (i *IPPort ) Encode (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't encode ipPort#d433ad73 as nil" )
}
b .PutID (IPPortTypeID )
return i .EncodeBare (b )
}
func (i *IPPort ) EncodeBare (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't encode ipPort#d433ad73 as nil" )
}
b .PutInt (i .Ipv4 )
b .PutInt (i .Port )
return nil
}
func (i *IPPort ) Decode (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't decode ipPort#d433ad73 to nil" )
}
if err := b .ConsumeID (IPPortTypeID ); err != nil {
return fmt .Errorf ("unable to decode ipPort#d433ad73: %w" , err )
}
return i .DecodeBare (b )
}
func (i *IPPort ) DecodeBare (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't decode ipPort#d433ad73 to nil" )
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode ipPort#d433ad73: field ipv4: %w" , err )
}
i .Ipv4 = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode ipPort#d433ad73: field port: %w" , err )
}
i .Port = value
}
return nil
}
func (i *IPPort ) GetIpv4 () (value int ) {
if i == nil {
return
}
return i .Ipv4
}
func (i *IPPort ) GetPort () (value int ) {
if i == nil {
return
}
return i .Port
}
type IPPortSecret struct {
Ipv4 int
Port int
Secret []byte
}
const IPPortSecretTypeID = 0x37982646
func (i IPPortSecret ) construct () IPPortClass { return &i }
var (
_ bin .Encoder = &IPPortSecret {}
_ bin .Decoder = &IPPortSecret {}
_ bin .BareEncoder = &IPPortSecret {}
_ bin .BareDecoder = &IPPortSecret {}
_ IPPortClass = &IPPortSecret {}
)
func (i *IPPortSecret ) Zero () bool {
if i == nil {
return true
}
if !(i .Ipv4 == 0 ) {
return false
}
if !(i .Port == 0 ) {
return false
}
if !(i .Secret == nil ) {
return false
}
return true
}
func (i *IPPortSecret ) String () string {
if i == nil {
return "IPPortSecret(nil)"
}
type Alias IPPortSecret
return fmt .Sprintf ("IPPortSecret%+v" , Alias (*i ))
}
func (i *IPPortSecret ) FillFrom (from interface {
GetIpv4 () (value int )
GetPort () (value int )
GetSecret () (value []byte )
}) {
i .Ipv4 = from .GetIpv4 ()
i .Port = from .GetPort ()
i .Secret = from .GetSecret ()
}
func (*IPPortSecret ) TypeID () uint32 {
return IPPortSecretTypeID
}
func (*IPPortSecret ) TypeName () string {
return "ipPortSecret"
}
func (i *IPPortSecret ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "ipPortSecret" ,
ID : IPPortSecretTypeID ,
}
if i == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "Ipv4" ,
SchemaName : "ipv4" ,
},
{
Name : "Port" ,
SchemaName : "port" ,
},
{
Name : "Secret" ,
SchemaName : "secret" ,
},
}
return typ
}
func (i *IPPortSecret ) Encode (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't encode ipPortSecret#37982646 as nil" )
}
b .PutID (IPPortSecretTypeID )
return i .EncodeBare (b )
}
func (i *IPPortSecret ) EncodeBare (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't encode ipPortSecret#37982646 as nil" )
}
b .PutInt (i .Ipv4 )
b .PutInt (i .Port )
b .PutBytes (i .Secret )
return nil
}
func (i *IPPortSecret ) Decode (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't decode ipPortSecret#37982646 to nil" )
}
if err := b .ConsumeID (IPPortSecretTypeID ); err != nil {
return fmt .Errorf ("unable to decode ipPortSecret#37982646: %w" , err )
}
return i .DecodeBare (b )
}
func (i *IPPortSecret ) DecodeBare (b *bin .Buffer ) error {
if i == nil {
return fmt .Errorf ("can't decode ipPortSecret#37982646 to nil" )
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode ipPortSecret#37982646: field ipv4: %w" , err )
}
i .Ipv4 = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode ipPortSecret#37982646: field port: %w" , err )
}
i .Port = value
}
{
value , err := b .Bytes ()
if err != nil {
return fmt .Errorf ("unable to decode ipPortSecret#37982646: field secret: %w" , err )
}
i .Secret = value
}
return nil
}
func (i *IPPortSecret ) GetIpv4 () (value int ) {
if i == nil {
return
}
return i .Ipv4
}
func (i *IPPortSecret ) GetPort () (value int ) {
if i == nil {
return
}
return i .Port
}
func (i *IPPortSecret ) GetSecret () (value []byte ) {
if i == nil {
return
}
return i .Secret
}
const IPPortClassName = "IpPort"
type IPPortClass interface {
bin .Encoder
bin .Decoder
bin .BareEncoder
bin .BareDecoder
construct () IPPortClass
TypeID () uint32
TypeName () string
String () string
Zero () bool
GetIpv4 () (value int )
GetPort () (value int )
}
func DecodeIPPort (buf *bin .Buffer ) (IPPortClass , error ) {
id , err := buf .PeekID ()
if err != nil {
return nil , err
}
switch id {
case IPPortTypeID :
v := IPPort {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode IPPortClass: %w" , err )
}
return &v , nil
case IPPortSecretTypeID :
v := IPPortSecret {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode IPPortClass: %w" , err )
}
return &v , nil
default :
return nil , fmt .Errorf ("unable to decode IPPortClass: %w" , bin .NewUnexpectedID (id ))
}
}
type IPPortBox struct {
IpPort IPPortClass
}
func (b *IPPortBox ) Decode (buf *bin .Buffer ) error {
if b == nil {
return fmt .Errorf ("unable to decode IPPortBox to nil" )
}
v , err := DecodeIPPort (buf )
if err != nil {
return fmt .Errorf ("unable to decode boxed value: %w" , err )
}
b .IpPort = v
return nil
}
func (b *IPPortBox ) Encode (buf *bin .Buffer ) error {
if b == nil || b .IpPort == nil {
return fmt .Errorf ("unable to encode IPPortClass as nil" )
}
return b .IpPort .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 .