// 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{} ) // DeviceTokenFirebaseCloudMessaging represents TL type `deviceTokenFirebaseCloudMessaging#d0714a07`. type DeviceTokenFirebaseCloudMessaging struct { // Device registration token; may be empty to deregister a device Token string // True, if push notifications must be additionally encrypted Encrypt bool } // DeviceTokenFirebaseCloudMessagingTypeID is TL type id of DeviceTokenFirebaseCloudMessaging. const DeviceTokenFirebaseCloudMessagingTypeID = 0xd0714a07 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenFirebaseCloudMessaging) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenFirebaseCloudMessaging. var ( _ bin.Encoder = &DeviceTokenFirebaseCloudMessaging{} _ bin.Decoder = &DeviceTokenFirebaseCloudMessaging{} _ bin.BareEncoder = &DeviceTokenFirebaseCloudMessaging{} _ bin.BareDecoder = &DeviceTokenFirebaseCloudMessaging{} _ DeviceTokenClass = &DeviceTokenFirebaseCloudMessaging{} ) func (d *DeviceTokenFirebaseCloudMessaging) Zero() bool { if d == nil { return true } if !(d.Token == "") { return false } if !(d.Encrypt == false) { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenFirebaseCloudMessaging) String() string { if d == nil { return "DeviceTokenFirebaseCloudMessaging(nil)" } type Alias DeviceTokenFirebaseCloudMessaging return fmt.Sprintf("DeviceTokenFirebaseCloudMessaging%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenFirebaseCloudMessaging) TypeID() uint32 { return DeviceTokenFirebaseCloudMessagingTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenFirebaseCloudMessaging) TypeName() string { return "deviceTokenFirebaseCloudMessaging" } // TypeInfo returns info about TL type. func (d *DeviceTokenFirebaseCloudMessaging) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenFirebaseCloudMessaging", ID: DeviceTokenFirebaseCloudMessagingTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Token", SchemaName: "token", }, { Name: "Encrypt", SchemaName: "encrypt", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenFirebaseCloudMessaging) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenFirebaseCloudMessaging#d0714a07 as nil") } b.PutID(DeviceTokenFirebaseCloudMessagingTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenFirebaseCloudMessaging) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenFirebaseCloudMessaging#d0714a07 as nil") } b.PutString(d.Token) b.PutBool(d.Encrypt) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenFirebaseCloudMessaging) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenFirebaseCloudMessaging#d0714a07 to nil") } if err := b.ConsumeID(DeviceTokenFirebaseCloudMessagingTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenFirebaseCloudMessaging#d0714a07: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenFirebaseCloudMessaging) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenFirebaseCloudMessaging#d0714a07 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenFirebaseCloudMessaging#d0714a07: field token: %w", err) } d.Token = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenFirebaseCloudMessaging#d0714a07: field encrypt: %w", err) } d.Encrypt = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenFirebaseCloudMessaging) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenFirebaseCloudMessaging#d0714a07 as nil") } b.ObjStart() b.PutID("deviceTokenFirebaseCloudMessaging") b.Comma() b.FieldStart("token") b.PutString(d.Token) b.Comma() b.FieldStart("encrypt") b.PutBool(d.Encrypt) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenFirebaseCloudMessaging) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenFirebaseCloudMessaging#d0714a07 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenFirebaseCloudMessaging"); err != nil { return fmt.Errorf("unable to decode deviceTokenFirebaseCloudMessaging#d0714a07: %w", err) } case "token": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenFirebaseCloudMessaging#d0714a07: field token: %w", err) } d.Token = value case "encrypt": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenFirebaseCloudMessaging#d0714a07: field encrypt: %w", err) } d.Encrypt = value default: return b.Skip() } return nil }) } // GetToken returns value of Token field. func (d *DeviceTokenFirebaseCloudMessaging) GetToken() (value string) { if d == nil { return } return d.Token } // GetEncrypt returns value of Encrypt field. func (d *DeviceTokenFirebaseCloudMessaging) GetEncrypt() (value bool) { if d == nil { return } return d.Encrypt } // DeviceTokenApplePush represents TL type `deviceTokenApplePush#17196bc3`. type DeviceTokenApplePush struct { // Device token; may be empty to deregister a device DeviceToken string // True, if App Sandbox is enabled IsAppSandbox bool } // DeviceTokenApplePushTypeID is TL type id of DeviceTokenApplePush. const DeviceTokenApplePushTypeID = 0x17196bc3 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenApplePush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenApplePush. var ( _ bin.Encoder = &DeviceTokenApplePush{} _ bin.Decoder = &DeviceTokenApplePush{} _ bin.BareEncoder = &DeviceTokenApplePush{} _ bin.BareDecoder = &DeviceTokenApplePush{} _ DeviceTokenClass = &DeviceTokenApplePush{} ) func (d *DeviceTokenApplePush) Zero() bool { if d == nil { return true } if !(d.DeviceToken == "") { return false } if !(d.IsAppSandbox == false) { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenApplePush) String() string { if d == nil { return "DeviceTokenApplePush(nil)" } type Alias DeviceTokenApplePush return fmt.Sprintf("DeviceTokenApplePush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenApplePush) TypeID() uint32 { return DeviceTokenApplePushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenApplePush) TypeName() string { return "deviceTokenApplePush" } // TypeInfo returns info about TL type. func (d *DeviceTokenApplePush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenApplePush", ID: DeviceTokenApplePushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "DeviceToken", SchemaName: "device_token", }, { Name: "IsAppSandbox", SchemaName: "is_app_sandbox", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenApplePush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenApplePush#17196bc3 as nil") } b.PutID(DeviceTokenApplePushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenApplePush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenApplePush#17196bc3 as nil") } b.PutString(d.DeviceToken) b.PutBool(d.IsAppSandbox) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenApplePush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenApplePush#17196bc3 to nil") } if err := b.ConsumeID(DeviceTokenApplePushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenApplePush#17196bc3: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenApplePush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenApplePush#17196bc3 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePush#17196bc3: field device_token: %w", err) } d.DeviceToken = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePush#17196bc3: field is_app_sandbox: %w", err) } d.IsAppSandbox = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenApplePush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenApplePush#17196bc3 as nil") } b.ObjStart() b.PutID("deviceTokenApplePush") b.Comma() b.FieldStart("device_token") b.PutString(d.DeviceToken) b.Comma() b.FieldStart("is_app_sandbox") b.PutBool(d.IsAppSandbox) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenApplePush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenApplePush#17196bc3 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenApplePush"); err != nil { return fmt.Errorf("unable to decode deviceTokenApplePush#17196bc3: %w", err) } case "device_token": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePush#17196bc3: field device_token: %w", err) } d.DeviceToken = value case "is_app_sandbox": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePush#17196bc3: field is_app_sandbox: %w", err) } d.IsAppSandbox = value default: return b.Skip() } return nil }) } // GetDeviceToken returns value of DeviceToken field. func (d *DeviceTokenApplePush) GetDeviceToken() (value string) { if d == nil { return } return d.DeviceToken } // GetIsAppSandbox returns value of IsAppSandbox field. func (d *DeviceTokenApplePush) GetIsAppSandbox() (value bool) { if d == nil { return } return d.IsAppSandbox } // DeviceTokenApplePushVoIP represents TL type `deviceTokenApplePushVoIP#2ff045e9`. type DeviceTokenApplePushVoIP struct { // Device token; may be empty to deregister a device DeviceToken string // True, if App Sandbox is enabled IsAppSandbox bool // True, if push notifications must be additionally encrypted Encrypt bool } // DeviceTokenApplePushVoIPTypeID is TL type id of DeviceTokenApplePushVoIP. const DeviceTokenApplePushVoIPTypeID = 0x2ff045e9 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenApplePushVoIP) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenApplePushVoIP. var ( _ bin.Encoder = &DeviceTokenApplePushVoIP{} _ bin.Decoder = &DeviceTokenApplePushVoIP{} _ bin.BareEncoder = &DeviceTokenApplePushVoIP{} _ bin.BareDecoder = &DeviceTokenApplePushVoIP{} _ DeviceTokenClass = &DeviceTokenApplePushVoIP{} ) func (d *DeviceTokenApplePushVoIP) Zero() bool { if d == nil { return true } if !(d.DeviceToken == "") { return false } if !(d.IsAppSandbox == false) { return false } if !(d.Encrypt == false) { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenApplePushVoIP) String() string { if d == nil { return "DeviceTokenApplePushVoIP(nil)" } type Alias DeviceTokenApplePushVoIP return fmt.Sprintf("DeviceTokenApplePushVoIP%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenApplePushVoIP) TypeID() uint32 { return DeviceTokenApplePushVoIPTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenApplePushVoIP) TypeName() string { return "deviceTokenApplePushVoIP" } // TypeInfo returns info about TL type. func (d *DeviceTokenApplePushVoIP) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenApplePushVoIP", ID: DeviceTokenApplePushVoIPTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "DeviceToken", SchemaName: "device_token", }, { Name: "IsAppSandbox", SchemaName: "is_app_sandbox", }, { Name: "Encrypt", SchemaName: "encrypt", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenApplePushVoIP) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenApplePushVoIP#2ff045e9 as nil") } b.PutID(DeviceTokenApplePushVoIPTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenApplePushVoIP) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenApplePushVoIP#2ff045e9 as nil") } b.PutString(d.DeviceToken) b.PutBool(d.IsAppSandbox) b.PutBool(d.Encrypt) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenApplePushVoIP) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenApplePushVoIP#2ff045e9 to nil") } if err := b.ConsumeID(DeviceTokenApplePushVoIPTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenApplePushVoIP#2ff045e9: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenApplePushVoIP) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenApplePushVoIP#2ff045e9 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePushVoIP#2ff045e9: field device_token: %w", err) } d.DeviceToken = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePushVoIP#2ff045e9: field is_app_sandbox: %w", err) } d.IsAppSandbox = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePushVoIP#2ff045e9: field encrypt: %w", err) } d.Encrypt = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenApplePushVoIP) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenApplePushVoIP#2ff045e9 as nil") } b.ObjStart() b.PutID("deviceTokenApplePushVoIP") b.Comma() b.FieldStart("device_token") b.PutString(d.DeviceToken) b.Comma() b.FieldStart("is_app_sandbox") b.PutBool(d.IsAppSandbox) b.Comma() b.FieldStart("encrypt") b.PutBool(d.Encrypt) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenApplePushVoIP) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenApplePushVoIP#2ff045e9 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenApplePushVoIP"); err != nil { return fmt.Errorf("unable to decode deviceTokenApplePushVoIP#2ff045e9: %w", err) } case "device_token": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePushVoIP#2ff045e9: field device_token: %w", err) } d.DeviceToken = value case "is_app_sandbox": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePushVoIP#2ff045e9: field is_app_sandbox: %w", err) } d.IsAppSandbox = value case "encrypt": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenApplePushVoIP#2ff045e9: field encrypt: %w", err) } d.Encrypt = value default: return b.Skip() } return nil }) } // GetDeviceToken returns value of DeviceToken field. func (d *DeviceTokenApplePushVoIP) GetDeviceToken() (value string) { if d == nil { return } return d.DeviceToken } // GetIsAppSandbox returns value of IsAppSandbox field. func (d *DeviceTokenApplePushVoIP) GetIsAppSandbox() (value bool) { if d == nil { return } return d.IsAppSandbox } // GetEncrypt returns value of Encrypt field. func (d *DeviceTokenApplePushVoIP) GetEncrypt() (value bool) { if d == nil { return } return d.Encrypt } // DeviceTokenWindowsPush represents TL type `deviceTokenWindowsPush#abed428f`. type DeviceTokenWindowsPush struct { // The access token that will be used to send notifications; may be empty to deregister a // device AccessToken string } // DeviceTokenWindowsPushTypeID is TL type id of DeviceTokenWindowsPush. const DeviceTokenWindowsPushTypeID = 0xabed428f // construct implements constructor of DeviceTokenClass. func (d DeviceTokenWindowsPush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenWindowsPush. var ( _ bin.Encoder = &DeviceTokenWindowsPush{} _ bin.Decoder = &DeviceTokenWindowsPush{} _ bin.BareEncoder = &DeviceTokenWindowsPush{} _ bin.BareDecoder = &DeviceTokenWindowsPush{} _ DeviceTokenClass = &DeviceTokenWindowsPush{} ) func (d *DeviceTokenWindowsPush) Zero() bool { if d == nil { return true } if !(d.AccessToken == "") { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenWindowsPush) String() string { if d == nil { return "DeviceTokenWindowsPush(nil)" } type Alias DeviceTokenWindowsPush return fmt.Sprintf("DeviceTokenWindowsPush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenWindowsPush) TypeID() uint32 { return DeviceTokenWindowsPushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenWindowsPush) TypeName() string { return "deviceTokenWindowsPush" } // TypeInfo returns info about TL type. func (d *DeviceTokenWindowsPush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenWindowsPush", ID: DeviceTokenWindowsPushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "AccessToken", SchemaName: "access_token", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenWindowsPush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenWindowsPush#abed428f as nil") } b.PutID(DeviceTokenWindowsPushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenWindowsPush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenWindowsPush#abed428f as nil") } b.PutString(d.AccessToken) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenWindowsPush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenWindowsPush#abed428f to nil") } if err := b.ConsumeID(DeviceTokenWindowsPushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenWindowsPush#abed428f: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenWindowsPush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenWindowsPush#abed428f to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenWindowsPush#abed428f: field access_token: %w", err) } d.AccessToken = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenWindowsPush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenWindowsPush#abed428f as nil") } b.ObjStart() b.PutID("deviceTokenWindowsPush") b.Comma() b.FieldStart("access_token") b.PutString(d.AccessToken) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenWindowsPush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenWindowsPush#abed428f to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenWindowsPush"); err != nil { return fmt.Errorf("unable to decode deviceTokenWindowsPush#abed428f: %w", err) } case "access_token": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenWindowsPush#abed428f: field access_token: %w", err) } d.AccessToken = value default: return b.Skip() } return nil }) } // GetAccessToken returns value of AccessToken field. func (d *DeviceTokenWindowsPush) GetAccessToken() (value string) { if d == nil { return } return d.AccessToken } // DeviceTokenMicrosoftPush represents TL type `deviceTokenMicrosoftPush#48f8e04c`. type DeviceTokenMicrosoftPush struct { // Push notification channel URI; may be empty to deregister a device ChannelURI string } // DeviceTokenMicrosoftPushTypeID is TL type id of DeviceTokenMicrosoftPush. const DeviceTokenMicrosoftPushTypeID = 0x48f8e04c // construct implements constructor of DeviceTokenClass. func (d DeviceTokenMicrosoftPush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenMicrosoftPush. var ( _ bin.Encoder = &DeviceTokenMicrosoftPush{} _ bin.Decoder = &DeviceTokenMicrosoftPush{} _ bin.BareEncoder = &DeviceTokenMicrosoftPush{} _ bin.BareDecoder = &DeviceTokenMicrosoftPush{} _ DeviceTokenClass = &DeviceTokenMicrosoftPush{} ) func (d *DeviceTokenMicrosoftPush) Zero() bool { if d == nil { return true } if !(d.ChannelURI == "") { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenMicrosoftPush) String() string { if d == nil { return "DeviceTokenMicrosoftPush(nil)" } type Alias DeviceTokenMicrosoftPush return fmt.Sprintf("DeviceTokenMicrosoftPush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenMicrosoftPush) TypeID() uint32 { return DeviceTokenMicrosoftPushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenMicrosoftPush) TypeName() string { return "deviceTokenMicrosoftPush" } // TypeInfo returns info about TL type. func (d *DeviceTokenMicrosoftPush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenMicrosoftPush", ID: DeviceTokenMicrosoftPushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "ChannelURI", SchemaName: "channel_uri", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenMicrosoftPush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenMicrosoftPush#48f8e04c as nil") } b.PutID(DeviceTokenMicrosoftPushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenMicrosoftPush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenMicrosoftPush#48f8e04c as nil") } b.PutString(d.ChannelURI) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenMicrosoftPush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenMicrosoftPush#48f8e04c to nil") } if err := b.ConsumeID(DeviceTokenMicrosoftPushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenMicrosoftPush#48f8e04c: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenMicrosoftPush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenMicrosoftPush#48f8e04c to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenMicrosoftPush#48f8e04c: field channel_uri: %w", err) } d.ChannelURI = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenMicrosoftPush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenMicrosoftPush#48f8e04c as nil") } b.ObjStart() b.PutID("deviceTokenMicrosoftPush") b.Comma() b.FieldStart("channel_uri") b.PutString(d.ChannelURI) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenMicrosoftPush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenMicrosoftPush#48f8e04c to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenMicrosoftPush"); err != nil { return fmt.Errorf("unable to decode deviceTokenMicrosoftPush#48f8e04c: %w", err) } case "channel_uri": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenMicrosoftPush#48f8e04c: field channel_uri: %w", err) } d.ChannelURI = value default: return b.Skip() } return nil }) } // GetChannelURI returns value of ChannelURI field. func (d *DeviceTokenMicrosoftPush) GetChannelURI() (value string) { if d == nil { return } return d.ChannelURI } // DeviceTokenMicrosoftPushVoIP represents TL type `deviceTokenMicrosoftPushVoIP#d12ca351`. type DeviceTokenMicrosoftPushVoIP struct { // Push notification channel URI; may be empty to deregister a device ChannelURI string } // DeviceTokenMicrosoftPushVoIPTypeID is TL type id of DeviceTokenMicrosoftPushVoIP. const DeviceTokenMicrosoftPushVoIPTypeID = 0xd12ca351 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenMicrosoftPushVoIP) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenMicrosoftPushVoIP. var ( _ bin.Encoder = &DeviceTokenMicrosoftPushVoIP{} _ bin.Decoder = &DeviceTokenMicrosoftPushVoIP{} _ bin.BareEncoder = &DeviceTokenMicrosoftPushVoIP{} _ bin.BareDecoder = &DeviceTokenMicrosoftPushVoIP{} _ DeviceTokenClass = &DeviceTokenMicrosoftPushVoIP{} ) func (d *DeviceTokenMicrosoftPushVoIP) Zero() bool { if d == nil { return true } if !(d.ChannelURI == "") { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenMicrosoftPushVoIP) String() string { if d == nil { return "DeviceTokenMicrosoftPushVoIP(nil)" } type Alias DeviceTokenMicrosoftPushVoIP return fmt.Sprintf("DeviceTokenMicrosoftPushVoIP%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenMicrosoftPushVoIP) TypeID() uint32 { return DeviceTokenMicrosoftPushVoIPTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenMicrosoftPushVoIP) TypeName() string { return "deviceTokenMicrosoftPushVoIP" } // TypeInfo returns info about TL type. func (d *DeviceTokenMicrosoftPushVoIP) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenMicrosoftPushVoIP", ID: DeviceTokenMicrosoftPushVoIPTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "ChannelURI", SchemaName: "channel_uri", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenMicrosoftPushVoIP) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenMicrosoftPushVoIP#d12ca351 as nil") } b.PutID(DeviceTokenMicrosoftPushVoIPTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenMicrosoftPushVoIP) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenMicrosoftPushVoIP#d12ca351 as nil") } b.PutString(d.ChannelURI) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenMicrosoftPushVoIP) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenMicrosoftPushVoIP#d12ca351 to nil") } if err := b.ConsumeID(DeviceTokenMicrosoftPushVoIPTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenMicrosoftPushVoIP#d12ca351: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenMicrosoftPushVoIP) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenMicrosoftPushVoIP#d12ca351 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenMicrosoftPushVoIP#d12ca351: field channel_uri: %w", err) } d.ChannelURI = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenMicrosoftPushVoIP) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenMicrosoftPushVoIP#d12ca351 as nil") } b.ObjStart() b.PutID("deviceTokenMicrosoftPushVoIP") b.Comma() b.FieldStart("channel_uri") b.PutString(d.ChannelURI) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenMicrosoftPushVoIP) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenMicrosoftPushVoIP#d12ca351 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenMicrosoftPushVoIP"); err != nil { return fmt.Errorf("unable to decode deviceTokenMicrosoftPushVoIP#d12ca351: %w", err) } case "channel_uri": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenMicrosoftPushVoIP#d12ca351: field channel_uri: %w", err) } d.ChannelURI = value default: return b.Skip() } return nil }) } // GetChannelURI returns value of ChannelURI field. func (d *DeviceTokenMicrosoftPushVoIP) GetChannelURI() (value string) { if d == nil { return } return d.ChannelURI } // DeviceTokenWebPush represents TL type `deviceTokenWebPush#9affdef7`. type DeviceTokenWebPush struct { // Absolute URL exposed by the push service where the application server can send push // messages; may be empty to deregister a device Endpoint string // Base64url-encoded P-256 elliptic curve Diffie-Hellman public key P256dhBase64url string // Base64url-encoded authentication secret AuthBase64url string } // DeviceTokenWebPushTypeID is TL type id of DeviceTokenWebPush. const DeviceTokenWebPushTypeID = 0x9affdef7 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenWebPush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenWebPush. var ( _ bin.Encoder = &DeviceTokenWebPush{} _ bin.Decoder = &DeviceTokenWebPush{} _ bin.BareEncoder = &DeviceTokenWebPush{} _ bin.BareDecoder = &DeviceTokenWebPush{} _ DeviceTokenClass = &DeviceTokenWebPush{} ) func (d *DeviceTokenWebPush) Zero() bool { if d == nil { return true } if !(d.Endpoint == "") { return false } if !(d.P256dhBase64url == "") { return false } if !(d.AuthBase64url == "") { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenWebPush) String() string { if d == nil { return "DeviceTokenWebPush(nil)" } type Alias DeviceTokenWebPush return fmt.Sprintf("DeviceTokenWebPush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenWebPush) TypeID() uint32 { return DeviceTokenWebPushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenWebPush) TypeName() string { return "deviceTokenWebPush" } // TypeInfo returns info about TL type. func (d *DeviceTokenWebPush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenWebPush", ID: DeviceTokenWebPushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Endpoint", SchemaName: "endpoint", }, { Name: "P256dhBase64url", SchemaName: "p256dh_base64url", }, { Name: "AuthBase64url", SchemaName: "auth_base64url", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenWebPush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenWebPush#9affdef7 as nil") } b.PutID(DeviceTokenWebPushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenWebPush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenWebPush#9affdef7 as nil") } b.PutString(d.Endpoint) b.PutString(d.P256dhBase64url) b.PutString(d.AuthBase64url) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenWebPush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenWebPush#9affdef7 to nil") } if err := b.ConsumeID(DeviceTokenWebPushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenWebPush#9affdef7: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenWebPush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenWebPush#9affdef7 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenWebPush#9affdef7: field endpoint: %w", err) } d.Endpoint = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenWebPush#9affdef7: field p256dh_base64url: %w", err) } d.P256dhBase64url = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenWebPush#9affdef7: field auth_base64url: %w", err) } d.AuthBase64url = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenWebPush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenWebPush#9affdef7 as nil") } b.ObjStart() b.PutID("deviceTokenWebPush") b.Comma() b.FieldStart("endpoint") b.PutString(d.Endpoint) b.Comma() b.FieldStart("p256dh_base64url") b.PutString(d.P256dhBase64url) b.Comma() b.FieldStart("auth_base64url") b.PutString(d.AuthBase64url) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenWebPush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenWebPush#9affdef7 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenWebPush"); err != nil { return fmt.Errorf("unable to decode deviceTokenWebPush#9affdef7: %w", err) } case "endpoint": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenWebPush#9affdef7: field endpoint: %w", err) } d.Endpoint = value case "p256dh_base64url": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenWebPush#9affdef7: field p256dh_base64url: %w", err) } d.P256dhBase64url = value case "auth_base64url": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenWebPush#9affdef7: field auth_base64url: %w", err) } d.AuthBase64url = value default: return b.Skip() } return nil }) } // GetEndpoint returns value of Endpoint field. func (d *DeviceTokenWebPush) GetEndpoint() (value string) { if d == nil { return } return d.Endpoint } // GetP256dhBase64url returns value of P256dhBase64url field. func (d *DeviceTokenWebPush) GetP256dhBase64url() (value string) { if d == nil { return } return d.P256dhBase64url } // GetAuthBase64url returns value of AuthBase64url field. func (d *DeviceTokenWebPush) GetAuthBase64url() (value string) { if d == nil { return } return d.AuthBase64url } // DeviceTokenSimplePush represents TL type `deviceTokenSimplePush#2f49a60`. type DeviceTokenSimplePush struct { // Absolute URL exposed by the push service where the application server can send push // messages; may be empty to deregister a device Endpoint string } // DeviceTokenSimplePushTypeID is TL type id of DeviceTokenSimplePush. const DeviceTokenSimplePushTypeID = 0x2f49a60 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenSimplePush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenSimplePush. var ( _ bin.Encoder = &DeviceTokenSimplePush{} _ bin.Decoder = &DeviceTokenSimplePush{} _ bin.BareEncoder = &DeviceTokenSimplePush{} _ bin.BareDecoder = &DeviceTokenSimplePush{} _ DeviceTokenClass = &DeviceTokenSimplePush{} ) func (d *DeviceTokenSimplePush) Zero() bool { if d == nil { return true } if !(d.Endpoint == "") { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenSimplePush) String() string { if d == nil { return "DeviceTokenSimplePush(nil)" } type Alias DeviceTokenSimplePush return fmt.Sprintf("DeviceTokenSimplePush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenSimplePush) TypeID() uint32 { return DeviceTokenSimplePushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenSimplePush) TypeName() string { return "deviceTokenSimplePush" } // TypeInfo returns info about TL type. func (d *DeviceTokenSimplePush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenSimplePush", ID: DeviceTokenSimplePushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Endpoint", SchemaName: "endpoint", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenSimplePush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenSimplePush#2f49a60 as nil") } b.PutID(DeviceTokenSimplePushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenSimplePush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenSimplePush#2f49a60 as nil") } b.PutString(d.Endpoint) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenSimplePush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenSimplePush#2f49a60 to nil") } if err := b.ConsumeID(DeviceTokenSimplePushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenSimplePush#2f49a60: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenSimplePush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenSimplePush#2f49a60 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenSimplePush#2f49a60: field endpoint: %w", err) } d.Endpoint = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenSimplePush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenSimplePush#2f49a60 as nil") } b.ObjStart() b.PutID("deviceTokenSimplePush") b.Comma() b.FieldStart("endpoint") b.PutString(d.Endpoint) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenSimplePush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenSimplePush#2f49a60 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenSimplePush"); err != nil { return fmt.Errorf("unable to decode deviceTokenSimplePush#2f49a60: %w", err) } case "endpoint": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenSimplePush#2f49a60: field endpoint: %w", err) } d.Endpoint = value default: return b.Skip() } return nil }) } // GetEndpoint returns value of Endpoint field. func (d *DeviceTokenSimplePush) GetEndpoint() (value string) { if d == nil { return } return d.Endpoint } // DeviceTokenUbuntuPush represents TL type `deviceTokenUbuntuPush#6a3c0d26`. type DeviceTokenUbuntuPush struct { // Token; may be empty to deregister a device Token string } // DeviceTokenUbuntuPushTypeID is TL type id of DeviceTokenUbuntuPush. const DeviceTokenUbuntuPushTypeID = 0x6a3c0d26 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenUbuntuPush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenUbuntuPush. var ( _ bin.Encoder = &DeviceTokenUbuntuPush{} _ bin.Decoder = &DeviceTokenUbuntuPush{} _ bin.BareEncoder = &DeviceTokenUbuntuPush{} _ bin.BareDecoder = &DeviceTokenUbuntuPush{} _ DeviceTokenClass = &DeviceTokenUbuntuPush{} ) func (d *DeviceTokenUbuntuPush) Zero() bool { if d == nil { return true } if !(d.Token == "") { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenUbuntuPush) String() string { if d == nil { return "DeviceTokenUbuntuPush(nil)" } type Alias DeviceTokenUbuntuPush return fmt.Sprintf("DeviceTokenUbuntuPush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenUbuntuPush) TypeID() uint32 { return DeviceTokenUbuntuPushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenUbuntuPush) TypeName() string { return "deviceTokenUbuntuPush" } // TypeInfo returns info about TL type. func (d *DeviceTokenUbuntuPush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenUbuntuPush", ID: DeviceTokenUbuntuPushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Token", SchemaName: "token", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenUbuntuPush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenUbuntuPush#6a3c0d26 as nil") } b.PutID(DeviceTokenUbuntuPushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenUbuntuPush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenUbuntuPush#6a3c0d26 as nil") } b.PutString(d.Token) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenUbuntuPush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenUbuntuPush#6a3c0d26 to nil") } if err := b.ConsumeID(DeviceTokenUbuntuPushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenUbuntuPush#6a3c0d26: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenUbuntuPush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenUbuntuPush#6a3c0d26 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenUbuntuPush#6a3c0d26: field token: %w", err) } d.Token = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenUbuntuPush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenUbuntuPush#6a3c0d26 as nil") } b.ObjStart() b.PutID("deviceTokenUbuntuPush") b.Comma() b.FieldStart("token") b.PutString(d.Token) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenUbuntuPush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenUbuntuPush#6a3c0d26 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenUbuntuPush"); err != nil { return fmt.Errorf("unable to decode deviceTokenUbuntuPush#6a3c0d26: %w", err) } case "token": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenUbuntuPush#6a3c0d26: field token: %w", err) } d.Token = value default: return b.Skip() } return nil }) } // GetToken returns value of Token field. func (d *DeviceTokenUbuntuPush) GetToken() (value string) { if d == nil { return } return d.Token } // DeviceTokenBlackBerryPush represents TL type `deviceTokenBlackBerryPush#5cef0102`. type DeviceTokenBlackBerryPush struct { // Token; may be empty to deregister a device Token string } // DeviceTokenBlackBerryPushTypeID is TL type id of DeviceTokenBlackBerryPush. const DeviceTokenBlackBerryPushTypeID = 0x5cef0102 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenBlackBerryPush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenBlackBerryPush. var ( _ bin.Encoder = &DeviceTokenBlackBerryPush{} _ bin.Decoder = &DeviceTokenBlackBerryPush{} _ bin.BareEncoder = &DeviceTokenBlackBerryPush{} _ bin.BareDecoder = &DeviceTokenBlackBerryPush{} _ DeviceTokenClass = &DeviceTokenBlackBerryPush{} ) func (d *DeviceTokenBlackBerryPush) Zero() bool { if d == nil { return true } if !(d.Token == "") { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenBlackBerryPush) String() string { if d == nil { return "DeviceTokenBlackBerryPush(nil)" } type Alias DeviceTokenBlackBerryPush return fmt.Sprintf("DeviceTokenBlackBerryPush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenBlackBerryPush) TypeID() uint32 { return DeviceTokenBlackBerryPushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenBlackBerryPush) TypeName() string { return "deviceTokenBlackBerryPush" } // TypeInfo returns info about TL type. func (d *DeviceTokenBlackBerryPush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenBlackBerryPush", ID: DeviceTokenBlackBerryPushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Token", SchemaName: "token", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenBlackBerryPush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenBlackBerryPush#5cef0102 as nil") } b.PutID(DeviceTokenBlackBerryPushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenBlackBerryPush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenBlackBerryPush#5cef0102 as nil") } b.PutString(d.Token) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenBlackBerryPush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenBlackBerryPush#5cef0102 to nil") } if err := b.ConsumeID(DeviceTokenBlackBerryPushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenBlackBerryPush#5cef0102: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenBlackBerryPush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenBlackBerryPush#5cef0102 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenBlackBerryPush#5cef0102: field token: %w", err) } d.Token = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenBlackBerryPush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenBlackBerryPush#5cef0102 as nil") } b.ObjStart() b.PutID("deviceTokenBlackBerryPush") b.Comma() b.FieldStart("token") b.PutString(d.Token) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenBlackBerryPush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenBlackBerryPush#5cef0102 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenBlackBerryPush"); err != nil { return fmt.Errorf("unable to decode deviceTokenBlackBerryPush#5cef0102: %w", err) } case "token": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenBlackBerryPush#5cef0102: field token: %w", err) } d.Token = value default: return b.Skip() } return nil }) } // GetToken returns value of Token field. func (d *DeviceTokenBlackBerryPush) GetToken() (value string) { if d == nil { return } return d.Token } // DeviceTokenTizenPush represents TL type `deviceTokenTizenPush#aef0da33`. type DeviceTokenTizenPush struct { // Push service registration identifier; may be empty to deregister a device RegID string } // DeviceTokenTizenPushTypeID is TL type id of DeviceTokenTizenPush. const DeviceTokenTizenPushTypeID = 0xaef0da33 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenTizenPush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenTizenPush. var ( _ bin.Encoder = &DeviceTokenTizenPush{} _ bin.Decoder = &DeviceTokenTizenPush{} _ bin.BareEncoder = &DeviceTokenTizenPush{} _ bin.BareDecoder = &DeviceTokenTizenPush{} _ DeviceTokenClass = &DeviceTokenTizenPush{} ) func (d *DeviceTokenTizenPush) Zero() bool { if d == nil { return true } if !(d.RegID == "") { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenTizenPush) String() string { if d == nil { return "DeviceTokenTizenPush(nil)" } type Alias DeviceTokenTizenPush return fmt.Sprintf("DeviceTokenTizenPush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenTizenPush) TypeID() uint32 { return DeviceTokenTizenPushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenTizenPush) TypeName() string { return "deviceTokenTizenPush" } // TypeInfo returns info about TL type. func (d *DeviceTokenTizenPush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenTizenPush", ID: DeviceTokenTizenPushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "RegID", SchemaName: "reg_id", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenTizenPush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenTizenPush#aef0da33 as nil") } b.PutID(DeviceTokenTizenPushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenTizenPush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenTizenPush#aef0da33 as nil") } b.PutString(d.RegID) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenTizenPush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenTizenPush#aef0da33 to nil") } if err := b.ConsumeID(DeviceTokenTizenPushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenTizenPush#aef0da33: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenTizenPush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenTizenPush#aef0da33 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenTizenPush#aef0da33: field reg_id: %w", err) } d.RegID = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenTizenPush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenTizenPush#aef0da33 as nil") } b.ObjStart() b.PutID("deviceTokenTizenPush") b.Comma() b.FieldStart("reg_id") b.PutString(d.RegID) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenTizenPush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenTizenPush#aef0da33 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenTizenPush"); err != nil { return fmt.Errorf("unable to decode deviceTokenTizenPush#aef0da33: %w", err) } case "reg_id": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenTizenPush#aef0da33: field reg_id: %w", err) } d.RegID = value default: return b.Skip() } return nil }) } // GetRegID returns value of RegID field. func (d *DeviceTokenTizenPush) GetRegID() (value string) { if d == nil { return } return d.RegID } // DeviceTokenHuaweiPush represents TL type `deviceTokenHuaweiPush#768f4e26`. type DeviceTokenHuaweiPush struct { // Device registration token; may be empty to deregister a device Token string // True, if push notifications must be additionally encrypted Encrypt bool } // DeviceTokenHuaweiPushTypeID is TL type id of DeviceTokenHuaweiPush. const DeviceTokenHuaweiPushTypeID = 0x768f4e26 // construct implements constructor of DeviceTokenClass. func (d DeviceTokenHuaweiPush) construct() DeviceTokenClass { return &d } // Ensuring interfaces in compile-time for DeviceTokenHuaweiPush. var ( _ bin.Encoder = &DeviceTokenHuaweiPush{} _ bin.Decoder = &DeviceTokenHuaweiPush{} _ bin.BareEncoder = &DeviceTokenHuaweiPush{} _ bin.BareDecoder = &DeviceTokenHuaweiPush{} _ DeviceTokenClass = &DeviceTokenHuaweiPush{} ) func (d *DeviceTokenHuaweiPush) Zero() bool { if d == nil { return true } if !(d.Token == "") { return false } if !(d.Encrypt == false) { return false } return true } // String implements fmt.Stringer. func (d *DeviceTokenHuaweiPush) String() string { if d == nil { return "DeviceTokenHuaweiPush(nil)" } type Alias DeviceTokenHuaweiPush return fmt.Sprintf("DeviceTokenHuaweiPush%+v", Alias(*d)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*DeviceTokenHuaweiPush) TypeID() uint32 { return DeviceTokenHuaweiPushTypeID } // TypeName returns name of type in TL schema. func (*DeviceTokenHuaweiPush) TypeName() string { return "deviceTokenHuaweiPush" } // TypeInfo returns info about TL type. func (d *DeviceTokenHuaweiPush) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "deviceTokenHuaweiPush", ID: DeviceTokenHuaweiPushTypeID, } if d == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Token", SchemaName: "token", }, { Name: "Encrypt", SchemaName: "encrypt", }, } return typ } // Encode implements bin.Encoder. func (d *DeviceTokenHuaweiPush) Encode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenHuaweiPush#768f4e26 as nil") } b.PutID(DeviceTokenHuaweiPushTypeID) return d.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (d *DeviceTokenHuaweiPush) EncodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't encode deviceTokenHuaweiPush#768f4e26 as nil") } b.PutString(d.Token) b.PutBool(d.Encrypt) return nil } // Decode implements bin.Decoder. func (d *DeviceTokenHuaweiPush) Decode(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenHuaweiPush#768f4e26 to nil") } if err := b.ConsumeID(DeviceTokenHuaweiPushTypeID); err != nil { return fmt.Errorf("unable to decode deviceTokenHuaweiPush#768f4e26: %w", err) } return d.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (d *DeviceTokenHuaweiPush) DecodeBare(b *bin.Buffer) error { if d == nil { return fmt.Errorf("can't decode deviceTokenHuaweiPush#768f4e26 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenHuaweiPush#768f4e26: field token: %w", err) } d.Token = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenHuaweiPush#768f4e26: field encrypt: %w", err) } d.Encrypt = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (d *DeviceTokenHuaweiPush) EncodeTDLibJSON(b tdjson.Encoder) error { if d == nil { return fmt.Errorf("can't encode deviceTokenHuaweiPush#768f4e26 as nil") } b.ObjStart() b.PutID("deviceTokenHuaweiPush") b.Comma() b.FieldStart("token") b.PutString(d.Token) b.Comma() b.FieldStart("encrypt") b.PutBool(d.Encrypt) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (d *DeviceTokenHuaweiPush) DecodeTDLibJSON(b tdjson.Decoder) error { if d == nil { return fmt.Errorf("can't decode deviceTokenHuaweiPush#768f4e26 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("deviceTokenHuaweiPush"); err != nil { return fmt.Errorf("unable to decode deviceTokenHuaweiPush#768f4e26: %w", err) } case "token": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode deviceTokenHuaweiPush#768f4e26: field token: %w", err) } d.Token = value case "encrypt": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode deviceTokenHuaweiPush#768f4e26: field encrypt: %w", err) } d.Encrypt = value default: return b.Skip() } return nil }) } // GetToken returns value of Token field. func (d *DeviceTokenHuaweiPush) GetToken() (value string) { if d == nil { return } return d.Token } // GetEncrypt returns value of Encrypt field. func (d *DeviceTokenHuaweiPush) GetEncrypt() (value bool) { if d == nil { return } return d.Encrypt } // DeviceTokenClassName is schema name of DeviceTokenClass. const DeviceTokenClassName = "DeviceToken" // DeviceTokenClass represents DeviceToken generic type. // // Example: // // g, err := tdapi.DecodeDeviceToken(buf) // if err != nil { // panic(err) // } // switch v := g.(type) { // case *tdapi.DeviceTokenFirebaseCloudMessaging: // deviceTokenFirebaseCloudMessaging#d0714a07 // case *tdapi.DeviceTokenApplePush: // deviceTokenApplePush#17196bc3 // case *tdapi.DeviceTokenApplePushVoIP: // deviceTokenApplePushVoIP#2ff045e9 // case *tdapi.DeviceTokenWindowsPush: // deviceTokenWindowsPush#abed428f // case *tdapi.DeviceTokenMicrosoftPush: // deviceTokenMicrosoftPush#48f8e04c // case *tdapi.DeviceTokenMicrosoftPushVoIP: // deviceTokenMicrosoftPushVoIP#d12ca351 // case *tdapi.DeviceTokenWebPush: // deviceTokenWebPush#9affdef7 // case *tdapi.DeviceTokenSimplePush: // deviceTokenSimplePush#2f49a60 // case *tdapi.DeviceTokenUbuntuPush: // deviceTokenUbuntuPush#6a3c0d26 // case *tdapi.DeviceTokenBlackBerryPush: // deviceTokenBlackBerryPush#5cef0102 // case *tdapi.DeviceTokenTizenPush: // deviceTokenTizenPush#aef0da33 // case *tdapi.DeviceTokenHuaweiPush: // deviceTokenHuaweiPush#768f4e26 // default: panic(v) // } type DeviceTokenClass interface { bin.Encoder bin.Decoder bin.BareEncoder bin.BareDecoder construct() DeviceTokenClass // 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 } // DecodeDeviceToken implements binary de-serialization for DeviceTokenClass. func DecodeDeviceToken(buf *bin.Buffer) (DeviceTokenClass, error) { id, err := buf.PeekID() if err != nil { return nil, err } switch id { case DeviceTokenFirebaseCloudMessagingTypeID: // Decoding deviceTokenFirebaseCloudMessaging#d0714a07. v := DeviceTokenFirebaseCloudMessaging{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenApplePushTypeID: // Decoding deviceTokenApplePush#17196bc3. v := DeviceTokenApplePush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenApplePushVoIPTypeID: // Decoding deviceTokenApplePushVoIP#2ff045e9. v := DeviceTokenApplePushVoIP{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenWindowsPushTypeID: // Decoding deviceTokenWindowsPush#abed428f. v := DeviceTokenWindowsPush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenMicrosoftPushTypeID: // Decoding deviceTokenMicrosoftPush#48f8e04c. v := DeviceTokenMicrosoftPush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenMicrosoftPushVoIPTypeID: // Decoding deviceTokenMicrosoftPushVoIP#d12ca351. v := DeviceTokenMicrosoftPushVoIP{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenWebPushTypeID: // Decoding deviceTokenWebPush#9affdef7. v := DeviceTokenWebPush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenSimplePushTypeID: // Decoding deviceTokenSimplePush#2f49a60. v := DeviceTokenSimplePush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenUbuntuPushTypeID: // Decoding deviceTokenUbuntuPush#6a3c0d26. v := DeviceTokenUbuntuPush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenBlackBerryPushTypeID: // Decoding deviceTokenBlackBerryPush#5cef0102. v := DeviceTokenBlackBerryPush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenTizenPushTypeID: // Decoding deviceTokenTizenPush#aef0da33. v := DeviceTokenTizenPush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case DeviceTokenHuaweiPushTypeID: // Decoding deviceTokenHuaweiPush#768f4e26. v := DeviceTokenHuaweiPush{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil default: return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", bin.NewUnexpectedID(id)) } } // DecodeTDLibJSONDeviceToken implements binary de-serialization for DeviceTokenClass. func DecodeTDLibJSONDeviceToken(buf tdjson.Decoder) (DeviceTokenClass, error) { id, err := buf.FindTypeID() if err != nil { return nil, err } switch id { case "deviceTokenFirebaseCloudMessaging": // Decoding deviceTokenFirebaseCloudMessaging#d0714a07. v := DeviceTokenFirebaseCloudMessaging{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenApplePush": // Decoding deviceTokenApplePush#17196bc3. v := DeviceTokenApplePush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenApplePushVoIP": // Decoding deviceTokenApplePushVoIP#2ff045e9. v := DeviceTokenApplePushVoIP{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenWindowsPush": // Decoding deviceTokenWindowsPush#abed428f. v := DeviceTokenWindowsPush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenMicrosoftPush": // Decoding deviceTokenMicrosoftPush#48f8e04c. v := DeviceTokenMicrosoftPush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenMicrosoftPushVoIP": // Decoding deviceTokenMicrosoftPushVoIP#d12ca351. v := DeviceTokenMicrosoftPushVoIP{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenWebPush": // Decoding deviceTokenWebPush#9affdef7. v := DeviceTokenWebPush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenSimplePush": // Decoding deviceTokenSimplePush#2f49a60. v := DeviceTokenSimplePush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenUbuntuPush": // Decoding deviceTokenUbuntuPush#6a3c0d26. v := DeviceTokenUbuntuPush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenBlackBerryPush": // Decoding deviceTokenBlackBerryPush#5cef0102. v := DeviceTokenBlackBerryPush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenTizenPush": // Decoding deviceTokenTizenPush#aef0da33. v := DeviceTokenTizenPush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil case "deviceTokenHuaweiPush": // Decoding deviceTokenHuaweiPush#768f4e26. v := DeviceTokenHuaweiPush{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", err) } return &v, nil default: return nil, fmt.Errorf("unable to decode DeviceTokenClass: %w", tdjson.NewUnexpectedID(id)) } } // DeviceToken boxes the DeviceTokenClass providing a helper. type DeviceTokenBox struct { DeviceToken DeviceTokenClass } // Decode implements bin.Decoder for DeviceTokenBox. func (b *DeviceTokenBox) Decode(buf *bin.Buffer) error { if b == nil { return fmt.Errorf("unable to decode DeviceTokenBox to nil") } v, err := DecodeDeviceToken(buf) if err != nil { return fmt.Errorf("unable to decode boxed value: %w", err) } b.DeviceToken = v return nil } // Encode implements bin.Encode for DeviceTokenBox. func (b *DeviceTokenBox) Encode(buf *bin.Buffer) error { if b == nil || b.DeviceToken == nil { return fmt.Errorf("unable to encode DeviceTokenClass as nil") } return b.DeviceToken.Encode(buf) } // DecodeTDLibJSON implements bin.Decoder for DeviceTokenBox. func (b *DeviceTokenBox) DecodeTDLibJSON(buf tdjson.Decoder) error { if b == nil { return fmt.Errorf("unable to decode DeviceTokenBox to nil") } v, err := DecodeTDLibJSONDeviceToken(buf) if err != nil { return fmt.Errorf("unable to decode boxed value: %w", err) } b.DeviceToken = v return nil } // EncodeTDLibJSON implements bin.Encode for DeviceTokenBox. func (b *DeviceTokenBox) EncodeTDLibJSON(buf tdjson.Encoder) error { if b == nil || b.DeviceToken == nil { return fmt.Errorf("unable to encode DeviceTokenClass as nil") } return b.DeviceToken.EncodeTDLibJSON(buf) }