// Code generated by gotdgen, DO NOT EDIT. package tdapi import ( "context" "errors" "fmt" "sort" "strings" "go.uber.org/multierr" "go.mau.fi/mautrix-telegram/pkg/gotd/bin" "go.mau.fi/mautrix-telegram/pkg/gotd/tdjson" "go.mau.fi/mautrix-telegram/pkg/gotd/tdp" "go.mau.fi/mautrix-telegram/pkg/gotd/tgerr" ) // No-op definition for keeping imports. var ( _ = bin.Buffer{} _ = context.Background() _ = fmt.Stringer(nil) _ = strings.Builder{} _ = errors.Is _ = multierr.AppendInto _ = sort.Ints _ = tdp.Format _ = tgerr.Error{} _ = tdjson.Encoder{} ) // AuthorizationStateWaitTdlibParameters represents TL type `authorizationStateWaitTdlibParameters#35ecf25c`. type AuthorizationStateWaitTdlibParameters struct { } // AuthorizationStateWaitTdlibParametersTypeID is TL type id of AuthorizationStateWaitTdlibParameters. const AuthorizationStateWaitTdlibParametersTypeID = 0x35ecf25c // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitTdlibParameters) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitTdlibParameters. var ( _ bin.Encoder = &AuthorizationStateWaitTdlibParameters{} _ bin.Decoder = &AuthorizationStateWaitTdlibParameters{} _ bin.BareEncoder = &AuthorizationStateWaitTdlibParameters{} _ bin.BareDecoder = &AuthorizationStateWaitTdlibParameters{} _ AuthorizationStateClass = &AuthorizationStateWaitTdlibParameters{} ) func (a *AuthorizationStateWaitTdlibParameters) Zero() bool { if a == nil { return true } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitTdlibParameters) String() string { if a == nil { return "AuthorizationStateWaitTdlibParameters(nil)" } type Alias AuthorizationStateWaitTdlibParameters return fmt.Sprintf("AuthorizationStateWaitTdlibParameters%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitTdlibParameters) TypeID() uint32 { return AuthorizationStateWaitTdlibParametersTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitTdlibParameters) TypeName() string { return "authorizationStateWaitTdlibParameters" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitTdlibParameters) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitTdlibParameters", ID: AuthorizationStateWaitTdlibParametersTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{} return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitTdlibParameters) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitTdlibParameters#35ecf25c as nil") } b.PutID(AuthorizationStateWaitTdlibParametersTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitTdlibParameters) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitTdlibParameters#35ecf25c as nil") } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitTdlibParameters) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitTdlibParameters#35ecf25c to nil") } if err := b.ConsumeID(AuthorizationStateWaitTdlibParametersTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitTdlibParameters#35ecf25c: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitTdlibParameters) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitTdlibParameters#35ecf25c to nil") } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitTdlibParameters) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitTdlibParameters#35ecf25c as nil") } b.ObjStart() b.PutID("authorizationStateWaitTdlibParameters") b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitTdlibParameters) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitTdlibParameters#35ecf25c to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitTdlibParameters"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitTdlibParameters#35ecf25c: %w", err) } default: return b.Skip() } return nil }) } // AuthorizationStateWaitPhoneNumber represents TL type `authorizationStateWaitPhoneNumber#124354e3`. type AuthorizationStateWaitPhoneNumber struct { } // AuthorizationStateWaitPhoneNumberTypeID is TL type id of AuthorizationStateWaitPhoneNumber. const AuthorizationStateWaitPhoneNumberTypeID = 0x124354e3 // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitPhoneNumber) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitPhoneNumber. var ( _ bin.Encoder = &AuthorizationStateWaitPhoneNumber{} _ bin.Decoder = &AuthorizationStateWaitPhoneNumber{} _ bin.BareEncoder = &AuthorizationStateWaitPhoneNumber{} _ bin.BareDecoder = &AuthorizationStateWaitPhoneNumber{} _ AuthorizationStateClass = &AuthorizationStateWaitPhoneNumber{} ) func (a *AuthorizationStateWaitPhoneNumber) Zero() bool { if a == nil { return true } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitPhoneNumber) String() string { if a == nil { return "AuthorizationStateWaitPhoneNumber(nil)" } type Alias AuthorizationStateWaitPhoneNumber return fmt.Sprintf("AuthorizationStateWaitPhoneNumber%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitPhoneNumber) TypeID() uint32 { return AuthorizationStateWaitPhoneNumberTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitPhoneNumber) TypeName() string { return "authorizationStateWaitPhoneNumber" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitPhoneNumber) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitPhoneNumber", ID: AuthorizationStateWaitPhoneNumberTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{} return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitPhoneNumber) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPhoneNumber#124354e3 as nil") } b.PutID(AuthorizationStateWaitPhoneNumberTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitPhoneNumber) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPhoneNumber#124354e3 as nil") } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitPhoneNumber) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPhoneNumber#124354e3 to nil") } if err := b.ConsumeID(AuthorizationStateWaitPhoneNumberTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPhoneNumber#124354e3: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitPhoneNumber) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPhoneNumber#124354e3 to nil") } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitPhoneNumber) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPhoneNumber#124354e3 as nil") } b.ObjStart() b.PutID("authorizationStateWaitPhoneNumber") b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitPhoneNumber) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPhoneNumber#124354e3 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitPhoneNumber"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPhoneNumber#124354e3: %w", err) } default: return b.Skip() } return nil }) } // AuthorizationStateWaitPremiumPurchase represents TL type `authorizationStateWaitPremiumPurchase#cc977b41`. type AuthorizationStateWaitPremiumPurchase struct { // Identifier of the store product that must be bought StoreProductID string } // AuthorizationStateWaitPremiumPurchaseTypeID is TL type id of AuthorizationStateWaitPremiumPurchase. const AuthorizationStateWaitPremiumPurchaseTypeID = 0xcc977b41 // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitPremiumPurchase) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitPremiumPurchase. var ( _ bin.Encoder = &AuthorizationStateWaitPremiumPurchase{} _ bin.Decoder = &AuthorizationStateWaitPremiumPurchase{} _ bin.BareEncoder = &AuthorizationStateWaitPremiumPurchase{} _ bin.BareDecoder = &AuthorizationStateWaitPremiumPurchase{} _ AuthorizationStateClass = &AuthorizationStateWaitPremiumPurchase{} ) func (a *AuthorizationStateWaitPremiumPurchase) Zero() bool { if a == nil { return true } if !(a.StoreProductID == "") { return false } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitPremiumPurchase) String() string { if a == nil { return "AuthorizationStateWaitPremiumPurchase(nil)" } type Alias AuthorizationStateWaitPremiumPurchase return fmt.Sprintf("AuthorizationStateWaitPremiumPurchase%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitPremiumPurchase) TypeID() uint32 { return AuthorizationStateWaitPremiumPurchaseTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitPremiumPurchase) TypeName() string { return "authorizationStateWaitPremiumPurchase" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitPremiumPurchase) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitPremiumPurchase", ID: AuthorizationStateWaitPremiumPurchaseTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "StoreProductID", SchemaName: "store_product_id", }, } return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitPremiumPurchase) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPremiumPurchase#cc977b41 as nil") } b.PutID(AuthorizationStateWaitPremiumPurchaseTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitPremiumPurchase) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPremiumPurchase#cc977b41 as nil") } b.PutString(a.StoreProductID) return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitPremiumPurchase) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPremiumPurchase#cc977b41 to nil") } if err := b.ConsumeID(AuthorizationStateWaitPremiumPurchaseTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPremiumPurchase#cc977b41: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitPremiumPurchase) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPremiumPurchase#cc977b41 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPremiumPurchase#cc977b41: field store_product_id: %w", err) } a.StoreProductID = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitPremiumPurchase) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPremiumPurchase#cc977b41 as nil") } b.ObjStart() b.PutID("authorizationStateWaitPremiumPurchase") b.Comma() b.FieldStart("store_product_id") b.PutString(a.StoreProductID) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitPremiumPurchase) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPremiumPurchase#cc977b41 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitPremiumPurchase"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPremiumPurchase#cc977b41: %w", err) } case "store_product_id": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPremiumPurchase#cc977b41: field store_product_id: %w", err) } a.StoreProductID = value default: return b.Skip() } return nil }) } // GetStoreProductID returns value of StoreProductID field. func (a *AuthorizationStateWaitPremiumPurchase) GetStoreProductID() (value string) { if a == nil { return } return a.StoreProductID } // AuthorizationStateWaitEmailAddress represents TL type `authorizationStateWaitEmailAddress#3e0471c7`. type AuthorizationStateWaitEmailAddress struct { // True, if authorization through Apple ID is allowed AllowAppleID bool // True, if authorization through Google ID is allowed AllowGoogleID bool } // AuthorizationStateWaitEmailAddressTypeID is TL type id of AuthorizationStateWaitEmailAddress. const AuthorizationStateWaitEmailAddressTypeID = 0x3e0471c7 // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitEmailAddress) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitEmailAddress. var ( _ bin.Encoder = &AuthorizationStateWaitEmailAddress{} _ bin.Decoder = &AuthorizationStateWaitEmailAddress{} _ bin.BareEncoder = &AuthorizationStateWaitEmailAddress{} _ bin.BareDecoder = &AuthorizationStateWaitEmailAddress{} _ AuthorizationStateClass = &AuthorizationStateWaitEmailAddress{} ) func (a *AuthorizationStateWaitEmailAddress) Zero() bool { if a == nil { return true } if !(a.AllowAppleID == false) { return false } if !(a.AllowGoogleID == false) { return false } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitEmailAddress) String() string { if a == nil { return "AuthorizationStateWaitEmailAddress(nil)" } type Alias AuthorizationStateWaitEmailAddress return fmt.Sprintf("AuthorizationStateWaitEmailAddress%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitEmailAddress) TypeID() uint32 { return AuthorizationStateWaitEmailAddressTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitEmailAddress) TypeName() string { return "authorizationStateWaitEmailAddress" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitEmailAddress) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitEmailAddress", ID: AuthorizationStateWaitEmailAddressTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "AllowAppleID", SchemaName: "allow_apple_id", }, { Name: "AllowGoogleID", SchemaName: "allow_google_id", }, } return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitEmailAddress) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitEmailAddress#3e0471c7 as nil") } b.PutID(AuthorizationStateWaitEmailAddressTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitEmailAddress) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitEmailAddress#3e0471c7 as nil") } b.PutBool(a.AllowAppleID) b.PutBool(a.AllowGoogleID) return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitEmailAddress) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitEmailAddress#3e0471c7 to nil") } if err := b.ConsumeID(AuthorizationStateWaitEmailAddressTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailAddress#3e0471c7: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitEmailAddress) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitEmailAddress#3e0471c7 to nil") } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailAddress#3e0471c7: field allow_apple_id: %w", err) } a.AllowAppleID = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailAddress#3e0471c7: field allow_google_id: %w", err) } a.AllowGoogleID = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitEmailAddress) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitEmailAddress#3e0471c7 as nil") } b.ObjStart() b.PutID("authorizationStateWaitEmailAddress") b.Comma() b.FieldStart("allow_apple_id") b.PutBool(a.AllowAppleID) b.Comma() b.FieldStart("allow_google_id") b.PutBool(a.AllowGoogleID) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitEmailAddress) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitEmailAddress#3e0471c7 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitEmailAddress"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailAddress#3e0471c7: %w", err) } case "allow_apple_id": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailAddress#3e0471c7: field allow_apple_id: %w", err) } a.AllowAppleID = value case "allow_google_id": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailAddress#3e0471c7: field allow_google_id: %w", err) } a.AllowGoogleID = value default: return b.Skip() } return nil }) } // GetAllowAppleID returns value of AllowAppleID field. func (a *AuthorizationStateWaitEmailAddress) GetAllowAppleID() (value bool) { if a == nil { return } return a.AllowAppleID } // GetAllowGoogleID returns value of AllowGoogleID field. func (a *AuthorizationStateWaitEmailAddress) GetAllowGoogleID() (value bool) { if a == nil { return } return a.AllowGoogleID } // AuthorizationStateWaitEmailCode represents TL type `authorizationStateWaitEmailCode#909f025b`. type AuthorizationStateWaitEmailCode struct { // True, if authorization through Apple ID is allowed AllowAppleID bool // True, if authorization through Google ID is allowed AllowGoogleID bool // Information about the sent authentication code CodeInfo EmailAddressAuthenticationCodeInfo // Reset state of the email address; may be null if the email address can't be reset EmailAddressResetState EmailAddressResetStateClass } // AuthorizationStateWaitEmailCodeTypeID is TL type id of AuthorizationStateWaitEmailCode. const AuthorizationStateWaitEmailCodeTypeID = 0x909f025b // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitEmailCode) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitEmailCode. var ( _ bin.Encoder = &AuthorizationStateWaitEmailCode{} _ bin.Decoder = &AuthorizationStateWaitEmailCode{} _ bin.BareEncoder = &AuthorizationStateWaitEmailCode{} _ bin.BareDecoder = &AuthorizationStateWaitEmailCode{} _ AuthorizationStateClass = &AuthorizationStateWaitEmailCode{} ) func (a *AuthorizationStateWaitEmailCode) Zero() bool { if a == nil { return true } if !(a.AllowAppleID == false) { return false } if !(a.AllowGoogleID == false) { return false } if !(a.CodeInfo.Zero()) { return false } if !(a.EmailAddressResetState == nil) { return false } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitEmailCode) String() string { if a == nil { return "AuthorizationStateWaitEmailCode(nil)" } type Alias AuthorizationStateWaitEmailCode return fmt.Sprintf("AuthorizationStateWaitEmailCode%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitEmailCode) TypeID() uint32 { return AuthorizationStateWaitEmailCodeTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitEmailCode) TypeName() string { return "authorizationStateWaitEmailCode" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitEmailCode) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitEmailCode", ID: AuthorizationStateWaitEmailCodeTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "AllowAppleID", SchemaName: "allow_apple_id", }, { Name: "AllowGoogleID", SchemaName: "allow_google_id", }, { Name: "CodeInfo", SchemaName: "code_info", }, { Name: "EmailAddressResetState", SchemaName: "email_address_reset_state", }, } return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitEmailCode) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitEmailCode#909f025b as nil") } b.PutID(AuthorizationStateWaitEmailCodeTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitEmailCode) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitEmailCode#909f025b as nil") } b.PutBool(a.AllowAppleID) b.PutBool(a.AllowGoogleID) if err := a.CodeInfo.Encode(b); err != nil { return fmt.Errorf("unable to encode authorizationStateWaitEmailCode#909f025b: field code_info: %w", err) } if a.EmailAddressResetState == nil { return fmt.Errorf("unable to encode authorizationStateWaitEmailCode#909f025b: field email_address_reset_state is nil") } if err := a.EmailAddressResetState.Encode(b); err != nil { return fmt.Errorf("unable to encode authorizationStateWaitEmailCode#909f025b: field email_address_reset_state: %w", err) } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitEmailCode) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitEmailCode#909f025b to nil") } if err := b.ConsumeID(AuthorizationStateWaitEmailCodeTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitEmailCode) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitEmailCode#909f025b to nil") } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: field allow_apple_id: %w", err) } a.AllowAppleID = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: field allow_google_id: %w", err) } a.AllowGoogleID = value } { if err := a.CodeInfo.Decode(b); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: field code_info: %w", err) } } { value, err := DecodeEmailAddressResetState(b) if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: field email_address_reset_state: %w", err) } a.EmailAddressResetState = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitEmailCode) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitEmailCode#909f025b as nil") } b.ObjStart() b.PutID("authorizationStateWaitEmailCode") b.Comma() b.FieldStart("allow_apple_id") b.PutBool(a.AllowAppleID) b.Comma() b.FieldStart("allow_google_id") b.PutBool(a.AllowGoogleID) b.Comma() b.FieldStart("code_info") if err := a.CodeInfo.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode authorizationStateWaitEmailCode#909f025b: field code_info: %w", err) } b.Comma() b.FieldStart("email_address_reset_state") if a.EmailAddressResetState == nil { return fmt.Errorf("unable to encode authorizationStateWaitEmailCode#909f025b: field email_address_reset_state is nil") } if err := a.EmailAddressResetState.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode authorizationStateWaitEmailCode#909f025b: field email_address_reset_state: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitEmailCode) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitEmailCode#909f025b to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitEmailCode"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: %w", err) } case "allow_apple_id": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: field allow_apple_id: %w", err) } a.AllowAppleID = value case "allow_google_id": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: field allow_google_id: %w", err) } a.AllowGoogleID = value case "code_info": if err := a.CodeInfo.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: field code_info: %w", err) } case "email_address_reset_state": value, err := DecodeTDLibJSONEmailAddressResetState(b) if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitEmailCode#909f025b: field email_address_reset_state: %w", err) } a.EmailAddressResetState = value default: return b.Skip() } return nil }) } // GetAllowAppleID returns value of AllowAppleID field. func (a *AuthorizationStateWaitEmailCode) GetAllowAppleID() (value bool) { if a == nil { return } return a.AllowAppleID } // GetAllowGoogleID returns value of AllowGoogleID field. func (a *AuthorizationStateWaitEmailCode) GetAllowGoogleID() (value bool) { if a == nil { return } return a.AllowGoogleID } // GetCodeInfo returns value of CodeInfo field. func (a *AuthorizationStateWaitEmailCode) GetCodeInfo() (value EmailAddressAuthenticationCodeInfo) { if a == nil { return } return a.CodeInfo } // GetEmailAddressResetState returns value of EmailAddressResetState field. func (a *AuthorizationStateWaitEmailCode) GetEmailAddressResetState() (value EmailAddressResetStateClass) { if a == nil { return } return a.EmailAddressResetState } // AuthorizationStateWaitCode represents TL type `authorizationStateWaitCode#3234501`. type AuthorizationStateWaitCode struct { // Information about the authorization code that was sent CodeInfo AuthenticationCodeInfo } // AuthorizationStateWaitCodeTypeID is TL type id of AuthorizationStateWaitCode. const AuthorizationStateWaitCodeTypeID = 0x3234501 // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitCode) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitCode. var ( _ bin.Encoder = &AuthorizationStateWaitCode{} _ bin.Decoder = &AuthorizationStateWaitCode{} _ bin.BareEncoder = &AuthorizationStateWaitCode{} _ bin.BareDecoder = &AuthorizationStateWaitCode{} _ AuthorizationStateClass = &AuthorizationStateWaitCode{} ) func (a *AuthorizationStateWaitCode) Zero() bool { if a == nil { return true } if !(a.CodeInfo.Zero()) { return false } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitCode) String() string { if a == nil { return "AuthorizationStateWaitCode(nil)" } type Alias AuthorizationStateWaitCode return fmt.Sprintf("AuthorizationStateWaitCode%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitCode) TypeID() uint32 { return AuthorizationStateWaitCodeTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitCode) TypeName() string { return "authorizationStateWaitCode" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitCode) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitCode", ID: AuthorizationStateWaitCodeTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "CodeInfo", SchemaName: "code_info", }, } return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitCode) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitCode#3234501 as nil") } b.PutID(AuthorizationStateWaitCodeTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitCode) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitCode#3234501 as nil") } if err := a.CodeInfo.Encode(b); err != nil { return fmt.Errorf("unable to encode authorizationStateWaitCode#3234501: field code_info: %w", err) } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitCode) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitCode#3234501 to nil") } if err := b.ConsumeID(AuthorizationStateWaitCodeTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitCode#3234501: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitCode) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitCode#3234501 to nil") } { if err := a.CodeInfo.Decode(b); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitCode#3234501: field code_info: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitCode) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitCode#3234501 as nil") } b.ObjStart() b.PutID("authorizationStateWaitCode") b.Comma() b.FieldStart("code_info") if err := a.CodeInfo.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode authorizationStateWaitCode#3234501: field code_info: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitCode) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitCode#3234501 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitCode"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitCode#3234501: %w", err) } case "code_info": if err := a.CodeInfo.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitCode#3234501: field code_info: %w", err) } default: return b.Skip() } return nil }) } // GetCodeInfo returns value of CodeInfo field. func (a *AuthorizationStateWaitCode) GetCodeInfo() (value AuthenticationCodeInfo) { if a == nil { return } return a.CodeInfo } // AuthorizationStateWaitOtherDeviceConfirmation represents TL type `authorizationStateWaitOtherDeviceConfirmation#334518ea`. type AuthorizationStateWaitOtherDeviceConfirmation struct { // A tg:// URL for the QR code. The link will be updated frequently Link string } // AuthorizationStateWaitOtherDeviceConfirmationTypeID is TL type id of AuthorizationStateWaitOtherDeviceConfirmation. const AuthorizationStateWaitOtherDeviceConfirmationTypeID = 0x334518ea // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitOtherDeviceConfirmation) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitOtherDeviceConfirmation. var ( _ bin.Encoder = &AuthorizationStateWaitOtherDeviceConfirmation{} _ bin.Decoder = &AuthorizationStateWaitOtherDeviceConfirmation{} _ bin.BareEncoder = &AuthorizationStateWaitOtherDeviceConfirmation{} _ bin.BareDecoder = &AuthorizationStateWaitOtherDeviceConfirmation{} _ AuthorizationStateClass = &AuthorizationStateWaitOtherDeviceConfirmation{} ) func (a *AuthorizationStateWaitOtherDeviceConfirmation) Zero() bool { if a == nil { return true } if !(a.Link == "") { return false } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitOtherDeviceConfirmation) String() string { if a == nil { return "AuthorizationStateWaitOtherDeviceConfirmation(nil)" } type Alias AuthorizationStateWaitOtherDeviceConfirmation return fmt.Sprintf("AuthorizationStateWaitOtherDeviceConfirmation%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitOtherDeviceConfirmation) TypeID() uint32 { return AuthorizationStateWaitOtherDeviceConfirmationTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitOtherDeviceConfirmation) TypeName() string { return "authorizationStateWaitOtherDeviceConfirmation" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitOtherDeviceConfirmation) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitOtherDeviceConfirmation", ID: AuthorizationStateWaitOtherDeviceConfirmationTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Link", SchemaName: "link", }, } return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitOtherDeviceConfirmation) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitOtherDeviceConfirmation#334518ea as nil") } b.PutID(AuthorizationStateWaitOtherDeviceConfirmationTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitOtherDeviceConfirmation) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitOtherDeviceConfirmation#334518ea as nil") } b.PutString(a.Link) return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitOtherDeviceConfirmation) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitOtherDeviceConfirmation#334518ea to nil") } if err := b.ConsumeID(AuthorizationStateWaitOtherDeviceConfirmationTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitOtherDeviceConfirmation#334518ea: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitOtherDeviceConfirmation) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitOtherDeviceConfirmation#334518ea to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitOtherDeviceConfirmation#334518ea: field link: %w", err) } a.Link = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitOtherDeviceConfirmation) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitOtherDeviceConfirmation#334518ea as nil") } b.ObjStart() b.PutID("authorizationStateWaitOtherDeviceConfirmation") b.Comma() b.FieldStart("link") b.PutString(a.Link) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitOtherDeviceConfirmation) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitOtherDeviceConfirmation#334518ea to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitOtherDeviceConfirmation"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitOtherDeviceConfirmation#334518ea: %w", err) } case "link": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitOtherDeviceConfirmation#334518ea: field link: %w", err) } a.Link = value default: return b.Skip() } return nil }) } // GetLink returns value of Link field. func (a *AuthorizationStateWaitOtherDeviceConfirmation) GetLink() (value string) { if a == nil { return } return a.Link } // AuthorizationStateWaitRegistration represents TL type `authorizationStateWaitRegistration#20cdaeaf`. type AuthorizationStateWaitRegistration struct { // Telegram terms of service TermsOfService TermsOfService } // AuthorizationStateWaitRegistrationTypeID is TL type id of AuthorizationStateWaitRegistration. const AuthorizationStateWaitRegistrationTypeID = 0x20cdaeaf // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitRegistration) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitRegistration. var ( _ bin.Encoder = &AuthorizationStateWaitRegistration{} _ bin.Decoder = &AuthorizationStateWaitRegistration{} _ bin.BareEncoder = &AuthorizationStateWaitRegistration{} _ bin.BareDecoder = &AuthorizationStateWaitRegistration{} _ AuthorizationStateClass = &AuthorizationStateWaitRegistration{} ) func (a *AuthorizationStateWaitRegistration) Zero() bool { if a == nil { return true } if !(a.TermsOfService.Zero()) { return false } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitRegistration) String() string { if a == nil { return "AuthorizationStateWaitRegistration(nil)" } type Alias AuthorizationStateWaitRegistration return fmt.Sprintf("AuthorizationStateWaitRegistration%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitRegistration) TypeID() uint32 { return AuthorizationStateWaitRegistrationTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitRegistration) TypeName() string { return "authorizationStateWaitRegistration" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitRegistration) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitRegistration", ID: AuthorizationStateWaitRegistrationTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "TermsOfService", SchemaName: "terms_of_service", }, } return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitRegistration) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitRegistration#20cdaeaf as nil") } b.PutID(AuthorizationStateWaitRegistrationTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitRegistration) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitRegistration#20cdaeaf as nil") } if err := a.TermsOfService.Encode(b); err != nil { return fmt.Errorf("unable to encode authorizationStateWaitRegistration#20cdaeaf: field terms_of_service: %w", err) } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitRegistration) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitRegistration#20cdaeaf to nil") } if err := b.ConsumeID(AuthorizationStateWaitRegistrationTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitRegistration#20cdaeaf: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitRegistration) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitRegistration#20cdaeaf to nil") } { if err := a.TermsOfService.Decode(b); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitRegistration#20cdaeaf: field terms_of_service: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitRegistration) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitRegistration#20cdaeaf as nil") } b.ObjStart() b.PutID("authorizationStateWaitRegistration") b.Comma() b.FieldStart("terms_of_service") if err := a.TermsOfService.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode authorizationStateWaitRegistration#20cdaeaf: field terms_of_service: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitRegistration) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitRegistration#20cdaeaf to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitRegistration"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitRegistration#20cdaeaf: %w", err) } case "terms_of_service": if err := a.TermsOfService.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitRegistration#20cdaeaf: field terms_of_service: %w", err) } default: return b.Skip() } return nil }) } // GetTermsOfService returns value of TermsOfService field. func (a *AuthorizationStateWaitRegistration) GetTermsOfService() (value TermsOfService) { if a == nil { return } return a.TermsOfService } // AuthorizationStateWaitPassword represents TL type `authorizationStateWaitPassword#6b09dce`. type AuthorizationStateWaitPassword struct { // Hint for the password; may be empty PasswordHint string // True, if a recovery email address has been set up HasRecoveryEmailAddress bool // True, if some Telegram Passport elements were saved HasPassportData bool // Pattern of the email address to which the recovery email was sent; empty until a // recovery email has been sent RecoveryEmailAddressPattern string } // AuthorizationStateWaitPasswordTypeID is TL type id of AuthorizationStateWaitPassword. const AuthorizationStateWaitPasswordTypeID = 0x6b09dce // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateWaitPassword) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateWaitPassword. var ( _ bin.Encoder = &AuthorizationStateWaitPassword{} _ bin.Decoder = &AuthorizationStateWaitPassword{} _ bin.BareEncoder = &AuthorizationStateWaitPassword{} _ bin.BareDecoder = &AuthorizationStateWaitPassword{} _ AuthorizationStateClass = &AuthorizationStateWaitPassword{} ) func (a *AuthorizationStateWaitPassword) Zero() bool { if a == nil { return true } if !(a.PasswordHint == "") { return false } if !(a.HasRecoveryEmailAddress == false) { return false } if !(a.HasPassportData == false) { return false } if !(a.RecoveryEmailAddressPattern == "") { return false } return true } // String implements fmt.Stringer. func (a *AuthorizationStateWaitPassword) String() string { if a == nil { return "AuthorizationStateWaitPassword(nil)" } type Alias AuthorizationStateWaitPassword return fmt.Sprintf("AuthorizationStateWaitPassword%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateWaitPassword) TypeID() uint32 { return AuthorizationStateWaitPasswordTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateWaitPassword) TypeName() string { return "authorizationStateWaitPassword" } // TypeInfo returns info about TL type. func (a *AuthorizationStateWaitPassword) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateWaitPassword", ID: AuthorizationStateWaitPasswordTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "PasswordHint", SchemaName: "password_hint", }, { Name: "HasRecoveryEmailAddress", SchemaName: "has_recovery_email_address", }, { Name: "HasPassportData", SchemaName: "has_passport_data", }, { Name: "RecoveryEmailAddressPattern", SchemaName: "recovery_email_address_pattern", }, } return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateWaitPassword) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPassword#6b09dce as nil") } b.PutID(AuthorizationStateWaitPasswordTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateWaitPassword) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPassword#6b09dce as nil") } b.PutString(a.PasswordHint) b.PutBool(a.HasRecoveryEmailAddress) b.PutBool(a.HasPassportData) b.PutString(a.RecoveryEmailAddressPattern) return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateWaitPassword) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPassword#6b09dce to nil") } if err := b.ConsumeID(AuthorizationStateWaitPasswordTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateWaitPassword) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPassword#6b09dce to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: field password_hint: %w", err) } a.PasswordHint = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: field has_recovery_email_address: %w", err) } a.HasRecoveryEmailAddress = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: field has_passport_data: %w", err) } a.HasPassportData = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: field recovery_email_address_pattern: %w", err) } a.RecoveryEmailAddressPattern = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateWaitPassword) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateWaitPassword#6b09dce as nil") } b.ObjStart() b.PutID("authorizationStateWaitPassword") b.Comma() b.FieldStart("password_hint") b.PutString(a.PasswordHint) b.Comma() b.FieldStart("has_recovery_email_address") b.PutBool(a.HasRecoveryEmailAddress) b.Comma() b.FieldStart("has_passport_data") b.PutBool(a.HasPassportData) b.Comma() b.FieldStart("recovery_email_address_pattern") b.PutString(a.RecoveryEmailAddressPattern) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateWaitPassword) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateWaitPassword#6b09dce to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateWaitPassword"); err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: %w", err) } case "password_hint": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: field password_hint: %w", err) } a.PasswordHint = value case "has_recovery_email_address": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: field has_recovery_email_address: %w", err) } a.HasRecoveryEmailAddress = value case "has_passport_data": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: field has_passport_data: %w", err) } a.HasPassportData = value case "recovery_email_address_pattern": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode authorizationStateWaitPassword#6b09dce: field recovery_email_address_pattern: %w", err) } a.RecoveryEmailAddressPattern = value default: return b.Skip() } return nil }) } // GetPasswordHint returns value of PasswordHint field. func (a *AuthorizationStateWaitPassword) GetPasswordHint() (value string) { if a == nil { return } return a.PasswordHint } // GetHasRecoveryEmailAddress returns value of HasRecoveryEmailAddress field. func (a *AuthorizationStateWaitPassword) GetHasRecoveryEmailAddress() (value bool) { if a == nil { return } return a.HasRecoveryEmailAddress } // GetHasPassportData returns value of HasPassportData field. func (a *AuthorizationStateWaitPassword) GetHasPassportData() (value bool) { if a == nil { return } return a.HasPassportData } // GetRecoveryEmailAddressPattern returns value of RecoveryEmailAddressPattern field. func (a *AuthorizationStateWaitPassword) GetRecoveryEmailAddressPattern() (value string) { if a == nil { return } return a.RecoveryEmailAddressPattern } // AuthorizationStateReady represents TL type `authorizationStateReady#92a21447`. type AuthorizationStateReady struct { } // AuthorizationStateReadyTypeID is TL type id of AuthorizationStateReady. const AuthorizationStateReadyTypeID = 0x92a21447 // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateReady) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateReady. var ( _ bin.Encoder = &AuthorizationStateReady{} _ bin.Decoder = &AuthorizationStateReady{} _ bin.BareEncoder = &AuthorizationStateReady{} _ bin.BareDecoder = &AuthorizationStateReady{} _ AuthorizationStateClass = &AuthorizationStateReady{} ) func (a *AuthorizationStateReady) Zero() bool { if a == nil { return true } return true } // String implements fmt.Stringer. func (a *AuthorizationStateReady) String() string { if a == nil { return "AuthorizationStateReady(nil)" } type Alias AuthorizationStateReady return fmt.Sprintf("AuthorizationStateReady%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateReady) TypeID() uint32 { return AuthorizationStateReadyTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateReady) TypeName() string { return "authorizationStateReady" } // TypeInfo returns info about TL type. func (a *AuthorizationStateReady) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateReady", ID: AuthorizationStateReadyTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{} return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateReady) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateReady#92a21447 as nil") } b.PutID(AuthorizationStateReadyTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateReady) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateReady#92a21447 as nil") } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateReady) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateReady#92a21447 to nil") } if err := b.ConsumeID(AuthorizationStateReadyTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateReady#92a21447: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateReady) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateReady#92a21447 to nil") } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateReady) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateReady#92a21447 as nil") } b.ObjStart() b.PutID("authorizationStateReady") b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateReady) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateReady#92a21447 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateReady"); err != nil { return fmt.Errorf("unable to decode authorizationStateReady#92a21447: %w", err) } default: return b.Skip() } return nil }) } // AuthorizationStateLoggingOut represents TL type `authorizationStateLoggingOut#934b576`. type AuthorizationStateLoggingOut struct { } // AuthorizationStateLoggingOutTypeID is TL type id of AuthorizationStateLoggingOut. const AuthorizationStateLoggingOutTypeID = 0x934b576 // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateLoggingOut) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateLoggingOut. var ( _ bin.Encoder = &AuthorizationStateLoggingOut{} _ bin.Decoder = &AuthorizationStateLoggingOut{} _ bin.BareEncoder = &AuthorizationStateLoggingOut{} _ bin.BareDecoder = &AuthorizationStateLoggingOut{} _ AuthorizationStateClass = &AuthorizationStateLoggingOut{} ) func (a *AuthorizationStateLoggingOut) Zero() bool { if a == nil { return true } return true } // String implements fmt.Stringer. func (a *AuthorizationStateLoggingOut) String() string { if a == nil { return "AuthorizationStateLoggingOut(nil)" } type Alias AuthorizationStateLoggingOut return fmt.Sprintf("AuthorizationStateLoggingOut%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateLoggingOut) TypeID() uint32 { return AuthorizationStateLoggingOutTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateLoggingOut) TypeName() string { return "authorizationStateLoggingOut" } // TypeInfo returns info about TL type. func (a *AuthorizationStateLoggingOut) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateLoggingOut", ID: AuthorizationStateLoggingOutTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{} return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateLoggingOut) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateLoggingOut#934b576 as nil") } b.PutID(AuthorizationStateLoggingOutTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateLoggingOut) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateLoggingOut#934b576 as nil") } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateLoggingOut) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateLoggingOut#934b576 to nil") } if err := b.ConsumeID(AuthorizationStateLoggingOutTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateLoggingOut#934b576: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateLoggingOut) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateLoggingOut#934b576 to nil") } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateLoggingOut) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateLoggingOut#934b576 as nil") } b.ObjStart() b.PutID("authorizationStateLoggingOut") b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateLoggingOut) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateLoggingOut#934b576 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateLoggingOut"); err != nil { return fmt.Errorf("unable to decode authorizationStateLoggingOut#934b576: %w", err) } default: return b.Skip() } return nil }) } // AuthorizationStateClosing represents TL type `authorizationStateClosing#1a93364f`. type AuthorizationStateClosing struct { } // AuthorizationStateClosingTypeID is TL type id of AuthorizationStateClosing. const AuthorizationStateClosingTypeID = 0x1a93364f // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateClosing) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateClosing. var ( _ bin.Encoder = &AuthorizationStateClosing{} _ bin.Decoder = &AuthorizationStateClosing{} _ bin.BareEncoder = &AuthorizationStateClosing{} _ bin.BareDecoder = &AuthorizationStateClosing{} _ AuthorizationStateClass = &AuthorizationStateClosing{} ) func (a *AuthorizationStateClosing) Zero() bool { if a == nil { return true } return true } // String implements fmt.Stringer. func (a *AuthorizationStateClosing) String() string { if a == nil { return "AuthorizationStateClosing(nil)" } type Alias AuthorizationStateClosing return fmt.Sprintf("AuthorizationStateClosing%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateClosing) TypeID() uint32 { return AuthorizationStateClosingTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateClosing) TypeName() string { return "authorizationStateClosing" } // TypeInfo returns info about TL type. func (a *AuthorizationStateClosing) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateClosing", ID: AuthorizationStateClosingTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{} return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateClosing) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateClosing#1a93364f as nil") } b.PutID(AuthorizationStateClosingTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateClosing) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateClosing#1a93364f as nil") } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateClosing) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateClosing#1a93364f to nil") } if err := b.ConsumeID(AuthorizationStateClosingTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateClosing#1a93364f: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateClosing) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateClosing#1a93364f to nil") } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateClosing) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateClosing#1a93364f as nil") } b.ObjStart() b.PutID("authorizationStateClosing") b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateClosing) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateClosing#1a93364f to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateClosing"); err != nil { return fmt.Errorf("unable to decode authorizationStateClosing#1a93364f: %w", err) } default: return b.Skip() } return nil }) } // AuthorizationStateClosed represents TL type `authorizationStateClosed#5af5a360`. type AuthorizationStateClosed struct { } // AuthorizationStateClosedTypeID is TL type id of AuthorizationStateClosed. const AuthorizationStateClosedTypeID = 0x5af5a360 // construct implements constructor of AuthorizationStateClass. func (a AuthorizationStateClosed) construct() AuthorizationStateClass { return &a } // Ensuring interfaces in compile-time for AuthorizationStateClosed. var ( _ bin.Encoder = &AuthorizationStateClosed{} _ bin.Decoder = &AuthorizationStateClosed{} _ bin.BareEncoder = &AuthorizationStateClosed{} _ bin.BareDecoder = &AuthorizationStateClosed{} _ AuthorizationStateClass = &AuthorizationStateClosed{} ) func (a *AuthorizationStateClosed) Zero() bool { if a == nil { return true } return true } // String implements fmt.Stringer. func (a *AuthorizationStateClosed) String() string { if a == nil { return "AuthorizationStateClosed(nil)" } type Alias AuthorizationStateClosed return fmt.Sprintf("AuthorizationStateClosed%+v", Alias(*a)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*AuthorizationStateClosed) TypeID() uint32 { return AuthorizationStateClosedTypeID } // TypeName returns name of type in TL schema. func (*AuthorizationStateClosed) TypeName() string { return "authorizationStateClosed" } // TypeInfo returns info about TL type. func (a *AuthorizationStateClosed) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "authorizationStateClosed", ID: AuthorizationStateClosedTypeID, } if a == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{} return typ } // Encode implements bin.Encoder. func (a *AuthorizationStateClosed) Encode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateClosed#5af5a360 as nil") } b.PutID(AuthorizationStateClosedTypeID) return a.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (a *AuthorizationStateClosed) EncodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't encode authorizationStateClosed#5af5a360 as nil") } return nil } // Decode implements bin.Decoder. func (a *AuthorizationStateClosed) Decode(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateClosed#5af5a360 to nil") } if err := b.ConsumeID(AuthorizationStateClosedTypeID); err != nil { return fmt.Errorf("unable to decode authorizationStateClosed#5af5a360: %w", err) } return a.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (a *AuthorizationStateClosed) DecodeBare(b *bin.Buffer) error { if a == nil { return fmt.Errorf("can't decode authorizationStateClosed#5af5a360 to nil") } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (a *AuthorizationStateClosed) EncodeTDLibJSON(b tdjson.Encoder) error { if a == nil { return fmt.Errorf("can't encode authorizationStateClosed#5af5a360 as nil") } b.ObjStart() b.PutID("authorizationStateClosed") b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (a *AuthorizationStateClosed) DecodeTDLibJSON(b tdjson.Decoder) error { if a == nil { return fmt.Errorf("can't decode authorizationStateClosed#5af5a360 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("authorizationStateClosed"); err != nil { return fmt.Errorf("unable to decode authorizationStateClosed#5af5a360: %w", err) } default: return b.Skip() } return nil }) } // AuthorizationStateClassName is schema name of AuthorizationStateClass. const AuthorizationStateClassName = "AuthorizationState" // AuthorizationStateClass represents AuthorizationState generic type. // // Example: // // g, err := tdapi.DecodeAuthorizationState(buf) // if err != nil { // panic(err) // } // switch v := g.(type) { // case *tdapi.AuthorizationStateWaitTdlibParameters: // authorizationStateWaitTdlibParameters#35ecf25c // case *tdapi.AuthorizationStateWaitPhoneNumber: // authorizationStateWaitPhoneNumber#124354e3 // case *tdapi.AuthorizationStateWaitPremiumPurchase: // authorizationStateWaitPremiumPurchase#cc977b41 // case *tdapi.AuthorizationStateWaitEmailAddress: // authorizationStateWaitEmailAddress#3e0471c7 // case *tdapi.AuthorizationStateWaitEmailCode: // authorizationStateWaitEmailCode#909f025b // case *tdapi.AuthorizationStateWaitCode: // authorizationStateWaitCode#3234501 // case *tdapi.AuthorizationStateWaitOtherDeviceConfirmation: // authorizationStateWaitOtherDeviceConfirmation#334518ea // case *tdapi.AuthorizationStateWaitRegistration: // authorizationStateWaitRegistration#20cdaeaf // case *tdapi.AuthorizationStateWaitPassword: // authorizationStateWaitPassword#6b09dce // case *tdapi.AuthorizationStateReady: // authorizationStateReady#92a21447 // case *tdapi.AuthorizationStateLoggingOut: // authorizationStateLoggingOut#934b576 // case *tdapi.AuthorizationStateClosing: // authorizationStateClosing#1a93364f // case *tdapi.AuthorizationStateClosed: // authorizationStateClosed#5af5a360 // default: panic(v) // } type AuthorizationStateClass interface { bin.Encoder bin.Decoder bin.BareEncoder bin.BareDecoder construct() AuthorizationStateClass // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. TypeID() uint32 // TypeName returns name of type in TL schema. TypeName() string // String implements fmt.Stringer. String() string // Zero returns true if current object has a zero value. Zero() bool EncodeTDLibJSON(b tdjson.Encoder) error DecodeTDLibJSON(b tdjson.Decoder) error } // DecodeAuthorizationState implements binary de-serialization for AuthorizationStateClass. func DecodeAuthorizationState(buf *bin.Buffer) (AuthorizationStateClass, error) { id, err := buf.PeekID() if err != nil { return nil, err } switch id { case AuthorizationStateWaitTdlibParametersTypeID: // Decoding authorizationStateWaitTdlibParameters#35ecf25c. v := AuthorizationStateWaitTdlibParameters{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateWaitPhoneNumberTypeID: // Decoding authorizationStateWaitPhoneNumber#124354e3. v := AuthorizationStateWaitPhoneNumber{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateWaitPremiumPurchaseTypeID: // Decoding authorizationStateWaitPremiumPurchase#cc977b41. v := AuthorizationStateWaitPremiumPurchase{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateWaitEmailAddressTypeID: // Decoding authorizationStateWaitEmailAddress#3e0471c7. v := AuthorizationStateWaitEmailAddress{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateWaitEmailCodeTypeID: // Decoding authorizationStateWaitEmailCode#909f025b. v := AuthorizationStateWaitEmailCode{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateWaitCodeTypeID: // Decoding authorizationStateWaitCode#3234501. v := AuthorizationStateWaitCode{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateWaitOtherDeviceConfirmationTypeID: // Decoding authorizationStateWaitOtherDeviceConfirmation#334518ea. v := AuthorizationStateWaitOtherDeviceConfirmation{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateWaitRegistrationTypeID: // Decoding authorizationStateWaitRegistration#20cdaeaf. v := AuthorizationStateWaitRegistration{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateWaitPasswordTypeID: // Decoding authorizationStateWaitPassword#6b09dce. v := AuthorizationStateWaitPassword{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateReadyTypeID: // Decoding authorizationStateReady#92a21447. v := AuthorizationStateReady{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateLoggingOutTypeID: // Decoding authorizationStateLoggingOut#934b576. v := AuthorizationStateLoggingOut{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateClosingTypeID: // Decoding authorizationStateClosing#1a93364f. v := AuthorizationStateClosing{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case AuthorizationStateClosedTypeID: // Decoding authorizationStateClosed#5af5a360. v := AuthorizationStateClosed{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil default: return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", bin.NewUnexpectedID(id)) } } // DecodeTDLibJSONAuthorizationState implements binary de-serialization for AuthorizationStateClass. func DecodeTDLibJSONAuthorizationState(buf tdjson.Decoder) (AuthorizationStateClass, error) { id, err := buf.FindTypeID() if err != nil { return nil, err } switch id { case "authorizationStateWaitTdlibParameters": // Decoding authorizationStateWaitTdlibParameters#35ecf25c. v := AuthorizationStateWaitTdlibParameters{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateWaitPhoneNumber": // Decoding authorizationStateWaitPhoneNumber#124354e3. v := AuthorizationStateWaitPhoneNumber{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateWaitPremiumPurchase": // Decoding authorizationStateWaitPremiumPurchase#cc977b41. v := AuthorizationStateWaitPremiumPurchase{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateWaitEmailAddress": // Decoding authorizationStateWaitEmailAddress#3e0471c7. v := AuthorizationStateWaitEmailAddress{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateWaitEmailCode": // Decoding authorizationStateWaitEmailCode#909f025b. v := AuthorizationStateWaitEmailCode{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateWaitCode": // Decoding authorizationStateWaitCode#3234501. v := AuthorizationStateWaitCode{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateWaitOtherDeviceConfirmation": // Decoding authorizationStateWaitOtherDeviceConfirmation#334518ea. v := AuthorizationStateWaitOtherDeviceConfirmation{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateWaitRegistration": // Decoding authorizationStateWaitRegistration#20cdaeaf. v := AuthorizationStateWaitRegistration{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateWaitPassword": // Decoding authorizationStateWaitPassword#6b09dce. v := AuthorizationStateWaitPassword{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateReady": // Decoding authorizationStateReady#92a21447. v := AuthorizationStateReady{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateLoggingOut": // Decoding authorizationStateLoggingOut#934b576. v := AuthorizationStateLoggingOut{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateClosing": // Decoding authorizationStateClosing#1a93364f. v := AuthorizationStateClosing{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil case "authorizationStateClosed": // Decoding authorizationStateClosed#5af5a360. v := AuthorizationStateClosed{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", err) } return &v, nil default: return nil, fmt.Errorf("unable to decode AuthorizationStateClass: %w", tdjson.NewUnexpectedID(id)) } } // AuthorizationState boxes the AuthorizationStateClass providing a helper. type AuthorizationStateBox struct { AuthorizationState AuthorizationStateClass } // Decode implements bin.Decoder for AuthorizationStateBox. func (b *AuthorizationStateBox) Decode(buf *bin.Buffer) error { if b == nil { return fmt.Errorf("unable to decode AuthorizationStateBox to nil") } v, err := DecodeAuthorizationState(buf) if err != nil { return fmt.Errorf("unable to decode boxed value: %w", err) } b.AuthorizationState = v return nil } // Encode implements bin.Encode for AuthorizationStateBox. func (b *AuthorizationStateBox) Encode(buf *bin.Buffer) error { if b == nil || b.AuthorizationState == nil { return fmt.Errorf("unable to encode AuthorizationStateClass as nil") } return b.AuthorizationState.Encode(buf) } // DecodeTDLibJSON implements bin.Decoder for AuthorizationStateBox. func (b *AuthorizationStateBox) DecodeTDLibJSON(buf tdjson.Decoder) error { if b == nil { return fmt.Errorf("unable to decode AuthorizationStateBox to nil") } v, err := DecodeTDLibJSONAuthorizationState(buf) if err != nil { return fmt.Errorf("unable to decode boxed value: %w", err) } b.AuthorizationState = v return nil } // EncodeTDLibJSON implements bin.Encode for AuthorizationStateBox. func (b *AuthorizationStateBox) EncodeTDLibJSON(buf tdjson.Encoder) error { if b == nil || b.AuthorizationState == nil { return fmt.Errorf("unable to encode AuthorizationStateClass as nil") } return b.AuthorizationState.EncodeTDLibJSON(buf) }