Files
mautrix-telegram/pkg/gotd/tg/tl_phone_call_discard_reason_gen.go
T
2025-06-27 20:03:37 -07:00

690 lines
21 KiB
Go

// Code generated by gotdgen, DO NOT EDIT.
package tg
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{}
)
// PhoneCallDiscardReasonMissed represents TL type `phoneCallDiscardReasonMissed#85e42301`.
// The phone call was missed
//
// See https://core.telegram.org/constructor/phoneCallDiscardReasonMissed for reference.
type PhoneCallDiscardReasonMissed struct {
}
// PhoneCallDiscardReasonMissedTypeID is TL type id of PhoneCallDiscardReasonMissed.
const PhoneCallDiscardReasonMissedTypeID = 0x85e42301
// construct implements constructor of PhoneCallDiscardReasonClass.
func (p PhoneCallDiscardReasonMissed) construct() PhoneCallDiscardReasonClass { return &p }
// Ensuring interfaces in compile-time for PhoneCallDiscardReasonMissed.
var (
_ bin.Encoder = &PhoneCallDiscardReasonMissed{}
_ bin.Decoder = &PhoneCallDiscardReasonMissed{}
_ bin.BareEncoder = &PhoneCallDiscardReasonMissed{}
_ bin.BareDecoder = &PhoneCallDiscardReasonMissed{}
_ PhoneCallDiscardReasonClass = &PhoneCallDiscardReasonMissed{}
)
func (p *PhoneCallDiscardReasonMissed) Zero() bool {
if p == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (p *PhoneCallDiscardReasonMissed) String() string {
if p == nil {
return "PhoneCallDiscardReasonMissed(nil)"
}
type Alias PhoneCallDiscardReasonMissed
return fmt.Sprintf("PhoneCallDiscardReasonMissed%+v", Alias(*p))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*PhoneCallDiscardReasonMissed) TypeID() uint32 {
return PhoneCallDiscardReasonMissedTypeID
}
// TypeName returns name of type in TL schema.
func (*PhoneCallDiscardReasonMissed) TypeName() string {
return "phoneCallDiscardReasonMissed"
}
// TypeInfo returns info about TL type.
func (p *PhoneCallDiscardReasonMissed) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "phoneCallDiscardReasonMissed",
ID: PhoneCallDiscardReasonMissedTypeID,
}
if p == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (p *PhoneCallDiscardReasonMissed) Encode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonMissed#85e42301 as nil")
}
b.PutID(PhoneCallDiscardReasonMissedTypeID)
return p.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (p *PhoneCallDiscardReasonMissed) EncodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonMissed#85e42301 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (p *PhoneCallDiscardReasonMissed) Decode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonMissed#85e42301 to nil")
}
if err := b.ConsumeID(PhoneCallDiscardReasonMissedTypeID); err != nil {
return fmt.Errorf("unable to decode phoneCallDiscardReasonMissed#85e42301: %w", err)
}
return p.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (p *PhoneCallDiscardReasonMissed) DecodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonMissed#85e42301 to nil")
}
return nil
}
// PhoneCallDiscardReasonDisconnect represents TL type `phoneCallDiscardReasonDisconnect#e095c1a0`.
// The phone call was disconnected
//
// See https://core.telegram.org/constructor/phoneCallDiscardReasonDisconnect for reference.
type PhoneCallDiscardReasonDisconnect struct {
}
// PhoneCallDiscardReasonDisconnectTypeID is TL type id of PhoneCallDiscardReasonDisconnect.
const PhoneCallDiscardReasonDisconnectTypeID = 0xe095c1a0
// construct implements constructor of PhoneCallDiscardReasonClass.
func (p PhoneCallDiscardReasonDisconnect) construct() PhoneCallDiscardReasonClass { return &p }
// Ensuring interfaces in compile-time for PhoneCallDiscardReasonDisconnect.
var (
_ bin.Encoder = &PhoneCallDiscardReasonDisconnect{}
_ bin.Decoder = &PhoneCallDiscardReasonDisconnect{}
_ bin.BareEncoder = &PhoneCallDiscardReasonDisconnect{}
_ bin.BareDecoder = &PhoneCallDiscardReasonDisconnect{}
_ PhoneCallDiscardReasonClass = &PhoneCallDiscardReasonDisconnect{}
)
func (p *PhoneCallDiscardReasonDisconnect) Zero() bool {
if p == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (p *PhoneCallDiscardReasonDisconnect) String() string {
if p == nil {
return "PhoneCallDiscardReasonDisconnect(nil)"
}
type Alias PhoneCallDiscardReasonDisconnect
return fmt.Sprintf("PhoneCallDiscardReasonDisconnect%+v", Alias(*p))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*PhoneCallDiscardReasonDisconnect) TypeID() uint32 {
return PhoneCallDiscardReasonDisconnectTypeID
}
// TypeName returns name of type in TL schema.
func (*PhoneCallDiscardReasonDisconnect) TypeName() string {
return "phoneCallDiscardReasonDisconnect"
}
// TypeInfo returns info about TL type.
func (p *PhoneCallDiscardReasonDisconnect) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "phoneCallDiscardReasonDisconnect",
ID: PhoneCallDiscardReasonDisconnectTypeID,
}
if p == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (p *PhoneCallDiscardReasonDisconnect) Encode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonDisconnect#e095c1a0 as nil")
}
b.PutID(PhoneCallDiscardReasonDisconnectTypeID)
return p.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (p *PhoneCallDiscardReasonDisconnect) EncodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonDisconnect#e095c1a0 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (p *PhoneCallDiscardReasonDisconnect) Decode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonDisconnect#e095c1a0 to nil")
}
if err := b.ConsumeID(PhoneCallDiscardReasonDisconnectTypeID); err != nil {
return fmt.Errorf("unable to decode phoneCallDiscardReasonDisconnect#e095c1a0: %w", err)
}
return p.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (p *PhoneCallDiscardReasonDisconnect) DecodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonDisconnect#e095c1a0 to nil")
}
return nil
}
// PhoneCallDiscardReasonHangup represents TL type `phoneCallDiscardReasonHangup#57adc690`.
// The phone call was ended normally
//
// See https://core.telegram.org/constructor/phoneCallDiscardReasonHangup for reference.
type PhoneCallDiscardReasonHangup struct {
}
// PhoneCallDiscardReasonHangupTypeID is TL type id of PhoneCallDiscardReasonHangup.
const PhoneCallDiscardReasonHangupTypeID = 0x57adc690
// construct implements constructor of PhoneCallDiscardReasonClass.
func (p PhoneCallDiscardReasonHangup) construct() PhoneCallDiscardReasonClass { return &p }
// Ensuring interfaces in compile-time for PhoneCallDiscardReasonHangup.
var (
_ bin.Encoder = &PhoneCallDiscardReasonHangup{}
_ bin.Decoder = &PhoneCallDiscardReasonHangup{}
_ bin.BareEncoder = &PhoneCallDiscardReasonHangup{}
_ bin.BareDecoder = &PhoneCallDiscardReasonHangup{}
_ PhoneCallDiscardReasonClass = &PhoneCallDiscardReasonHangup{}
)
func (p *PhoneCallDiscardReasonHangup) Zero() bool {
if p == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (p *PhoneCallDiscardReasonHangup) String() string {
if p == nil {
return "PhoneCallDiscardReasonHangup(nil)"
}
type Alias PhoneCallDiscardReasonHangup
return fmt.Sprintf("PhoneCallDiscardReasonHangup%+v", Alias(*p))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*PhoneCallDiscardReasonHangup) TypeID() uint32 {
return PhoneCallDiscardReasonHangupTypeID
}
// TypeName returns name of type in TL schema.
func (*PhoneCallDiscardReasonHangup) TypeName() string {
return "phoneCallDiscardReasonHangup"
}
// TypeInfo returns info about TL type.
func (p *PhoneCallDiscardReasonHangup) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "phoneCallDiscardReasonHangup",
ID: PhoneCallDiscardReasonHangupTypeID,
}
if p == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (p *PhoneCallDiscardReasonHangup) Encode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonHangup#57adc690 as nil")
}
b.PutID(PhoneCallDiscardReasonHangupTypeID)
return p.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (p *PhoneCallDiscardReasonHangup) EncodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonHangup#57adc690 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (p *PhoneCallDiscardReasonHangup) Decode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonHangup#57adc690 to nil")
}
if err := b.ConsumeID(PhoneCallDiscardReasonHangupTypeID); err != nil {
return fmt.Errorf("unable to decode phoneCallDiscardReasonHangup#57adc690: %w", err)
}
return p.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (p *PhoneCallDiscardReasonHangup) DecodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonHangup#57adc690 to nil")
}
return nil
}
// PhoneCallDiscardReasonBusy represents TL type `phoneCallDiscardReasonBusy#faf7e8c9`.
// The phone call was discarded because the user is busy in another call
//
// See https://core.telegram.org/constructor/phoneCallDiscardReasonBusy for reference.
type PhoneCallDiscardReasonBusy struct {
}
// PhoneCallDiscardReasonBusyTypeID is TL type id of PhoneCallDiscardReasonBusy.
const PhoneCallDiscardReasonBusyTypeID = 0xfaf7e8c9
// construct implements constructor of PhoneCallDiscardReasonClass.
func (p PhoneCallDiscardReasonBusy) construct() PhoneCallDiscardReasonClass { return &p }
// Ensuring interfaces in compile-time for PhoneCallDiscardReasonBusy.
var (
_ bin.Encoder = &PhoneCallDiscardReasonBusy{}
_ bin.Decoder = &PhoneCallDiscardReasonBusy{}
_ bin.BareEncoder = &PhoneCallDiscardReasonBusy{}
_ bin.BareDecoder = &PhoneCallDiscardReasonBusy{}
_ PhoneCallDiscardReasonClass = &PhoneCallDiscardReasonBusy{}
)
func (p *PhoneCallDiscardReasonBusy) Zero() bool {
if p == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (p *PhoneCallDiscardReasonBusy) String() string {
if p == nil {
return "PhoneCallDiscardReasonBusy(nil)"
}
type Alias PhoneCallDiscardReasonBusy
return fmt.Sprintf("PhoneCallDiscardReasonBusy%+v", Alias(*p))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*PhoneCallDiscardReasonBusy) TypeID() uint32 {
return PhoneCallDiscardReasonBusyTypeID
}
// TypeName returns name of type in TL schema.
func (*PhoneCallDiscardReasonBusy) TypeName() string {
return "phoneCallDiscardReasonBusy"
}
// TypeInfo returns info about TL type.
func (p *PhoneCallDiscardReasonBusy) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "phoneCallDiscardReasonBusy",
ID: PhoneCallDiscardReasonBusyTypeID,
}
if p == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (p *PhoneCallDiscardReasonBusy) Encode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonBusy#faf7e8c9 as nil")
}
b.PutID(PhoneCallDiscardReasonBusyTypeID)
return p.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (p *PhoneCallDiscardReasonBusy) EncodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonBusy#faf7e8c9 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (p *PhoneCallDiscardReasonBusy) Decode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonBusy#faf7e8c9 to nil")
}
if err := b.ConsumeID(PhoneCallDiscardReasonBusyTypeID); err != nil {
return fmt.Errorf("unable to decode phoneCallDiscardReasonBusy#faf7e8c9: %w", err)
}
return p.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (p *PhoneCallDiscardReasonBusy) DecodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonBusy#faf7e8c9 to nil")
}
return nil
}
// PhoneCallDiscardReasonMigrateConferenceCall represents TL type `phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7`.
//
// See https://core.telegram.org/constructor/phoneCallDiscardReasonMigrateConferenceCall for reference.
type PhoneCallDiscardReasonMigrateConferenceCall struct {
// Slug field of PhoneCallDiscardReasonMigrateConferenceCall.
Slug string
}
// PhoneCallDiscardReasonMigrateConferenceCallTypeID is TL type id of PhoneCallDiscardReasonMigrateConferenceCall.
const PhoneCallDiscardReasonMigrateConferenceCallTypeID = 0x9fbbf1f7
// construct implements constructor of PhoneCallDiscardReasonClass.
func (p PhoneCallDiscardReasonMigrateConferenceCall) construct() PhoneCallDiscardReasonClass {
return &p
}
// Ensuring interfaces in compile-time for PhoneCallDiscardReasonMigrateConferenceCall.
var (
_ bin.Encoder = &PhoneCallDiscardReasonMigrateConferenceCall{}
_ bin.Decoder = &PhoneCallDiscardReasonMigrateConferenceCall{}
_ bin.BareEncoder = &PhoneCallDiscardReasonMigrateConferenceCall{}
_ bin.BareDecoder = &PhoneCallDiscardReasonMigrateConferenceCall{}
_ PhoneCallDiscardReasonClass = &PhoneCallDiscardReasonMigrateConferenceCall{}
)
func (p *PhoneCallDiscardReasonMigrateConferenceCall) Zero() bool {
if p == nil {
return true
}
if !(p.Slug == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (p *PhoneCallDiscardReasonMigrateConferenceCall) String() string {
if p == nil {
return "PhoneCallDiscardReasonMigrateConferenceCall(nil)"
}
type Alias PhoneCallDiscardReasonMigrateConferenceCall
return fmt.Sprintf("PhoneCallDiscardReasonMigrateConferenceCall%+v", Alias(*p))
}
// FillFrom fills PhoneCallDiscardReasonMigrateConferenceCall from given interface.
func (p *PhoneCallDiscardReasonMigrateConferenceCall) FillFrom(from interface {
GetSlug() (value string)
}) {
p.Slug = from.GetSlug()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*PhoneCallDiscardReasonMigrateConferenceCall) TypeID() uint32 {
return PhoneCallDiscardReasonMigrateConferenceCallTypeID
}
// TypeName returns name of type in TL schema.
func (*PhoneCallDiscardReasonMigrateConferenceCall) TypeName() string {
return "phoneCallDiscardReasonMigrateConferenceCall"
}
// TypeInfo returns info about TL type.
func (p *PhoneCallDiscardReasonMigrateConferenceCall) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "phoneCallDiscardReasonMigrateConferenceCall",
ID: PhoneCallDiscardReasonMigrateConferenceCallTypeID,
}
if p == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Slug",
SchemaName: "slug",
},
}
return typ
}
// Encode implements bin.Encoder.
func (p *PhoneCallDiscardReasonMigrateConferenceCall) Encode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7 as nil")
}
b.PutID(PhoneCallDiscardReasonMigrateConferenceCallTypeID)
return p.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (p *PhoneCallDiscardReasonMigrateConferenceCall) EncodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't encode phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7 as nil")
}
b.PutString(p.Slug)
return nil
}
// Decode implements bin.Decoder.
func (p *PhoneCallDiscardReasonMigrateConferenceCall) Decode(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7 to nil")
}
if err := b.ConsumeID(PhoneCallDiscardReasonMigrateConferenceCallTypeID); err != nil {
return fmt.Errorf("unable to decode phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7: %w", err)
}
return p.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (p *PhoneCallDiscardReasonMigrateConferenceCall) DecodeBare(b *bin.Buffer) error {
if p == nil {
return fmt.Errorf("can't decode phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7: field slug: %w", err)
}
p.Slug = value
}
return nil
}
// GetSlug returns value of Slug field.
func (p *PhoneCallDiscardReasonMigrateConferenceCall) GetSlug() (value string) {
if p == nil {
return
}
return p.Slug
}
// PhoneCallDiscardReasonClassName is schema name of PhoneCallDiscardReasonClass.
const PhoneCallDiscardReasonClassName = "PhoneCallDiscardReason"
// PhoneCallDiscardReasonClass represents PhoneCallDiscardReason generic type.
//
// See https://core.telegram.org/type/PhoneCallDiscardReason for reference.
//
// Example:
//
// g, err := tg.DecodePhoneCallDiscardReason(buf)
// if err != nil {
// panic(err)
// }
// switch v := g.(type) {
// case *tg.PhoneCallDiscardReasonMissed: // phoneCallDiscardReasonMissed#85e42301
// case *tg.PhoneCallDiscardReasonDisconnect: // phoneCallDiscardReasonDisconnect#e095c1a0
// case *tg.PhoneCallDiscardReasonHangup: // phoneCallDiscardReasonHangup#57adc690
// case *tg.PhoneCallDiscardReasonBusy: // phoneCallDiscardReasonBusy#faf7e8c9
// case *tg.PhoneCallDiscardReasonMigrateConferenceCall: // phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7
// default: panic(v)
// }
type PhoneCallDiscardReasonClass interface {
bin.Encoder
bin.Decoder
bin.BareEncoder
bin.BareDecoder
construct() PhoneCallDiscardReasonClass
// 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
}
// DecodePhoneCallDiscardReason implements binary de-serialization for PhoneCallDiscardReasonClass.
func DecodePhoneCallDiscardReason(buf *bin.Buffer) (PhoneCallDiscardReasonClass, error) {
id, err := buf.PeekID()
if err != nil {
return nil, err
}
switch id {
case PhoneCallDiscardReasonMissedTypeID:
// Decoding phoneCallDiscardReasonMissed#85e42301.
v := PhoneCallDiscardReasonMissed{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode PhoneCallDiscardReasonClass: %w", err)
}
return &v, nil
case PhoneCallDiscardReasonDisconnectTypeID:
// Decoding phoneCallDiscardReasonDisconnect#e095c1a0.
v := PhoneCallDiscardReasonDisconnect{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode PhoneCallDiscardReasonClass: %w", err)
}
return &v, nil
case PhoneCallDiscardReasonHangupTypeID:
// Decoding phoneCallDiscardReasonHangup#57adc690.
v := PhoneCallDiscardReasonHangup{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode PhoneCallDiscardReasonClass: %w", err)
}
return &v, nil
case PhoneCallDiscardReasonBusyTypeID:
// Decoding phoneCallDiscardReasonBusy#faf7e8c9.
v := PhoneCallDiscardReasonBusy{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode PhoneCallDiscardReasonClass: %w", err)
}
return &v, nil
case PhoneCallDiscardReasonMigrateConferenceCallTypeID:
// Decoding phoneCallDiscardReasonMigrateConferenceCall#9fbbf1f7.
v := PhoneCallDiscardReasonMigrateConferenceCall{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode PhoneCallDiscardReasonClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode PhoneCallDiscardReasonClass: %w", bin.NewUnexpectedID(id))
}
}
// PhoneCallDiscardReason boxes the PhoneCallDiscardReasonClass providing a helper.
type PhoneCallDiscardReasonBox struct {
PhoneCallDiscardReason PhoneCallDiscardReasonClass
}
// Decode implements bin.Decoder for PhoneCallDiscardReasonBox.
func (b *PhoneCallDiscardReasonBox) Decode(buf *bin.Buffer) error {
if b == nil {
return fmt.Errorf("unable to decode PhoneCallDiscardReasonBox to nil")
}
v, err := DecodePhoneCallDiscardReason(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.PhoneCallDiscardReason = v
return nil
}
// Encode implements bin.Encode for PhoneCallDiscardReasonBox.
func (b *PhoneCallDiscardReasonBox) Encode(buf *bin.Buffer) error {
if b == nil || b.PhoneCallDiscardReason == nil {
return fmt.Errorf("unable to encode PhoneCallDiscardReasonClass as nil")
}
return b.PhoneCallDiscardReason.Encode(buf)
}