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

1227 lines
34 KiB
Go

// 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{}
)
// ChatActionBarReportSpam represents TL type `chatActionBarReportSpam#b1c0e61a`.
type ChatActionBarReportSpam struct {
// If true, the chat was automatically archived and can be moved back to the main chat
// list using addChatToList simultaneously with setting chat notification settings to
// default using setChatNotificationSettings
CanUnarchive bool
}
// ChatActionBarReportSpamTypeID is TL type id of ChatActionBarReportSpam.
const ChatActionBarReportSpamTypeID = 0xb1c0e61a
// construct implements constructor of ChatActionBarClass.
func (c ChatActionBarReportSpam) construct() ChatActionBarClass { return &c }
// Ensuring interfaces in compile-time for ChatActionBarReportSpam.
var (
_ bin.Encoder = &ChatActionBarReportSpam{}
_ bin.Decoder = &ChatActionBarReportSpam{}
_ bin.BareEncoder = &ChatActionBarReportSpam{}
_ bin.BareDecoder = &ChatActionBarReportSpam{}
_ ChatActionBarClass = &ChatActionBarReportSpam{}
)
func (c *ChatActionBarReportSpam) Zero() bool {
if c == nil {
return true
}
if !(c.CanUnarchive == false) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatActionBarReportSpam) String() string {
if c == nil {
return "ChatActionBarReportSpam(nil)"
}
type Alias ChatActionBarReportSpam
return fmt.Sprintf("ChatActionBarReportSpam%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatActionBarReportSpam) TypeID() uint32 {
return ChatActionBarReportSpamTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatActionBarReportSpam) TypeName() string {
return "chatActionBarReportSpam"
}
// TypeInfo returns info about TL type.
func (c *ChatActionBarReportSpam) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatActionBarReportSpam",
ID: ChatActionBarReportSpamTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "CanUnarchive",
SchemaName: "can_unarchive",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatActionBarReportSpam) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarReportSpam#b1c0e61a as nil")
}
b.PutID(ChatActionBarReportSpamTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatActionBarReportSpam) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarReportSpam#b1c0e61a as nil")
}
b.PutBool(c.CanUnarchive)
return nil
}
// Decode implements bin.Decoder.
func (c *ChatActionBarReportSpam) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarReportSpam#b1c0e61a to nil")
}
if err := b.ConsumeID(ChatActionBarReportSpamTypeID); err != nil {
return fmt.Errorf("unable to decode chatActionBarReportSpam#b1c0e61a: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatActionBarReportSpam) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarReportSpam#b1c0e61a to nil")
}
{
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarReportSpam#b1c0e61a: field can_unarchive: %w", err)
}
c.CanUnarchive = value
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatActionBarReportSpam) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarReportSpam#b1c0e61a as nil")
}
b.ObjStart()
b.PutID("chatActionBarReportSpam")
b.Comma()
b.FieldStart("can_unarchive")
b.PutBool(c.CanUnarchive)
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatActionBarReportSpam) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarReportSpam#b1c0e61a to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatActionBarReportSpam"); err != nil {
return fmt.Errorf("unable to decode chatActionBarReportSpam#b1c0e61a: %w", err)
}
case "can_unarchive":
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarReportSpam#b1c0e61a: field can_unarchive: %w", err)
}
c.CanUnarchive = value
default:
return b.Skip()
}
return nil
})
}
// GetCanUnarchive returns value of CanUnarchive field.
func (c *ChatActionBarReportSpam) GetCanUnarchive() (value bool) {
if c == nil {
return
}
return c.CanUnarchive
}
// ChatActionBarInviteMembers represents TL type `chatActionBarInviteMembers#76557c70`.
type ChatActionBarInviteMembers struct {
}
// ChatActionBarInviteMembersTypeID is TL type id of ChatActionBarInviteMembers.
const ChatActionBarInviteMembersTypeID = 0x76557c70
// construct implements constructor of ChatActionBarClass.
func (c ChatActionBarInviteMembers) construct() ChatActionBarClass { return &c }
// Ensuring interfaces in compile-time for ChatActionBarInviteMembers.
var (
_ bin.Encoder = &ChatActionBarInviteMembers{}
_ bin.Decoder = &ChatActionBarInviteMembers{}
_ bin.BareEncoder = &ChatActionBarInviteMembers{}
_ bin.BareDecoder = &ChatActionBarInviteMembers{}
_ ChatActionBarClass = &ChatActionBarInviteMembers{}
)
func (c *ChatActionBarInviteMembers) Zero() bool {
if c == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (c *ChatActionBarInviteMembers) String() string {
if c == nil {
return "ChatActionBarInviteMembers(nil)"
}
type Alias ChatActionBarInviteMembers
return fmt.Sprintf("ChatActionBarInviteMembers%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatActionBarInviteMembers) TypeID() uint32 {
return ChatActionBarInviteMembersTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatActionBarInviteMembers) TypeName() string {
return "chatActionBarInviteMembers"
}
// TypeInfo returns info about TL type.
func (c *ChatActionBarInviteMembers) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatActionBarInviteMembers",
ID: ChatActionBarInviteMembersTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatActionBarInviteMembers) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarInviteMembers#76557c70 as nil")
}
b.PutID(ChatActionBarInviteMembersTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatActionBarInviteMembers) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarInviteMembers#76557c70 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatActionBarInviteMembers) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarInviteMembers#76557c70 to nil")
}
if err := b.ConsumeID(ChatActionBarInviteMembersTypeID); err != nil {
return fmt.Errorf("unable to decode chatActionBarInviteMembers#76557c70: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatActionBarInviteMembers) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarInviteMembers#76557c70 to nil")
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatActionBarInviteMembers) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarInviteMembers#76557c70 as nil")
}
b.ObjStart()
b.PutID("chatActionBarInviteMembers")
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatActionBarInviteMembers) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarInviteMembers#76557c70 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatActionBarInviteMembers"); err != nil {
return fmt.Errorf("unable to decode chatActionBarInviteMembers#76557c70: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// ChatActionBarReportAddBlock represents TL type `chatActionBarReportAddBlock#a7f98e8b`.
type ChatActionBarReportAddBlock struct {
// If true, the chat was automatically archived and can be moved back to the main chat
// list using addChatToList simultaneously with setting chat notification settings to
// default using setChatNotificationSettings
CanUnarchive bool
// Basic information about the other user in the chat; may be null if unknown
AccountInfo AccountInfo
}
// ChatActionBarReportAddBlockTypeID is TL type id of ChatActionBarReportAddBlock.
const ChatActionBarReportAddBlockTypeID = 0xa7f98e8b
// construct implements constructor of ChatActionBarClass.
func (c ChatActionBarReportAddBlock) construct() ChatActionBarClass { return &c }
// Ensuring interfaces in compile-time for ChatActionBarReportAddBlock.
var (
_ bin.Encoder = &ChatActionBarReportAddBlock{}
_ bin.Decoder = &ChatActionBarReportAddBlock{}
_ bin.BareEncoder = &ChatActionBarReportAddBlock{}
_ bin.BareDecoder = &ChatActionBarReportAddBlock{}
_ ChatActionBarClass = &ChatActionBarReportAddBlock{}
)
func (c *ChatActionBarReportAddBlock) Zero() bool {
if c == nil {
return true
}
if !(c.CanUnarchive == false) {
return false
}
if !(c.AccountInfo.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatActionBarReportAddBlock) String() string {
if c == nil {
return "ChatActionBarReportAddBlock(nil)"
}
type Alias ChatActionBarReportAddBlock
return fmt.Sprintf("ChatActionBarReportAddBlock%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatActionBarReportAddBlock) TypeID() uint32 {
return ChatActionBarReportAddBlockTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatActionBarReportAddBlock) TypeName() string {
return "chatActionBarReportAddBlock"
}
// TypeInfo returns info about TL type.
func (c *ChatActionBarReportAddBlock) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatActionBarReportAddBlock",
ID: ChatActionBarReportAddBlockTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "CanUnarchive",
SchemaName: "can_unarchive",
},
{
Name: "AccountInfo",
SchemaName: "account_info",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatActionBarReportAddBlock) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarReportAddBlock#a7f98e8b as nil")
}
b.PutID(ChatActionBarReportAddBlockTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatActionBarReportAddBlock) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarReportAddBlock#a7f98e8b as nil")
}
b.PutBool(c.CanUnarchive)
if err := c.AccountInfo.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatActionBarReportAddBlock#a7f98e8b: field account_info: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatActionBarReportAddBlock) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarReportAddBlock#a7f98e8b to nil")
}
if err := b.ConsumeID(ChatActionBarReportAddBlockTypeID); err != nil {
return fmt.Errorf("unable to decode chatActionBarReportAddBlock#a7f98e8b: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatActionBarReportAddBlock) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarReportAddBlock#a7f98e8b to nil")
}
{
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarReportAddBlock#a7f98e8b: field can_unarchive: %w", err)
}
c.CanUnarchive = value
}
{
if err := c.AccountInfo.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatActionBarReportAddBlock#a7f98e8b: field account_info: %w", err)
}
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatActionBarReportAddBlock) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarReportAddBlock#a7f98e8b as nil")
}
b.ObjStart()
b.PutID("chatActionBarReportAddBlock")
b.Comma()
b.FieldStart("can_unarchive")
b.PutBool(c.CanUnarchive)
b.Comma()
b.FieldStart("account_info")
if err := c.AccountInfo.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatActionBarReportAddBlock#a7f98e8b: field account_info: %w", err)
}
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatActionBarReportAddBlock) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarReportAddBlock#a7f98e8b to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatActionBarReportAddBlock"); err != nil {
return fmt.Errorf("unable to decode chatActionBarReportAddBlock#a7f98e8b: %w", err)
}
case "can_unarchive":
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarReportAddBlock#a7f98e8b: field can_unarchive: %w", err)
}
c.CanUnarchive = value
case "account_info":
if err := c.AccountInfo.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatActionBarReportAddBlock#a7f98e8b: field account_info: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// GetCanUnarchive returns value of CanUnarchive field.
func (c *ChatActionBarReportAddBlock) GetCanUnarchive() (value bool) {
if c == nil {
return
}
return c.CanUnarchive
}
// GetAccountInfo returns value of AccountInfo field.
func (c *ChatActionBarReportAddBlock) GetAccountInfo() (value AccountInfo) {
if c == nil {
return
}
return c.AccountInfo
}
// ChatActionBarAddContact represents TL type `chatActionBarAddContact#d44a5811`.
type ChatActionBarAddContact struct {
}
// ChatActionBarAddContactTypeID is TL type id of ChatActionBarAddContact.
const ChatActionBarAddContactTypeID = 0xd44a5811
// construct implements constructor of ChatActionBarClass.
func (c ChatActionBarAddContact) construct() ChatActionBarClass { return &c }
// Ensuring interfaces in compile-time for ChatActionBarAddContact.
var (
_ bin.Encoder = &ChatActionBarAddContact{}
_ bin.Decoder = &ChatActionBarAddContact{}
_ bin.BareEncoder = &ChatActionBarAddContact{}
_ bin.BareDecoder = &ChatActionBarAddContact{}
_ ChatActionBarClass = &ChatActionBarAddContact{}
)
func (c *ChatActionBarAddContact) Zero() bool {
if c == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (c *ChatActionBarAddContact) String() string {
if c == nil {
return "ChatActionBarAddContact(nil)"
}
type Alias ChatActionBarAddContact
return fmt.Sprintf("ChatActionBarAddContact%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatActionBarAddContact) TypeID() uint32 {
return ChatActionBarAddContactTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatActionBarAddContact) TypeName() string {
return "chatActionBarAddContact"
}
// TypeInfo returns info about TL type.
func (c *ChatActionBarAddContact) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatActionBarAddContact",
ID: ChatActionBarAddContactTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatActionBarAddContact) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarAddContact#d44a5811 as nil")
}
b.PutID(ChatActionBarAddContactTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatActionBarAddContact) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarAddContact#d44a5811 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatActionBarAddContact) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarAddContact#d44a5811 to nil")
}
if err := b.ConsumeID(ChatActionBarAddContactTypeID); err != nil {
return fmt.Errorf("unable to decode chatActionBarAddContact#d44a5811: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatActionBarAddContact) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarAddContact#d44a5811 to nil")
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatActionBarAddContact) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarAddContact#d44a5811 as nil")
}
b.ObjStart()
b.PutID("chatActionBarAddContact")
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatActionBarAddContact) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarAddContact#d44a5811 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatActionBarAddContact"); err != nil {
return fmt.Errorf("unable to decode chatActionBarAddContact#d44a5811: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// ChatActionBarSharePhoneNumber represents TL type `chatActionBarSharePhoneNumber#218efd9`.
type ChatActionBarSharePhoneNumber struct {
}
// ChatActionBarSharePhoneNumberTypeID is TL type id of ChatActionBarSharePhoneNumber.
const ChatActionBarSharePhoneNumberTypeID = 0x218efd9
// construct implements constructor of ChatActionBarClass.
func (c ChatActionBarSharePhoneNumber) construct() ChatActionBarClass { return &c }
// Ensuring interfaces in compile-time for ChatActionBarSharePhoneNumber.
var (
_ bin.Encoder = &ChatActionBarSharePhoneNumber{}
_ bin.Decoder = &ChatActionBarSharePhoneNumber{}
_ bin.BareEncoder = &ChatActionBarSharePhoneNumber{}
_ bin.BareDecoder = &ChatActionBarSharePhoneNumber{}
_ ChatActionBarClass = &ChatActionBarSharePhoneNumber{}
)
func (c *ChatActionBarSharePhoneNumber) Zero() bool {
if c == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (c *ChatActionBarSharePhoneNumber) String() string {
if c == nil {
return "ChatActionBarSharePhoneNumber(nil)"
}
type Alias ChatActionBarSharePhoneNumber
return fmt.Sprintf("ChatActionBarSharePhoneNumber%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatActionBarSharePhoneNumber) TypeID() uint32 {
return ChatActionBarSharePhoneNumberTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatActionBarSharePhoneNumber) TypeName() string {
return "chatActionBarSharePhoneNumber"
}
// TypeInfo returns info about TL type.
func (c *ChatActionBarSharePhoneNumber) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatActionBarSharePhoneNumber",
ID: ChatActionBarSharePhoneNumberTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatActionBarSharePhoneNumber) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarSharePhoneNumber#218efd9 as nil")
}
b.PutID(ChatActionBarSharePhoneNumberTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatActionBarSharePhoneNumber) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarSharePhoneNumber#218efd9 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatActionBarSharePhoneNumber) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarSharePhoneNumber#218efd9 to nil")
}
if err := b.ConsumeID(ChatActionBarSharePhoneNumberTypeID); err != nil {
return fmt.Errorf("unable to decode chatActionBarSharePhoneNumber#218efd9: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatActionBarSharePhoneNumber) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarSharePhoneNumber#218efd9 to nil")
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatActionBarSharePhoneNumber) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarSharePhoneNumber#218efd9 as nil")
}
b.ObjStart()
b.PutID("chatActionBarSharePhoneNumber")
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatActionBarSharePhoneNumber) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarSharePhoneNumber#218efd9 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatActionBarSharePhoneNumber"); err != nil {
return fmt.Errorf("unable to decode chatActionBarSharePhoneNumber#218efd9: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// ChatActionBarJoinRequest represents TL type `chatActionBarJoinRequest#3dd18308`.
type ChatActionBarJoinRequest struct {
// Title of the chat to which the join request was sent
Title string
// True, if the join request was sent to a channel chat
IsChannel bool
// Point in time (Unix timestamp) when the join request was sent
RequestDate int32
}
// ChatActionBarJoinRequestTypeID is TL type id of ChatActionBarJoinRequest.
const ChatActionBarJoinRequestTypeID = 0x3dd18308
// construct implements constructor of ChatActionBarClass.
func (c ChatActionBarJoinRequest) construct() ChatActionBarClass { return &c }
// Ensuring interfaces in compile-time for ChatActionBarJoinRequest.
var (
_ bin.Encoder = &ChatActionBarJoinRequest{}
_ bin.Decoder = &ChatActionBarJoinRequest{}
_ bin.BareEncoder = &ChatActionBarJoinRequest{}
_ bin.BareDecoder = &ChatActionBarJoinRequest{}
_ ChatActionBarClass = &ChatActionBarJoinRequest{}
)
func (c *ChatActionBarJoinRequest) Zero() bool {
if c == nil {
return true
}
if !(c.Title == "") {
return false
}
if !(c.IsChannel == false) {
return false
}
if !(c.RequestDate == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatActionBarJoinRequest) String() string {
if c == nil {
return "ChatActionBarJoinRequest(nil)"
}
type Alias ChatActionBarJoinRequest
return fmt.Sprintf("ChatActionBarJoinRequest%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatActionBarJoinRequest) TypeID() uint32 {
return ChatActionBarJoinRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatActionBarJoinRequest) TypeName() string {
return "chatActionBarJoinRequest"
}
// TypeInfo returns info about TL type.
func (c *ChatActionBarJoinRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatActionBarJoinRequest",
ID: ChatActionBarJoinRequestTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Title",
SchemaName: "title",
},
{
Name: "IsChannel",
SchemaName: "is_channel",
},
{
Name: "RequestDate",
SchemaName: "request_date",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatActionBarJoinRequest) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarJoinRequest#3dd18308 as nil")
}
b.PutID(ChatActionBarJoinRequestTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatActionBarJoinRequest) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarJoinRequest#3dd18308 as nil")
}
b.PutString(c.Title)
b.PutBool(c.IsChannel)
b.PutInt32(c.RequestDate)
return nil
}
// Decode implements bin.Decoder.
func (c *ChatActionBarJoinRequest) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarJoinRequest#3dd18308 to nil")
}
if err := b.ConsumeID(ChatActionBarJoinRequestTypeID); err != nil {
return fmt.Errorf("unable to decode chatActionBarJoinRequest#3dd18308: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatActionBarJoinRequest) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarJoinRequest#3dd18308 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarJoinRequest#3dd18308: field title: %w", err)
}
c.Title = value
}
{
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarJoinRequest#3dd18308: field is_channel: %w", err)
}
c.IsChannel = value
}
{
value, err := b.Int32()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarJoinRequest#3dd18308: field request_date: %w", err)
}
c.RequestDate = value
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatActionBarJoinRequest) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatActionBarJoinRequest#3dd18308 as nil")
}
b.ObjStart()
b.PutID("chatActionBarJoinRequest")
b.Comma()
b.FieldStart("title")
b.PutString(c.Title)
b.Comma()
b.FieldStart("is_channel")
b.PutBool(c.IsChannel)
b.Comma()
b.FieldStart("request_date")
b.PutInt32(c.RequestDate)
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatActionBarJoinRequest) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatActionBarJoinRequest#3dd18308 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatActionBarJoinRequest"); err != nil {
return fmt.Errorf("unable to decode chatActionBarJoinRequest#3dd18308: %w", err)
}
case "title":
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarJoinRequest#3dd18308: field title: %w", err)
}
c.Title = value
case "is_channel":
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarJoinRequest#3dd18308: field is_channel: %w", err)
}
c.IsChannel = value
case "request_date":
value, err := b.Int32()
if err != nil {
return fmt.Errorf("unable to decode chatActionBarJoinRequest#3dd18308: field request_date: %w", err)
}
c.RequestDate = value
default:
return b.Skip()
}
return nil
})
}
// GetTitle returns value of Title field.
func (c *ChatActionBarJoinRequest) GetTitle() (value string) {
if c == nil {
return
}
return c.Title
}
// GetIsChannel returns value of IsChannel field.
func (c *ChatActionBarJoinRequest) GetIsChannel() (value bool) {
if c == nil {
return
}
return c.IsChannel
}
// GetRequestDate returns value of RequestDate field.
func (c *ChatActionBarJoinRequest) GetRequestDate() (value int32) {
if c == nil {
return
}
return c.RequestDate
}
// ChatActionBarClassName is schema name of ChatActionBarClass.
const ChatActionBarClassName = "ChatActionBar"
// ChatActionBarClass represents ChatActionBar generic type.
//
// Example:
//
// g, err := tdapi.DecodeChatActionBar(buf)
// if err != nil {
// panic(err)
// }
// switch v := g.(type) {
// case *tdapi.ChatActionBarReportSpam: // chatActionBarReportSpam#b1c0e61a
// case *tdapi.ChatActionBarInviteMembers: // chatActionBarInviteMembers#76557c70
// case *tdapi.ChatActionBarReportAddBlock: // chatActionBarReportAddBlock#a7f98e8b
// case *tdapi.ChatActionBarAddContact: // chatActionBarAddContact#d44a5811
// case *tdapi.ChatActionBarSharePhoneNumber: // chatActionBarSharePhoneNumber#218efd9
// case *tdapi.ChatActionBarJoinRequest: // chatActionBarJoinRequest#3dd18308
// default: panic(v)
// }
type ChatActionBarClass interface {
bin.Encoder
bin.Decoder
bin.BareEncoder
bin.BareDecoder
construct() ChatActionBarClass
// 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
}
// DecodeChatActionBar implements binary de-serialization for ChatActionBarClass.
func DecodeChatActionBar(buf *bin.Buffer) (ChatActionBarClass, error) {
id, err := buf.PeekID()
if err != nil {
return nil, err
}
switch id {
case ChatActionBarReportSpamTypeID:
// Decoding chatActionBarReportSpam#b1c0e61a.
v := ChatActionBarReportSpam{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case ChatActionBarInviteMembersTypeID:
// Decoding chatActionBarInviteMembers#76557c70.
v := ChatActionBarInviteMembers{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case ChatActionBarReportAddBlockTypeID:
// Decoding chatActionBarReportAddBlock#a7f98e8b.
v := ChatActionBarReportAddBlock{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case ChatActionBarAddContactTypeID:
// Decoding chatActionBarAddContact#d44a5811.
v := ChatActionBarAddContact{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case ChatActionBarSharePhoneNumberTypeID:
// Decoding chatActionBarSharePhoneNumber#218efd9.
v := ChatActionBarSharePhoneNumber{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case ChatActionBarJoinRequestTypeID:
// Decoding chatActionBarJoinRequest#3dd18308.
v := ChatActionBarJoinRequest{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", bin.NewUnexpectedID(id))
}
}
// DecodeTDLibJSONChatActionBar implements binary de-serialization for ChatActionBarClass.
func DecodeTDLibJSONChatActionBar(buf tdjson.Decoder) (ChatActionBarClass, error) {
id, err := buf.FindTypeID()
if err != nil {
return nil, err
}
switch id {
case "chatActionBarReportSpam":
// Decoding chatActionBarReportSpam#b1c0e61a.
v := ChatActionBarReportSpam{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case "chatActionBarInviteMembers":
// Decoding chatActionBarInviteMembers#76557c70.
v := ChatActionBarInviteMembers{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case "chatActionBarReportAddBlock":
// Decoding chatActionBarReportAddBlock#a7f98e8b.
v := ChatActionBarReportAddBlock{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case "chatActionBarAddContact":
// Decoding chatActionBarAddContact#d44a5811.
v := ChatActionBarAddContact{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case "chatActionBarSharePhoneNumber":
// Decoding chatActionBarSharePhoneNumber#218efd9.
v := ChatActionBarSharePhoneNumber{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
case "chatActionBarJoinRequest":
// Decoding chatActionBarJoinRequest#3dd18308.
v := ChatActionBarJoinRequest{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode ChatActionBarClass: %w", tdjson.NewUnexpectedID(id))
}
}
// ChatActionBar boxes the ChatActionBarClass providing a helper.
type ChatActionBarBox struct {
ChatActionBar ChatActionBarClass
}
// Decode implements bin.Decoder for ChatActionBarBox.
func (b *ChatActionBarBox) Decode(buf *bin.Buffer) error {
if b == nil {
return fmt.Errorf("unable to decode ChatActionBarBox to nil")
}
v, err := DecodeChatActionBar(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.ChatActionBar = v
return nil
}
// Encode implements bin.Encode for ChatActionBarBox.
func (b *ChatActionBarBox) Encode(buf *bin.Buffer) error {
if b == nil || b.ChatActionBar == nil {
return fmt.Errorf("unable to encode ChatActionBarClass as nil")
}
return b.ChatActionBar.Encode(buf)
}
// DecodeTDLibJSON implements bin.Decoder for ChatActionBarBox.
func (b *ChatActionBarBox) DecodeTDLibJSON(buf tdjson.Decoder) error {
if b == nil {
return fmt.Errorf("unable to decode ChatActionBarBox to nil")
}
v, err := DecodeTDLibJSONChatActionBar(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.ChatActionBar = v
return nil
}
// EncodeTDLibJSON implements bin.Encode for ChatActionBarBox.
func (b *ChatActionBarBox) EncodeTDLibJSON(buf tdjson.Encoder) error {
if b == nil || b.ChatActionBar == nil {
return fmt.Errorf("unable to encode ChatActionBarClass as nil")
}
return b.ChatActionBar.EncodeTDLibJSON(buf)
}