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 EmojiStatusEmpty struct {
}
const EmojiStatusEmptyTypeID = 0x2de11aae
func (e EmojiStatusEmpty ) construct () EmojiStatusClass { return &e }
var (
_ bin .Encoder = &EmojiStatusEmpty {}
_ bin .Decoder = &EmojiStatusEmpty {}
_ bin .BareEncoder = &EmojiStatusEmpty {}
_ bin .BareDecoder = &EmojiStatusEmpty {}
_ EmojiStatusClass = &EmojiStatusEmpty {}
)
func (e *EmojiStatusEmpty ) Zero () bool {
if e == nil {
return true
}
return true
}
func (e *EmojiStatusEmpty ) String () string {
if e == nil {
return "EmojiStatusEmpty(nil)"
}
type Alias EmojiStatusEmpty
return fmt .Sprintf ("EmojiStatusEmpty%+v" , Alias (*e ))
}
func (*EmojiStatusEmpty ) TypeID () uint32 {
return EmojiStatusEmptyTypeID
}
func (*EmojiStatusEmpty ) TypeName () string {
return "emojiStatusEmpty"
}
func (e *EmojiStatusEmpty ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "emojiStatusEmpty" ,
ID : EmojiStatusEmptyTypeID ,
}
if e == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {}
return typ
}
func (e *EmojiStatusEmpty ) Encode (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't encode emojiStatusEmpty#2de11aae as nil" )
}
b .PutID (EmojiStatusEmptyTypeID )
return e .EncodeBare (b )
}
func (e *EmojiStatusEmpty ) EncodeBare (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't encode emojiStatusEmpty#2de11aae as nil" )
}
return nil
}
func (e *EmojiStatusEmpty ) Decode (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't decode emojiStatusEmpty#2de11aae to nil" )
}
if err := b .ConsumeID (EmojiStatusEmptyTypeID ); err != nil {
return fmt .Errorf ("unable to decode emojiStatusEmpty#2de11aae: %w" , err )
}
return e .DecodeBare (b )
}
func (e *EmojiStatusEmpty ) DecodeBare (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't decode emojiStatusEmpty#2de11aae to nil" )
}
return nil
}
type EmojiStatus struct {
DocumentID int64
}
const EmojiStatusTypeID = 0x929b619d
func (e EmojiStatus ) construct () EmojiStatusClass { return &e }
var (
_ bin .Encoder = &EmojiStatus {}
_ bin .Decoder = &EmojiStatus {}
_ bin .BareEncoder = &EmojiStatus {}
_ bin .BareDecoder = &EmojiStatus {}
_ EmojiStatusClass = &EmojiStatus {}
)
func (e *EmojiStatus ) Zero () bool {
if e == nil {
return true
}
if !(e .DocumentID == 0 ) {
return false
}
return true
}
func (e *EmojiStatus ) String () string {
if e == nil {
return "EmojiStatus(nil)"
}
type Alias EmojiStatus
return fmt .Sprintf ("EmojiStatus%+v" , Alias (*e ))
}
func (e *EmojiStatus ) FillFrom (from interface {
GetDocumentID () (value int64 )
}) {
e .DocumentID = from .GetDocumentID ()
}
func (*EmojiStatus ) TypeID () uint32 {
return EmojiStatusTypeID
}
func (*EmojiStatus ) TypeName () string {
return "emojiStatus"
}
func (e *EmojiStatus ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "emojiStatus" ,
ID : EmojiStatusTypeID ,
}
if e == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "DocumentID" ,
SchemaName : "document_id" ,
},
}
return typ
}
func (e *EmojiStatus ) Encode (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't encode emojiStatus#929b619d as nil" )
}
b .PutID (EmojiStatusTypeID )
return e .EncodeBare (b )
}
func (e *EmojiStatus ) EncodeBare (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't encode emojiStatus#929b619d as nil" )
}
b .PutLong (e .DocumentID )
return nil
}
func (e *EmojiStatus ) Decode (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't decode emojiStatus#929b619d to nil" )
}
if err := b .ConsumeID (EmojiStatusTypeID ); err != nil {
return fmt .Errorf ("unable to decode emojiStatus#929b619d: %w" , err )
}
return e .DecodeBare (b )
}
func (e *EmojiStatus ) DecodeBare (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't decode emojiStatus#929b619d to nil" )
}
{
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode emojiStatus#929b619d: field document_id: %w" , err )
}
e .DocumentID = value
}
return nil
}
func (e *EmojiStatus ) GetDocumentID () (value int64 ) {
if e == nil {
return
}
return e .DocumentID
}
type EmojiStatusUntil struct {
DocumentID int64
Until int
}
const EmojiStatusUntilTypeID = 0xfa30a8c7
func (e EmojiStatusUntil ) construct () EmojiStatusClass { return &e }
var (
_ bin .Encoder = &EmojiStatusUntil {}
_ bin .Decoder = &EmojiStatusUntil {}
_ bin .BareEncoder = &EmojiStatusUntil {}
_ bin .BareDecoder = &EmojiStatusUntil {}
_ EmojiStatusClass = &EmojiStatusUntil {}
)
func (e *EmojiStatusUntil ) Zero () bool {
if e == nil {
return true
}
if !(e .DocumentID == 0 ) {
return false
}
if !(e .Until == 0 ) {
return false
}
return true
}
func (e *EmojiStatusUntil ) String () string {
if e == nil {
return "EmojiStatusUntil(nil)"
}
type Alias EmojiStatusUntil
return fmt .Sprintf ("EmojiStatusUntil%+v" , Alias (*e ))
}
func (e *EmojiStatusUntil ) FillFrom (from interface {
GetDocumentID () (value int64 )
GetUntil () (value int )
}) {
e .DocumentID = from .GetDocumentID ()
e .Until = from .GetUntil ()
}
func (*EmojiStatusUntil ) TypeID () uint32 {
return EmojiStatusUntilTypeID
}
func (*EmojiStatusUntil ) TypeName () string {
return "emojiStatusUntil"
}
func (e *EmojiStatusUntil ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "emojiStatusUntil" ,
ID : EmojiStatusUntilTypeID ,
}
if e == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "DocumentID" ,
SchemaName : "document_id" ,
},
{
Name : "Until" ,
SchemaName : "until" ,
},
}
return typ
}
func (e *EmojiStatusUntil ) Encode (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't encode emojiStatusUntil#fa30a8c7 as nil" )
}
b .PutID (EmojiStatusUntilTypeID )
return e .EncodeBare (b )
}
func (e *EmojiStatusUntil ) EncodeBare (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't encode emojiStatusUntil#fa30a8c7 as nil" )
}
b .PutLong (e .DocumentID )
b .PutInt (e .Until )
return nil
}
func (e *EmojiStatusUntil ) Decode (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't decode emojiStatusUntil#fa30a8c7 to nil" )
}
if err := b .ConsumeID (EmojiStatusUntilTypeID ); err != nil {
return fmt .Errorf ("unable to decode emojiStatusUntil#fa30a8c7: %w" , err )
}
return e .DecodeBare (b )
}
func (e *EmojiStatusUntil ) DecodeBare (b *bin .Buffer ) error {
if e == nil {
return fmt .Errorf ("can't decode emojiStatusUntil#fa30a8c7 to nil" )
}
{
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode emojiStatusUntil#fa30a8c7: field document_id: %w" , err )
}
e .DocumentID = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode emojiStatusUntil#fa30a8c7: field until: %w" , err )
}
e .Until = value
}
return nil
}
func (e *EmojiStatusUntil ) GetDocumentID () (value int64 ) {
if e == nil {
return
}
return e .DocumentID
}
func (e *EmojiStatusUntil ) GetUntil () (value int ) {
if e == nil {
return
}
return e .Until
}
const EmojiStatusClassName = "EmojiStatus"
type EmojiStatusClass interface {
bin .Encoder
bin .Decoder
bin .BareEncoder
bin .BareDecoder
construct () EmojiStatusClass
TypeID () uint32
TypeName () string
String () string
Zero () bool
AsNotEmpty () (NotEmptyEmojiStatus , bool )
}
type NotEmptyEmojiStatus interface {
bin .Encoder
bin .Decoder
bin .BareEncoder
bin .BareDecoder
construct () EmojiStatusClass
TypeID () uint32
TypeName () string
String () string
Zero () bool
GetDocumentID () (value int64 )
}
func (e *EmojiStatusEmpty ) AsNotEmpty () (NotEmptyEmojiStatus , bool ) {
value , ok := (EmojiStatusClass (e )).(NotEmptyEmojiStatus )
return value , ok
}
func (e *EmojiStatus ) AsNotEmpty () (NotEmptyEmojiStatus , bool ) {
value , ok := (EmojiStatusClass (e )).(NotEmptyEmojiStatus )
return value , ok
}
func (e *EmojiStatusUntil ) AsNotEmpty () (NotEmptyEmojiStatus , bool ) {
value , ok := (EmojiStatusClass (e )).(NotEmptyEmojiStatus )
return value , ok
}
func DecodeEmojiStatus (buf *bin .Buffer ) (EmojiStatusClass , error ) {
id , err := buf .PeekID ()
if err != nil {
return nil , err
}
switch id {
case EmojiStatusEmptyTypeID :
v := EmojiStatusEmpty {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode EmojiStatusClass: %w" , err )
}
return &v , nil
case EmojiStatusTypeID :
v := EmojiStatus {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode EmojiStatusClass: %w" , err )
}
return &v , nil
case EmojiStatusUntilTypeID :
v := EmojiStatusUntil {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode EmojiStatusClass: %w" , err )
}
return &v , nil
default :
return nil , fmt .Errorf ("unable to decode EmojiStatusClass: %w" , bin .NewUnexpectedID (id ))
}
}
type EmojiStatusBox struct {
EmojiStatus EmojiStatusClass
}
func (b *EmojiStatusBox ) Decode (buf *bin .Buffer ) error {
if b == nil {
return fmt .Errorf ("unable to decode EmojiStatusBox to nil" )
}
v , err := DecodeEmojiStatus (buf )
if err != nil {
return fmt .Errorf ("unable to decode boxed value: %w" , err )
}
b .EmojiStatus = v
return nil
}
func (b *EmojiStatusBox ) Encode (buf *bin .Buffer ) error {
if b == nil || b .EmojiStatus == nil {
return fmt .Errorf ("unable to encode EmojiStatusClass as nil" )
}
return b .EmojiStatus .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 .