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

11954 lines
316 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{}
)
// MessageActionEmpty represents TL type `messageActionEmpty#b6aef7b0`.
// Empty constructor.
//
// See https://core.telegram.org/constructor/messageActionEmpty for reference.
type MessageActionEmpty struct {
}
// MessageActionEmptyTypeID is TL type id of MessageActionEmpty.
const MessageActionEmptyTypeID = 0xb6aef7b0
// construct implements constructor of MessageActionClass.
func (m MessageActionEmpty) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionEmpty.
var (
_ bin.Encoder = &MessageActionEmpty{}
_ bin.Decoder = &MessageActionEmpty{}
_ bin.BareEncoder = &MessageActionEmpty{}
_ bin.BareDecoder = &MessageActionEmpty{}
_ MessageActionClass = &MessageActionEmpty{}
)
func (m *MessageActionEmpty) Zero() bool {
if m == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionEmpty) String() string {
if m == nil {
return "MessageActionEmpty(nil)"
}
type Alias MessageActionEmpty
return fmt.Sprintf("MessageActionEmpty%+v", Alias(*m))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionEmpty) TypeID() uint32 {
return MessageActionEmptyTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionEmpty) TypeName() string {
return "messageActionEmpty"
}
// TypeInfo returns info about TL type.
func (m *MessageActionEmpty) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionEmpty",
ID: MessageActionEmptyTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionEmpty) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionEmpty#b6aef7b0 as nil")
}
b.PutID(MessageActionEmptyTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionEmpty) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionEmpty#b6aef7b0 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionEmpty) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionEmpty#b6aef7b0 to nil")
}
if err := b.ConsumeID(MessageActionEmptyTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionEmpty#b6aef7b0: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionEmpty) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionEmpty#b6aef7b0 to nil")
}
return nil
}
// MessageActionChatCreate represents TL type `messageActionChatCreate#bd47cbad`.
// Group created
//
// See https://core.telegram.org/constructor/messageActionChatCreate for reference.
type MessageActionChatCreate struct {
// Group name
Title string
// List of group members
Users []int64
}
// MessageActionChatCreateTypeID is TL type id of MessageActionChatCreate.
const MessageActionChatCreateTypeID = 0xbd47cbad
// construct implements constructor of MessageActionClass.
func (m MessageActionChatCreate) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatCreate.
var (
_ bin.Encoder = &MessageActionChatCreate{}
_ bin.Decoder = &MessageActionChatCreate{}
_ bin.BareEncoder = &MessageActionChatCreate{}
_ bin.BareDecoder = &MessageActionChatCreate{}
_ MessageActionClass = &MessageActionChatCreate{}
)
func (m *MessageActionChatCreate) Zero() bool {
if m == nil {
return true
}
if !(m.Title == "") {
return false
}
if !(m.Users == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatCreate) String() string {
if m == nil {
return "MessageActionChatCreate(nil)"
}
type Alias MessageActionChatCreate
return fmt.Sprintf("MessageActionChatCreate%+v", Alias(*m))
}
// FillFrom fills MessageActionChatCreate from given interface.
func (m *MessageActionChatCreate) FillFrom(from interface {
GetTitle() (value string)
GetUsers() (value []int64)
}) {
m.Title = from.GetTitle()
m.Users = from.GetUsers()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatCreate) TypeID() uint32 {
return MessageActionChatCreateTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatCreate) TypeName() string {
return "messageActionChatCreate"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatCreate) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatCreate",
ID: MessageActionChatCreateTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Title",
SchemaName: "title",
},
{
Name: "Users",
SchemaName: "users",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatCreate) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatCreate#bd47cbad as nil")
}
b.PutID(MessageActionChatCreateTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatCreate) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatCreate#bd47cbad as nil")
}
b.PutString(m.Title)
b.PutVectorHeader(len(m.Users))
for _, v := range m.Users {
b.PutLong(v)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatCreate) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatCreate#bd47cbad to nil")
}
if err := b.ConsumeID(MessageActionChatCreateTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatCreate#bd47cbad: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatCreate) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatCreate#bd47cbad to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatCreate#bd47cbad: field title: %w", err)
}
m.Title = value
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatCreate#bd47cbad: field users: %w", err)
}
if headerLen > 0 {
m.Users = make([]int64, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatCreate#bd47cbad: field users: %w", err)
}
m.Users = append(m.Users, value)
}
}
return nil
}
// GetTitle returns value of Title field.
func (m *MessageActionChatCreate) GetTitle() (value string) {
if m == nil {
return
}
return m.Title
}
// GetUsers returns value of Users field.
func (m *MessageActionChatCreate) GetUsers() (value []int64) {
if m == nil {
return
}
return m.Users
}
// MessageActionChatEditTitle represents TL type `messageActionChatEditTitle#b5a1ce5a`.
// Group name changed.
//
// See https://core.telegram.org/constructor/messageActionChatEditTitle for reference.
type MessageActionChatEditTitle struct {
// New group name
Title string
}
// MessageActionChatEditTitleTypeID is TL type id of MessageActionChatEditTitle.
const MessageActionChatEditTitleTypeID = 0xb5a1ce5a
// construct implements constructor of MessageActionClass.
func (m MessageActionChatEditTitle) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatEditTitle.
var (
_ bin.Encoder = &MessageActionChatEditTitle{}
_ bin.Decoder = &MessageActionChatEditTitle{}
_ bin.BareEncoder = &MessageActionChatEditTitle{}
_ bin.BareDecoder = &MessageActionChatEditTitle{}
_ MessageActionClass = &MessageActionChatEditTitle{}
)
func (m *MessageActionChatEditTitle) Zero() bool {
if m == nil {
return true
}
if !(m.Title == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatEditTitle) String() string {
if m == nil {
return "MessageActionChatEditTitle(nil)"
}
type Alias MessageActionChatEditTitle
return fmt.Sprintf("MessageActionChatEditTitle%+v", Alias(*m))
}
// FillFrom fills MessageActionChatEditTitle from given interface.
func (m *MessageActionChatEditTitle) FillFrom(from interface {
GetTitle() (value string)
}) {
m.Title = from.GetTitle()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatEditTitle) TypeID() uint32 {
return MessageActionChatEditTitleTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatEditTitle) TypeName() string {
return "messageActionChatEditTitle"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatEditTitle) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatEditTitle",
ID: MessageActionChatEditTitleTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Title",
SchemaName: "title",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatEditTitle) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatEditTitle#b5a1ce5a as nil")
}
b.PutID(MessageActionChatEditTitleTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatEditTitle) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatEditTitle#b5a1ce5a as nil")
}
b.PutString(m.Title)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatEditTitle) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatEditTitle#b5a1ce5a to nil")
}
if err := b.ConsumeID(MessageActionChatEditTitleTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatEditTitle#b5a1ce5a: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatEditTitle) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatEditTitle#b5a1ce5a to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatEditTitle#b5a1ce5a: field title: %w", err)
}
m.Title = value
}
return nil
}
// GetTitle returns value of Title field.
func (m *MessageActionChatEditTitle) GetTitle() (value string) {
if m == nil {
return
}
return m.Title
}
// MessageActionChatEditPhoto represents TL type `messageActionChatEditPhoto#7fcb13a8`.
// Group profile changed
//
// See https://core.telegram.org/constructor/messageActionChatEditPhoto for reference.
type MessageActionChatEditPhoto struct {
// New group profile photo
Photo PhotoClass
}
// MessageActionChatEditPhotoTypeID is TL type id of MessageActionChatEditPhoto.
const MessageActionChatEditPhotoTypeID = 0x7fcb13a8
// construct implements constructor of MessageActionClass.
func (m MessageActionChatEditPhoto) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatEditPhoto.
var (
_ bin.Encoder = &MessageActionChatEditPhoto{}
_ bin.Decoder = &MessageActionChatEditPhoto{}
_ bin.BareEncoder = &MessageActionChatEditPhoto{}
_ bin.BareDecoder = &MessageActionChatEditPhoto{}
_ MessageActionClass = &MessageActionChatEditPhoto{}
)
func (m *MessageActionChatEditPhoto) Zero() bool {
if m == nil {
return true
}
if !(m.Photo == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatEditPhoto) String() string {
if m == nil {
return "MessageActionChatEditPhoto(nil)"
}
type Alias MessageActionChatEditPhoto
return fmt.Sprintf("MessageActionChatEditPhoto%+v", Alias(*m))
}
// FillFrom fills MessageActionChatEditPhoto from given interface.
func (m *MessageActionChatEditPhoto) FillFrom(from interface {
GetPhoto() (value PhotoClass)
}) {
m.Photo = from.GetPhoto()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatEditPhoto) TypeID() uint32 {
return MessageActionChatEditPhotoTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatEditPhoto) TypeName() string {
return "messageActionChatEditPhoto"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatEditPhoto) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatEditPhoto",
ID: MessageActionChatEditPhotoTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Photo",
SchemaName: "photo",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatEditPhoto) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatEditPhoto#7fcb13a8 as nil")
}
b.PutID(MessageActionChatEditPhotoTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatEditPhoto) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatEditPhoto#7fcb13a8 as nil")
}
if m.Photo == nil {
return fmt.Errorf("unable to encode messageActionChatEditPhoto#7fcb13a8: field photo is nil")
}
if err := m.Photo.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionChatEditPhoto#7fcb13a8: field photo: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatEditPhoto) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatEditPhoto#7fcb13a8 to nil")
}
if err := b.ConsumeID(MessageActionChatEditPhotoTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatEditPhoto#7fcb13a8: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatEditPhoto) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatEditPhoto#7fcb13a8 to nil")
}
{
value, err := DecodePhoto(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionChatEditPhoto#7fcb13a8: field photo: %w", err)
}
m.Photo = value
}
return nil
}
// GetPhoto returns value of Photo field.
func (m *MessageActionChatEditPhoto) GetPhoto() (value PhotoClass) {
if m == nil {
return
}
return m.Photo
}
// MessageActionChatDeletePhoto represents TL type `messageActionChatDeletePhoto#95e3fbef`.
// Group profile photo removed.
//
// See https://core.telegram.org/constructor/messageActionChatDeletePhoto for reference.
type MessageActionChatDeletePhoto struct {
}
// MessageActionChatDeletePhotoTypeID is TL type id of MessageActionChatDeletePhoto.
const MessageActionChatDeletePhotoTypeID = 0x95e3fbef
// construct implements constructor of MessageActionClass.
func (m MessageActionChatDeletePhoto) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatDeletePhoto.
var (
_ bin.Encoder = &MessageActionChatDeletePhoto{}
_ bin.Decoder = &MessageActionChatDeletePhoto{}
_ bin.BareEncoder = &MessageActionChatDeletePhoto{}
_ bin.BareDecoder = &MessageActionChatDeletePhoto{}
_ MessageActionClass = &MessageActionChatDeletePhoto{}
)
func (m *MessageActionChatDeletePhoto) Zero() bool {
if m == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatDeletePhoto) String() string {
if m == nil {
return "MessageActionChatDeletePhoto(nil)"
}
type Alias MessageActionChatDeletePhoto
return fmt.Sprintf("MessageActionChatDeletePhoto%+v", Alias(*m))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatDeletePhoto) TypeID() uint32 {
return MessageActionChatDeletePhotoTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatDeletePhoto) TypeName() string {
return "messageActionChatDeletePhoto"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatDeletePhoto) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatDeletePhoto",
ID: MessageActionChatDeletePhotoTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatDeletePhoto) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatDeletePhoto#95e3fbef as nil")
}
b.PutID(MessageActionChatDeletePhotoTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatDeletePhoto) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatDeletePhoto#95e3fbef as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatDeletePhoto) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatDeletePhoto#95e3fbef to nil")
}
if err := b.ConsumeID(MessageActionChatDeletePhotoTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatDeletePhoto#95e3fbef: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatDeletePhoto) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatDeletePhoto#95e3fbef to nil")
}
return nil
}
// MessageActionChatAddUser represents TL type `messageActionChatAddUser#15cefd00`.
// New member in the group
//
// See https://core.telegram.org/constructor/messageActionChatAddUser for reference.
type MessageActionChatAddUser struct {
// Users that were invited to the chat
Users []int64
}
// MessageActionChatAddUserTypeID is TL type id of MessageActionChatAddUser.
const MessageActionChatAddUserTypeID = 0x15cefd00
// construct implements constructor of MessageActionClass.
func (m MessageActionChatAddUser) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatAddUser.
var (
_ bin.Encoder = &MessageActionChatAddUser{}
_ bin.Decoder = &MessageActionChatAddUser{}
_ bin.BareEncoder = &MessageActionChatAddUser{}
_ bin.BareDecoder = &MessageActionChatAddUser{}
_ MessageActionClass = &MessageActionChatAddUser{}
)
func (m *MessageActionChatAddUser) Zero() bool {
if m == nil {
return true
}
if !(m.Users == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatAddUser) String() string {
if m == nil {
return "MessageActionChatAddUser(nil)"
}
type Alias MessageActionChatAddUser
return fmt.Sprintf("MessageActionChatAddUser%+v", Alias(*m))
}
// FillFrom fills MessageActionChatAddUser from given interface.
func (m *MessageActionChatAddUser) FillFrom(from interface {
GetUsers() (value []int64)
}) {
m.Users = from.GetUsers()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatAddUser) TypeID() uint32 {
return MessageActionChatAddUserTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatAddUser) TypeName() string {
return "messageActionChatAddUser"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatAddUser) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatAddUser",
ID: MessageActionChatAddUserTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Users",
SchemaName: "users",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatAddUser) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatAddUser#15cefd00 as nil")
}
b.PutID(MessageActionChatAddUserTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatAddUser) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatAddUser#15cefd00 as nil")
}
b.PutVectorHeader(len(m.Users))
for _, v := range m.Users {
b.PutLong(v)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatAddUser) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatAddUser#15cefd00 to nil")
}
if err := b.ConsumeID(MessageActionChatAddUserTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatAddUser#15cefd00: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatAddUser) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatAddUser#15cefd00 to nil")
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatAddUser#15cefd00: field users: %w", err)
}
if headerLen > 0 {
m.Users = make([]int64, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatAddUser#15cefd00: field users: %w", err)
}
m.Users = append(m.Users, value)
}
}
return nil
}
// GetUsers returns value of Users field.
func (m *MessageActionChatAddUser) GetUsers() (value []int64) {
if m == nil {
return
}
return m.Users
}
// MessageActionChatDeleteUser represents TL type `messageActionChatDeleteUser#a43f30cc`.
// User left the group.
//
// See https://core.telegram.org/constructor/messageActionChatDeleteUser for reference.
type MessageActionChatDeleteUser struct {
// Leaving user ID
UserID int64
}
// MessageActionChatDeleteUserTypeID is TL type id of MessageActionChatDeleteUser.
const MessageActionChatDeleteUserTypeID = 0xa43f30cc
// construct implements constructor of MessageActionClass.
func (m MessageActionChatDeleteUser) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatDeleteUser.
var (
_ bin.Encoder = &MessageActionChatDeleteUser{}
_ bin.Decoder = &MessageActionChatDeleteUser{}
_ bin.BareEncoder = &MessageActionChatDeleteUser{}
_ bin.BareDecoder = &MessageActionChatDeleteUser{}
_ MessageActionClass = &MessageActionChatDeleteUser{}
)
func (m *MessageActionChatDeleteUser) Zero() bool {
if m == nil {
return true
}
if !(m.UserID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatDeleteUser) String() string {
if m == nil {
return "MessageActionChatDeleteUser(nil)"
}
type Alias MessageActionChatDeleteUser
return fmt.Sprintf("MessageActionChatDeleteUser%+v", Alias(*m))
}
// FillFrom fills MessageActionChatDeleteUser from given interface.
func (m *MessageActionChatDeleteUser) FillFrom(from interface {
GetUserID() (value int64)
}) {
m.UserID = from.GetUserID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatDeleteUser) TypeID() uint32 {
return MessageActionChatDeleteUserTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatDeleteUser) TypeName() string {
return "messageActionChatDeleteUser"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatDeleteUser) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatDeleteUser",
ID: MessageActionChatDeleteUserTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "UserID",
SchemaName: "user_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatDeleteUser) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatDeleteUser#a43f30cc as nil")
}
b.PutID(MessageActionChatDeleteUserTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatDeleteUser) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatDeleteUser#a43f30cc as nil")
}
b.PutLong(m.UserID)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatDeleteUser) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatDeleteUser#a43f30cc to nil")
}
if err := b.ConsumeID(MessageActionChatDeleteUserTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatDeleteUser#a43f30cc: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatDeleteUser) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatDeleteUser#a43f30cc to nil")
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatDeleteUser#a43f30cc: field user_id: %w", err)
}
m.UserID = value
}
return nil
}
// GetUserID returns value of UserID field.
func (m *MessageActionChatDeleteUser) GetUserID() (value int64) {
if m == nil {
return
}
return m.UserID
}
// MessageActionChatJoinedByLink represents TL type `messageActionChatJoinedByLink#31224c3`.
// A user joined the chat via an invite link
//
// See https://core.telegram.org/constructor/messageActionChatJoinedByLink for reference.
type MessageActionChatJoinedByLink struct {
// ID of the user that created the invite link
InviterID int64
}
// MessageActionChatJoinedByLinkTypeID is TL type id of MessageActionChatJoinedByLink.
const MessageActionChatJoinedByLinkTypeID = 0x31224c3
// construct implements constructor of MessageActionClass.
func (m MessageActionChatJoinedByLink) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatJoinedByLink.
var (
_ bin.Encoder = &MessageActionChatJoinedByLink{}
_ bin.Decoder = &MessageActionChatJoinedByLink{}
_ bin.BareEncoder = &MessageActionChatJoinedByLink{}
_ bin.BareDecoder = &MessageActionChatJoinedByLink{}
_ MessageActionClass = &MessageActionChatJoinedByLink{}
)
func (m *MessageActionChatJoinedByLink) Zero() bool {
if m == nil {
return true
}
if !(m.InviterID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatJoinedByLink) String() string {
if m == nil {
return "MessageActionChatJoinedByLink(nil)"
}
type Alias MessageActionChatJoinedByLink
return fmt.Sprintf("MessageActionChatJoinedByLink%+v", Alias(*m))
}
// FillFrom fills MessageActionChatJoinedByLink from given interface.
func (m *MessageActionChatJoinedByLink) FillFrom(from interface {
GetInviterID() (value int64)
}) {
m.InviterID = from.GetInviterID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatJoinedByLink) TypeID() uint32 {
return MessageActionChatJoinedByLinkTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatJoinedByLink) TypeName() string {
return "messageActionChatJoinedByLink"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatJoinedByLink) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatJoinedByLink",
ID: MessageActionChatJoinedByLinkTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "InviterID",
SchemaName: "inviter_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatJoinedByLink) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatJoinedByLink#31224c3 as nil")
}
b.PutID(MessageActionChatJoinedByLinkTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatJoinedByLink) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatJoinedByLink#31224c3 as nil")
}
b.PutLong(m.InviterID)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatJoinedByLink) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatJoinedByLink#31224c3 to nil")
}
if err := b.ConsumeID(MessageActionChatJoinedByLinkTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatJoinedByLink#31224c3: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatJoinedByLink) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatJoinedByLink#31224c3 to nil")
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatJoinedByLink#31224c3: field inviter_id: %w", err)
}
m.InviterID = value
}
return nil
}
// GetInviterID returns value of InviterID field.
func (m *MessageActionChatJoinedByLink) GetInviterID() (value int64) {
if m == nil {
return
}
return m.InviterID
}
// MessageActionChannelCreate represents TL type `messageActionChannelCreate#95d2ac92`.
// The channel was created
//
// See https://core.telegram.org/constructor/messageActionChannelCreate for reference.
type MessageActionChannelCreate struct {
// Original channel/supergroup title
Title string
}
// MessageActionChannelCreateTypeID is TL type id of MessageActionChannelCreate.
const MessageActionChannelCreateTypeID = 0x95d2ac92
// construct implements constructor of MessageActionClass.
func (m MessageActionChannelCreate) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChannelCreate.
var (
_ bin.Encoder = &MessageActionChannelCreate{}
_ bin.Decoder = &MessageActionChannelCreate{}
_ bin.BareEncoder = &MessageActionChannelCreate{}
_ bin.BareDecoder = &MessageActionChannelCreate{}
_ MessageActionClass = &MessageActionChannelCreate{}
)
func (m *MessageActionChannelCreate) Zero() bool {
if m == nil {
return true
}
if !(m.Title == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChannelCreate) String() string {
if m == nil {
return "MessageActionChannelCreate(nil)"
}
type Alias MessageActionChannelCreate
return fmt.Sprintf("MessageActionChannelCreate%+v", Alias(*m))
}
// FillFrom fills MessageActionChannelCreate from given interface.
func (m *MessageActionChannelCreate) FillFrom(from interface {
GetTitle() (value string)
}) {
m.Title = from.GetTitle()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChannelCreate) TypeID() uint32 {
return MessageActionChannelCreateTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChannelCreate) TypeName() string {
return "messageActionChannelCreate"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChannelCreate) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChannelCreate",
ID: MessageActionChannelCreateTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Title",
SchemaName: "title",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChannelCreate) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChannelCreate#95d2ac92 as nil")
}
b.PutID(MessageActionChannelCreateTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChannelCreate) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChannelCreate#95d2ac92 as nil")
}
b.PutString(m.Title)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChannelCreate) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChannelCreate#95d2ac92 to nil")
}
if err := b.ConsumeID(MessageActionChannelCreateTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChannelCreate#95d2ac92: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChannelCreate) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChannelCreate#95d2ac92 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionChannelCreate#95d2ac92: field title: %w", err)
}
m.Title = value
}
return nil
}
// GetTitle returns value of Title field.
func (m *MessageActionChannelCreate) GetTitle() (value string) {
if m == nil {
return
}
return m.Title
}
// MessageActionChatMigrateTo represents TL type `messageActionChatMigrateTo#e1037f92`.
// Indicates the chat was migrated¹ to the specified supergroup
//
// Links:
// 1. https://core.telegram.org/api/channel
//
// See https://core.telegram.org/constructor/messageActionChatMigrateTo for reference.
type MessageActionChatMigrateTo struct {
// The supergroup it was migrated to
ChannelID int64
}
// MessageActionChatMigrateToTypeID is TL type id of MessageActionChatMigrateTo.
const MessageActionChatMigrateToTypeID = 0xe1037f92
// construct implements constructor of MessageActionClass.
func (m MessageActionChatMigrateTo) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatMigrateTo.
var (
_ bin.Encoder = &MessageActionChatMigrateTo{}
_ bin.Decoder = &MessageActionChatMigrateTo{}
_ bin.BareEncoder = &MessageActionChatMigrateTo{}
_ bin.BareDecoder = &MessageActionChatMigrateTo{}
_ MessageActionClass = &MessageActionChatMigrateTo{}
)
func (m *MessageActionChatMigrateTo) Zero() bool {
if m == nil {
return true
}
if !(m.ChannelID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatMigrateTo) String() string {
if m == nil {
return "MessageActionChatMigrateTo(nil)"
}
type Alias MessageActionChatMigrateTo
return fmt.Sprintf("MessageActionChatMigrateTo%+v", Alias(*m))
}
// FillFrom fills MessageActionChatMigrateTo from given interface.
func (m *MessageActionChatMigrateTo) FillFrom(from interface {
GetChannelID() (value int64)
}) {
m.ChannelID = from.GetChannelID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatMigrateTo) TypeID() uint32 {
return MessageActionChatMigrateToTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatMigrateTo) TypeName() string {
return "messageActionChatMigrateTo"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatMigrateTo) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatMigrateTo",
ID: MessageActionChatMigrateToTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "ChannelID",
SchemaName: "channel_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatMigrateTo) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatMigrateTo#e1037f92 as nil")
}
b.PutID(MessageActionChatMigrateToTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatMigrateTo) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatMigrateTo#e1037f92 as nil")
}
b.PutLong(m.ChannelID)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatMigrateTo) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatMigrateTo#e1037f92 to nil")
}
if err := b.ConsumeID(MessageActionChatMigrateToTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatMigrateTo#e1037f92: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatMigrateTo) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatMigrateTo#e1037f92 to nil")
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionChatMigrateTo#e1037f92: field channel_id: %w", err)
}
m.ChannelID = value
}
return nil
}
// GetChannelID returns value of ChannelID field.
func (m *MessageActionChatMigrateTo) GetChannelID() (value int64) {
if m == nil {
return
}
return m.ChannelID
}
// MessageActionChannelMigrateFrom represents TL type `messageActionChannelMigrateFrom#ea3948e9`.
// Indicates the channel was migrated¹ from the specified chat
//
// Links:
// 1. https://core.telegram.org/api/channel
//
// See https://core.telegram.org/constructor/messageActionChannelMigrateFrom for reference.
type MessageActionChannelMigrateFrom struct {
// The old chat title
Title string
// The old chat ID
ChatID int64
}
// MessageActionChannelMigrateFromTypeID is TL type id of MessageActionChannelMigrateFrom.
const MessageActionChannelMigrateFromTypeID = 0xea3948e9
// construct implements constructor of MessageActionClass.
func (m MessageActionChannelMigrateFrom) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChannelMigrateFrom.
var (
_ bin.Encoder = &MessageActionChannelMigrateFrom{}
_ bin.Decoder = &MessageActionChannelMigrateFrom{}
_ bin.BareEncoder = &MessageActionChannelMigrateFrom{}
_ bin.BareDecoder = &MessageActionChannelMigrateFrom{}
_ MessageActionClass = &MessageActionChannelMigrateFrom{}
)
func (m *MessageActionChannelMigrateFrom) Zero() bool {
if m == nil {
return true
}
if !(m.Title == "") {
return false
}
if !(m.ChatID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChannelMigrateFrom) String() string {
if m == nil {
return "MessageActionChannelMigrateFrom(nil)"
}
type Alias MessageActionChannelMigrateFrom
return fmt.Sprintf("MessageActionChannelMigrateFrom%+v", Alias(*m))
}
// FillFrom fills MessageActionChannelMigrateFrom from given interface.
func (m *MessageActionChannelMigrateFrom) FillFrom(from interface {
GetTitle() (value string)
GetChatID() (value int64)
}) {
m.Title = from.GetTitle()
m.ChatID = from.GetChatID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChannelMigrateFrom) TypeID() uint32 {
return MessageActionChannelMigrateFromTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChannelMigrateFrom) TypeName() string {
return "messageActionChannelMigrateFrom"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChannelMigrateFrom) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChannelMigrateFrom",
ID: MessageActionChannelMigrateFromTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Title",
SchemaName: "title",
},
{
Name: "ChatID",
SchemaName: "chat_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChannelMigrateFrom) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChannelMigrateFrom#ea3948e9 as nil")
}
b.PutID(MessageActionChannelMigrateFromTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChannelMigrateFrom) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChannelMigrateFrom#ea3948e9 as nil")
}
b.PutString(m.Title)
b.PutLong(m.ChatID)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChannelMigrateFrom) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChannelMigrateFrom#ea3948e9 to nil")
}
if err := b.ConsumeID(MessageActionChannelMigrateFromTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChannelMigrateFrom#ea3948e9: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChannelMigrateFrom) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChannelMigrateFrom#ea3948e9 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionChannelMigrateFrom#ea3948e9: field title: %w", err)
}
m.Title = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionChannelMigrateFrom#ea3948e9: field chat_id: %w", err)
}
m.ChatID = value
}
return nil
}
// GetTitle returns value of Title field.
func (m *MessageActionChannelMigrateFrom) GetTitle() (value string) {
if m == nil {
return
}
return m.Title
}
// GetChatID returns value of ChatID field.
func (m *MessageActionChannelMigrateFrom) GetChatID() (value int64) {
if m == nil {
return
}
return m.ChatID
}
// MessageActionPinMessage represents TL type `messageActionPinMessage#94bd38ed`.
// A message was pinned
//
// See https://core.telegram.org/constructor/messageActionPinMessage for reference.
type MessageActionPinMessage struct {
}
// MessageActionPinMessageTypeID is TL type id of MessageActionPinMessage.
const MessageActionPinMessageTypeID = 0x94bd38ed
// construct implements constructor of MessageActionClass.
func (m MessageActionPinMessage) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPinMessage.
var (
_ bin.Encoder = &MessageActionPinMessage{}
_ bin.Decoder = &MessageActionPinMessage{}
_ bin.BareEncoder = &MessageActionPinMessage{}
_ bin.BareDecoder = &MessageActionPinMessage{}
_ MessageActionClass = &MessageActionPinMessage{}
)
func (m *MessageActionPinMessage) Zero() bool {
if m == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPinMessage) String() string {
if m == nil {
return "MessageActionPinMessage(nil)"
}
type Alias MessageActionPinMessage
return fmt.Sprintf("MessageActionPinMessage%+v", Alias(*m))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPinMessage) TypeID() uint32 {
return MessageActionPinMessageTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPinMessage) TypeName() string {
return "messageActionPinMessage"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPinMessage) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPinMessage",
ID: MessageActionPinMessageTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionPinMessage) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPinMessage#94bd38ed as nil")
}
b.PutID(MessageActionPinMessageTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPinMessage) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPinMessage#94bd38ed as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPinMessage) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPinMessage#94bd38ed to nil")
}
if err := b.ConsumeID(MessageActionPinMessageTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPinMessage#94bd38ed: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPinMessage) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPinMessage#94bd38ed to nil")
}
return nil
}
// MessageActionHistoryClear represents TL type `messageActionHistoryClear#9fbab604`.
// Chat history was cleared
//
// See https://core.telegram.org/constructor/messageActionHistoryClear for reference.
type MessageActionHistoryClear struct {
}
// MessageActionHistoryClearTypeID is TL type id of MessageActionHistoryClear.
const MessageActionHistoryClearTypeID = 0x9fbab604
// construct implements constructor of MessageActionClass.
func (m MessageActionHistoryClear) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionHistoryClear.
var (
_ bin.Encoder = &MessageActionHistoryClear{}
_ bin.Decoder = &MessageActionHistoryClear{}
_ bin.BareEncoder = &MessageActionHistoryClear{}
_ bin.BareDecoder = &MessageActionHistoryClear{}
_ MessageActionClass = &MessageActionHistoryClear{}
)
func (m *MessageActionHistoryClear) Zero() bool {
if m == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionHistoryClear) String() string {
if m == nil {
return "MessageActionHistoryClear(nil)"
}
type Alias MessageActionHistoryClear
return fmt.Sprintf("MessageActionHistoryClear%+v", Alias(*m))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionHistoryClear) TypeID() uint32 {
return MessageActionHistoryClearTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionHistoryClear) TypeName() string {
return "messageActionHistoryClear"
}
// TypeInfo returns info about TL type.
func (m *MessageActionHistoryClear) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionHistoryClear",
ID: MessageActionHistoryClearTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionHistoryClear) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionHistoryClear#9fbab604 as nil")
}
b.PutID(MessageActionHistoryClearTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionHistoryClear) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionHistoryClear#9fbab604 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionHistoryClear) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionHistoryClear#9fbab604 to nil")
}
if err := b.ConsumeID(MessageActionHistoryClearTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionHistoryClear#9fbab604: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionHistoryClear) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionHistoryClear#9fbab604 to nil")
}
return nil
}
// MessageActionGameScore represents TL type `messageActionGameScore#92a72876`.
// Someone scored in a game
//
// See https://core.telegram.org/constructor/messageActionGameScore for reference.
type MessageActionGameScore struct {
// Game ID
GameID int64
// Score
Score int
}
// MessageActionGameScoreTypeID is TL type id of MessageActionGameScore.
const MessageActionGameScoreTypeID = 0x92a72876
// construct implements constructor of MessageActionClass.
func (m MessageActionGameScore) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGameScore.
var (
_ bin.Encoder = &MessageActionGameScore{}
_ bin.Decoder = &MessageActionGameScore{}
_ bin.BareEncoder = &MessageActionGameScore{}
_ bin.BareDecoder = &MessageActionGameScore{}
_ MessageActionClass = &MessageActionGameScore{}
)
func (m *MessageActionGameScore) Zero() bool {
if m == nil {
return true
}
if !(m.GameID == 0) {
return false
}
if !(m.Score == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGameScore) String() string {
if m == nil {
return "MessageActionGameScore(nil)"
}
type Alias MessageActionGameScore
return fmt.Sprintf("MessageActionGameScore%+v", Alias(*m))
}
// FillFrom fills MessageActionGameScore from given interface.
func (m *MessageActionGameScore) FillFrom(from interface {
GetGameID() (value int64)
GetScore() (value int)
}) {
m.GameID = from.GetGameID()
m.Score = from.GetScore()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGameScore) TypeID() uint32 {
return MessageActionGameScoreTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGameScore) TypeName() string {
return "messageActionGameScore"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGameScore) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGameScore",
ID: MessageActionGameScoreTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "GameID",
SchemaName: "game_id",
},
{
Name: "Score",
SchemaName: "score",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionGameScore) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGameScore#92a72876 as nil")
}
b.PutID(MessageActionGameScoreTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGameScore) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGameScore#92a72876 as nil")
}
b.PutLong(m.GameID)
b.PutInt(m.Score)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGameScore) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGameScore#92a72876 to nil")
}
if err := b.ConsumeID(MessageActionGameScoreTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGameScore#92a72876: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGameScore) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGameScore#92a72876 to nil")
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGameScore#92a72876: field game_id: %w", err)
}
m.GameID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionGameScore#92a72876: field score: %w", err)
}
m.Score = value
}
return nil
}
// GetGameID returns value of GameID field.
func (m *MessageActionGameScore) GetGameID() (value int64) {
if m == nil {
return
}
return m.GameID
}
// GetScore returns value of Score field.
func (m *MessageActionGameScore) GetScore() (value int) {
if m == nil {
return
}
return m.Score
}
// MessageActionPaymentSentMe represents TL type `messageActionPaymentSentMe#ffa00ccc`.
// A user just sent a payment to me (a bot)
//
// See https://core.telegram.org/constructor/messageActionPaymentSentMe for reference.
type MessageActionPaymentSentMe struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Whether this is the first payment of a recurring payment we just subscribed to
RecurringInit bool
// Whether this payment is part of a recurring payment
RecurringUsed bool
// Three-letter ISO 4217 currency¹ code, or XTR for Telegram Stars².
//
// Links:
// 1) https://core.telegram.org/bots/payments#supported-currencies
// 2) https://core.telegram.org/api/stars
Currency string
// Price of the product in the smallest units of the currency (integer, not float/double)
// For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in
// currencies.json¹, it shows the number of digits past the decimal point for each
// currency (2 for the majority of currencies).
//
// Links:
// 1) https://core.telegram.org/bots/payments/currencies.json
TotalAmount int64
// Bot specified invoice payload
Payload []byte
// Order info provided by the user
//
// Use SetInfo and GetInfo helpers.
Info PaymentRequestedInfo
// Identifier of the shipping option chosen by the user
//
// Use SetShippingOptionID and GetShippingOptionID helpers.
ShippingOptionID string
// Provider payment identifier
Charge PaymentCharge
// SubscriptionUntilDate field of MessageActionPaymentSentMe.
//
// Use SetSubscriptionUntilDate and GetSubscriptionUntilDate helpers.
SubscriptionUntilDate int
}
// MessageActionPaymentSentMeTypeID is TL type id of MessageActionPaymentSentMe.
const MessageActionPaymentSentMeTypeID = 0xffa00ccc
// construct implements constructor of MessageActionClass.
func (m MessageActionPaymentSentMe) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPaymentSentMe.
var (
_ bin.Encoder = &MessageActionPaymentSentMe{}
_ bin.Decoder = &MessageActionPaymentSentMe{}
_ bin.BareEncoder = &MessageActionPaymentSentMe{}
_ bin.BareDecoder = &MessageActionPaymentSentMe{}
_ MessageActionClass = &MessageActionPaymentSentMe{}
)
func (m *MessageActionPaymentSentMe) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.RecurringInit == false) {
return false
}
if !(m.RecurringUsed == false) {
return false
}
if !(m.Currency == "") {
return false
}
if !(m.TotalAmount == 0) {
return false
}
if !(m.Payload == nil) {
return false
}
if !(m.Info.Zero()) {
return false
}
if !(m.ShippingOptionID == "") {
return false
}
if !(m.Charge.Zero()) {
return false
}
if !(m.SubscriptionUntilDate == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPaymentSentMe) String() string {
if m == nil {
return "MessageActionPaymentSentMe(nil)"
}
type Alias MessageActionPaymentSentMe
return fmt.Sprintf("MessageActionPaymentSentMe%+v", Alias(*m))
}
// FillFrom fills MessageActionPaymentSentMe from given interface.
func (m *MessageActionPaymentSentMe) FillFrom(from interface {
GetRecurringInit() (value bool)
GetRecurringUsed() (value bool)
GetCurrency() (value string)
GetTotalAmount() (value int64)
GetPayload() (value []byte)
GetInfo() (value PaymentRequestedInfo, ok bool)
GetShippingOptionID() (value string, ok bool)
GetCharge() (value PaymentCharge)
GetSubscriptionUntilDate() (value int, ok bool)
}) {
m.RecurringInit = from.GetRecurringInit()
m.RecurringUsed = from.GetRecurringUsed()
m.Currency = from.GetCurrency()
m.TotalAmount = from.GetTotalAmount()
m.Payload = from.GetPayload()
if val, ok := from.GetInfo(); ok {
m.Info = val
}
if val, ok := from.GetShippingOptionID(); ok {
m.ShippingOptionID = val
}
m.Charge = from.GetCharge()
if val, ok := from.GetSubscriptionUntilDate(); ok {
m.SubscriptionUntilDate = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPaymentSentMe) TypeID() uint32 {
return MessageActionPaymentSentMeTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPaymentSentMe) TypeName() string {
return "messageActionPaymentSentMe"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPaymentSentMe) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPaymentSentMe",
ID: MessageActionPaymentSentMeTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "RecurringInit",
SchemaName: "recurring_init",
Null: !m.Flags.Has(2),
},
{
Name: "RecurringUsed",
SchemaName: "recurring_used",
Null: !m.Flags.Has(3),
},
{
Name: "Currency",
SchemaName: "currency",
},
{
Name: "TotalAmount",
SchemaName: "total_amount",
},
{
Name: "Payload",
SchemaName: "payload",
},
{
Name: "Info",
SchemaName: "info",
Null: !m.Flags.Has(0),
},
{
Name: "ShippingOptionID",
SchemaName: "shipping_option_id",
Null: !m.Flags.Has(1),
},
{
Name: "Charge",
SchemaName: "charge",
},
{
Name: "SubscriptionUntilDate",
SchemaName: "subscription_until_date",
Null: !m.Flags.Has(4),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionPaymentSentMe) SetFlags() {
if !(m.RecurringInit == false) {
m.Flags.Set(2)
}
if !(m.RecurringUsed == false) {
m.Flags.Set(3)
}
if !(m.Info.Zero()) {
m.Flags.Set(0)
}
if !(m.ShippingOptionID == "") {
m.Flags.Set(1)
}
if !(m.SubscriptionUntilDate == 0) {
m.Flags.Set(4)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionPaymentSentMe) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaymentSentMe#ffa00ccc as nil")
}
b.PutID(MessageActionPaymentSentMeTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPaymentSentMe) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaymentSentMe#ffa00ccc as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPaymentSentMe#ffa00ccc: field flags: %w", err)
}
b.PutString(m.Currency)
b.PutLong(m.TotalAmount)
b.PutBytes(m.Payload)
if m.Flags.Has(0) {
if err := m.Info.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPaymentSentMe#ffa00ccc: field info: %w", err)
}
}
if m.Flags.Has(1) {
b.PutString(m.ShippingOptionID)
}
if err := m.Charge.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPaymentSentMe#ffa00ccc: field charge: %w", err)
}
if m.Flags.Has(4) {
b.PutInt(m.SubscriptionUntilDate)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPaymentSentMe) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaymentSentMe#ffa00ccc to nil")
}
if err := b.ConsumeID(MessageActionPaymentSentMeTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPaymentSentMe) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaymentSentMe#ffa00ccc to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: field flags: %w", err)
}
}
m.RecurringInit = m.Flags.Has(2)
m.RecurringUsed = m.Flags.Has(3)
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: field currency: %w", err)
}
m.Currency = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: field total_amount: %w", err)
}
m.TotalAmount = value
}
{
value, err := b.Bytes()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: field payload: %w", err)
}
m.Payload = value
}
if m.Flags.Has(0) {
if err := m.Info.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: field info: %w", err)
}
}
if m.Flags.Has(1) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: field shipping_option_id: %w", err)
}
m.ShippingOptionID = value
}
{
if err := m.Charge.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: field charge: %w", err)
}
}
if m.Flags.Has(4) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSentMe#ffa00ccc: field subscription_until_date: %w", err)
}
m.SubscriptionUntilDate = value
}
return nil
}
// SetRecurringInit sets value of RecurringInit conditional field.
func (m *MessageActionPaymentSentMe) SetRecurringInit(value bool) {
if value {
m.Flags.Set(2)
m.RecurringInit = true
} else {
m.Flags.Unset(2)
m.RecurringInit = false
}
}
// GetRecurringInit returns value of RecurringInit conditional field.
func (m *MessageActionPaymentSentMe) GetRecurringInit() (value bool) {
if m == nil {
return
}
return m.Flags.Has(2)
}
// SetRecurringUsed sets value of RecurringUsed conditional field.
func (m *MessageActionPaymentSentMe) SetRecurringUsed(value bool) {
if value {
m.Flags.Set(3)
m.RecurringUsed = true
} else {
m.Flags.Unset(3)
m.RecurringUsed = false
}
}
// GetRecurringUsed returns value of RecurringUsed conditional field.
func (m *MessageActionPaymentSentMe) GetRecurringUsed() (value bool) {
if m == nil {
return
}
return m.Flags.Has(3)
}
// GetCurrency returns value of Currency field.
func (m *MessageActionPaymentSentMe) GetCurrency() (value string) {
if m == nil {
return
}
return m.Currency
}
// GetTotalAmount returns value of TotalAmount field.
func (m *MessageActionPaymentSentMe) GetTotalAmount() (value int64) {
if m == nil {
return
}
return m.TotalAmount
}
// GetPayload returns value of Payload field.
func (m *MessageActionPaymentSentMe) GetPayload() (value []byte) {
if m == nil {
return
}
return m.Payload
}
// SetInfo sets value of Info conditional field.
func (m *MessageActionPaymentSentMe) SetInfo(value PaymentRequestedInfo) {
m.Flags.Set(0)
m.Info = value
}
// GetInfo returns value of Info conditional field and
// boolean which is true if field was set.
func (m *MessageActionPaymentSentMe) GetInfo() (value PaymentRequestedInfo, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.Info, true
}
// SetShippingOptionID sets value of ShippingOptionID conditional field.
func (m *MessageActionPaymentSentMe) SetShippingOptionID(value string) {
m.Flags.Set(1)
m.ShippingOptionID = value
}
// GetShippingOptionID returns value of ShippingOptionID conditional field and
// boolean which is true if field was set.
func (m *MessageActionPaymentSentMe) GetShippingOptionID() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(1) {
return value, false
}
return m.ShippingOptionID, true
}
// GetCharge returns value of Charge field.
func (m *MessageActionPaymentSentMe) GetCharge() (value PaymentCharge) {
if m == nil {
return
}
return m.Charge
}
// SetSubscriptionUntilDate sets value of SubscriptionUntilDate conditional field.
func (m *MessageActionPaymentSentMe) SetSubscriptionUntilDate(value int) {
m.Flags.Set(4)
m.SubscriptionUntilDate = value
}
// GetSubscriptionUntilDate returns value of SubscriptionUntilDate conditional field and
// boolean which is true if field was set.
func (m *MessageActionPaymentSentMe) GetSubscriptionUntilDate() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(4) {
return value, false
}
return m.SubscriptionUntilDate, true
}
// MessageActionPaymentSent represents TL type `messageActionPaymentSent#c624b16e`.
// A payment was sent
//
// See https://core.telegram.org/constructor/messageActionPaymentSent for reference.
type MessageActionPaymentSent struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Whether this is the first payment of a recurring payment we just subscribed to
RecurringInit bool
// Whether this payment is part of a recurring payment
RecurringUsed bool
// Three-letter ISO 4217 currency¹ code, or XTR for Telegram Stars².
//
// Links:
// 1) https://core.telegram.org/bots/payments#supported-currencies
// 2) https://core.telegram.org/api/stars
Currency string
// Price of the product in the smallest units of the currency (integer, not float/double)
// For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in
// currencies.json¹, it shows the number of digits past the decimal point for each
// currency (2 for the majority of currencies).
//
// Links:
// 1) https://core.telegram.org/bots/payments/currencies.json
TotalAmount int64
// An invoice slug taken from an invoice deep link¹ or from the premium_invoice_slug app
// config parameter »²
//
// Links:
// 1) https://core.telegram.org/api/links#invoice-links
// 2) https://core.telegram.org/api/config#premium-invoice-slug
//
// Use SetInvoiceSlug and GetInvoiceSlug helpers.
InvoiceSlug string
// SubscriptionUntilDate field of MessageActionPaymentSent.
//
// Use SetSubscriptionUntilDate and GetSubscriptionUntilDate helpers.
SubscriptionUntilDate int
}
// MessageActionPaymentSentTypeID is TL type id of MessageActionPaymentSent.
const MessageActionPaymentSentTypeID = 0xc624b16e
// construct implements constructor of MessageActionClass.
func (m MessageActionPaymentSent) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPaymentSent.
var (
_ bin.Encoder = &MessageActionPaymentSent{}
_ bin.Decoder = &MessageActionPaymentSent{}
_ bin.BareEncoder = &MessageActionPaymentSent{}
_ bin.BareDecoder = &MessageActionPaymentSent{}
_ MessageActionClass = &MessageActionPaymentSent{}
)
func (m *MessageActionPaymentSent) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.RecurringInit == false) {
return false
}
if !(m.RecurringUsed == false) {
return false
}
if !(m.Currency == "") {
return false
}
if !(m.TotalAmount == 0) {
return false
}
if !(m.InvoiceSlug == "") {
return false
}
if !(m.SubscriptionUntilDate == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPaymentSent) String() string {
if m == nil {
return "MessageActionPaymentSent(nil)"
}
type Alias MessageActionPaymentSent
return fmt.Sprintf("MessageActionPaymentSent%+v", Alias(*m))
}
// FillFrom fills MessageActionPaymentSent from given interface.
func (m *MessageActionPaymentSent) FillFrom(from interface {
GetRecurringInit() (value bool)
GetRecurringUsed() (value bool)
GetCurrency() (value string)
GetTotalAmount() (value int64)
GetInvoiceSlug() (value string, ok bool)
GetSubscriptionUntilDate() (value int, ok bool)
}) {
m.RecurringInit = from.GetRecurringInit()
m.RecurringUsed = from.GetRecurringUsed()
m.Currency = from.GetCurrency()
m.TotalAmount = from.GetTotalAmount()
if val, ok := from.GetInvoiceSlug(); ok {
m.InvoiceSlug = val
}
if val, ok := from.GetSubscriptionUntilDate(); ok {
m.SubscriptionUntilDate = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPaymentSent) TypeID() uint32 {
return MessageActionPaymentSentTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPaymentSent) TypeName() string {
return "messageActionPaymentSent"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPaymentSent) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPaymentSent",
ID: MessageActionPaymentSentTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "RecurringInit",
SchemaName: "recurring_init",
Null: !m.Flags.Has(2),
},
{
Name: "RecurringUsed",
SchemaName: "recurring_used",
Null: !m.Flags.Has(3),
},
{
Name: "Currency",
SchemaName: "currency",
},
{
Name: "TotalAmount",
SchemaName: "total_amount",
},
{
Name: "InvoiceSlug",
SchemaName: "invoice_slug",
Null: !m.Flags.Has(0),
},
{
Name: "SubscriptionUntilDate",
SchemaName: "subscription_until_date",
Null: !m.Flags.Has(4),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionPaymentSent) SetFlags() {
if !(m.RecurringInit == false) {
m.Flags.Set(2)
}
if !(m.RecurringUsed == false) {
m.Flags.Set(3)
}
if !(m.InvoiceSlug == "") {
m.Flags.Set(0)
}
if !(m.SubscriptionUntilDate == 0) {
m.Flags.Set(4)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionPaymentSent) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaymentSent#c624b16e as nil")
}
b.PutID(MessageActionPaymentSentTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPaymentSent) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaymentSent#c624b16e as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPaymentSent#c624b16e: field flags: %w", err)
}
b.PutString(m.Currency)
b.PutLong(m.TotalAmount)
if m.Flags.Has(0) {
b.PutString(m.InvoiceSlug)
}
if m.Flags.Has(4) {
b.PutInt(m.SubscriptionUntilDate)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPaymentSent) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaymentSent#c624b16e to nil")
}
if err := b.ConsumeID(MessageActionPaymentSentTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSent#c624b16e: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPaymentSent) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaymentSent#c624b16e to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSent#c624b16e: field flags: %w", err)
}
}
m.RecurringInit = m.Flags.Has(2)
m.RecurringUsed = m.Flags.Has(3)
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSent#c624b16e: field currency: %w", err)
}
m.Currency = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSent#c624b16e: field total_amount: %w", err)
}
m.TotalAmount = value
}
if m.Flags.Has(0) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSent#c624b16e: field invoice_slug: %w", err)
}
m.InvoiceSlug = value
}
if m.Flags.Has(4) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentSent#c624b16e: field subscription_until_date: %w", err)
}
m.SubscriptionUntilDate = value
}
return nil
}
// SetRecurringInit sets value of RecurringInit conditional field.
func (m *MessageActionPaymentSent) SetRecurringInit(value bool) {
if value {
m.Flags.Set(2)
m.RecurringInit = true
} else {
m.Flags.Unset(2)
m.RecurringInit = false
}
}
// GetRecurringInit returns value of RecurringInit conditional field.
func (m *MessageActionPaymentSent) GetRecurringInit() (value bool) {
if m == nil {
return
}
return m.Flags.Has(2)
}
// SetRecurringUsed sets value of RecurringUsed conditional field.
func (m *MessageActionPaymentSent) SetRecurringUsed(value bool) {
if value {
m.Flags.Set(3)
m.RecurringUsed = true
} else {
m.Flags.Unset(3)
m.RecurringUsed = false
}
}
// GetRecurringUsed returns value of RecurringUsed conditional field.
func (m *MessageActionPaymentSent) GetRecurringUsed() (value bool) {
if m == nil {
return
}
return m.Flags.Has(3)
}
// GetCurrency returns value of Currency field.
func (m *MessageActionPaymentSent) GetCurrency() (value string) {
if m == nil {
return
}
return m.Currency
}
// GetTotalAmount returns value of TotalAmount field.
func (m *MessageActionPaymentSent) GetTotalAmount() (value int64) {
if m == nil {
return
}
return m.TotalAmount
}
// SetInvoiceSlug sets value of InvoiceSlug conditional field.
func (m *MessageActionPaymentSent) SetInvoiceSlug(value string) {
m.Flags.Set(0)
m.InvoiceSlug = value
}
// GetInvoiceSlug returns value of InvoiceSlug conditional field and
// boolean which is true if field was set.
func (m *MessageActionPaymentSent) GetInvoiceSlug() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.InvoiceSlug, true
}
// SetSubscriptionUntilDate sets value of SubscriptionUntilDate conditional field.
func (m *MessageActionPaymentSent) SetSubscriptionUntilDate(value int) {
m.Flags.Set(4)
m.SubscriptionUntilDate = value
}
// GetSubscriptionUntilDate returns value of SubscriptionUntilDate conditional field and
// boolean which is true if field was set.
func (m *MessageActionPaymentSent) GetSubscriptionUntilDate() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(4) {
return value, false
}
return m.SubscriptionUntilDate, true
}
// MessageActionPhoneCall represents TL type `messageActionPhoneCall#80e11a7f`.
// A phone call
//
// See https://core.telegram.org/constructor/messageActionPhoneCall for reference.
type MessageActionPhoneCall struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Is this a video call?
Video bool
// Call ID
CallID int64
// If the call has ended, the reason why it ended
//
// Use SetReason and GetReason helpers.
Reason PhoneCallDiscardReasonClass
// Duration of the call in seconds
//
// Use SetDuration and GetDuration helpers.
Duration int
}
// MessageActionPhoneCallTypeID is TL type id of MessageActionPhoneCall.
const MessageActionPhoneCallTypeID = 0x80e11a7f
// construct implements constructor of MessageActionClass.
func (m MessageActionPhoneCall) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPhoneCall.
var (
_ bin.Encoder = &MessageActionPhoneCall{}
_ bin.Decoder = &MessageActionPhoneCall{}
_ bin.BareEncoder = &MessageActionPhoneCall{}
_ bin.BareDecoder = &MessageActionPhoneCall{}
_ MessageActionClass = &MessageActionPhoneCall{}
)
func (m *MessageActionPhoneCall) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Video == false) {
return false
}
if !(m.CallID == 0) {
return false
}
if !(m.Reason == nil) {
return false
}
if !(m.Duration == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPhoneCall) String() string {
if m == nil {
return "MessageActionPhoneCall(nil)"
}
type Alias MessageActionPhoneCall
return fmt.Sprintf("MessageActionPhoneCall%+v", Alias(*m))
}
// FillFrom fills MessageActionPhoneCall from given interface.
func (m *MessageActionPhoneCall) FillFrom(from interface {
GetVideo() (value bool)
GetCallID() (value int64)
GetReason() (value PhoneCallDiscardReasonClass, ok bool)
GetDuration() (value int, ok bool)
}) {
m.Video = from.GetVideo()
m.CallID = from.GetCallID()
if val, ok := from.GetReason(); ok {
m.Reason = val
}
if val, ok := from.GetDuration(); ok {
m.Duration = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPhoneCall) TypeID() uint32 {
return MessageActionPhoneCallTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPhoneCall) TypeName() string {
return "messageActionPhoneCall"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPhoneCall) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPhoneCall",
ID: MessageActionPhoneCallTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Video",
SchemaName: "video",
Null: !m.Flags.Has(2),
},
{
Name: "CallID",
SchemaName: "call_id",
},
{
Name: "Reason",
SchemaName: "reason",
Null: !m.Flags.Has(0),
},
{
Name: "Duration",
SchemaName: "duration",
Null: !m.Flags.Has(1),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionPhoneCall) SetFlags() {
if !(m.Video == false) {
m.Flags.Set(2)
}
if !(m.Reason == nil) {
m.Flags.Set(0)
}
if !(m.Duration == 0) {
m.Flags.Set(1)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionPhoneCall) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPhoneCall#80e11a7f as nil")
}
b.PutID(MessageActionPhoneCallTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPhoneCall) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPhoneCall#80e11a7f as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPhoneCall#80e11a7f: field flags: %w", err)
}
b.PutLong(m.CallID)
if m.Flags.Has(0) {
if m.Reason == nil {
return fmt.Errorf("unable to encode messageActionPhoneCall#80e11a7f: field reason is nil")
}
if err := m.Reason.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPhoneCall#80e11a7f: field reason: %w", err)
}
}
if m.Flags.Has(1) {
b.PutInt(m.Duration)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPhoneCall) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPhoneCall#80e11a7f to nil")
}
if err := b.ConsumeID(MessageActionPhoneCallTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPhoneCall#80e11a7f: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPhoneCall) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPhoneCall#80e11a7f to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPhoneCall#80e11a7f: field flags: %w", err)
}
}
m.Video = m.Flags.Has(2)
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionPhoneCall#80e11a7f: field call_id: %w", err)
}
m.CallID = value
}
if m.Flags.Has(0) {
value, err := DecodePhoneCallDiscardReason(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionPhoneCall#80e11a7f: field reason: %w", err)
}
m.Reason = value
}
if m.Flags.Has(1) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionPhoneCall#80e11a7f: field duration: %w", err)
}
m.Duration = value
}
return nil
}
// SetVideo sets value of Video conditional field.
func (m *MessageActionPhoneCall) SetVideo(value bool) {
if value {
m.Flags.Set(2)
m.Video = true
} else {
m.Flags.Unset(2)
m.Video = false
}
}
// GetVideo returns value of Video conditional field.
func (m *MessageActionPhoneCall) GetVideo() (value bool) {
if m == nil {
return
}
return m.Flags.Has(2)
}
// GetCallID returns value of CallID field.
func (m *MessageActionPhoneCall) GetCallID() (value int64) {
if m == nil {
return
}
return m.CallID
}
// SetReason sets value of Reason conditional field.
func (m *MessageActionPhoneCall) SetReason(value PhoneCallDiscardReasonClass) {
m.Flags.Set(0)
m.Reason = value
}
// GetReason returns value of Reason conditional field and
// boolean which is true if field was set.
func (m *MessageActionPhoneCall) GetReason() (value PhoneCallDiscardReasonClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.Reason, true
}
// SetDuration sets value of Duration conditional field.
func (m *MessageActionPhoneCall) SetDuration(value int) {
m.Flags.Set(1)
m.Duration = value
}
// GetDuration returns value of Duration conditional field and
// boolean which is true if field was set.
func (m *MessageActionPhoneCall) GetDuration() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(1) {
return value, false
}
return m.Duration, true
}
// MessageActionScreenshotTaken represents TL type `messageActionScreenshotTaken#4792929b`.
// A screenshot of the chat was taken
//
// See https://core.telegram.org/constructor/messageActionScreenshotTaken for reference.
type MessageActionScreenshotTaken struct {
}
// MessageActionScreenshotTakenTypeID is TL type id of MessageActionScreenshotTaken.
const MessageActionScreenshotTakenTypeID = 0x4792929b
// construct implements constructor of MessageActionClass.
func (m MessageActionScreenshotTaken) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionScreenshotTaken.
var (
_ bin.Encoder = &MessageActionScreenshotTaken{}
_ bin.Decoder = &MessageActionScreenshotTaken{}
_ bin.BareEncoder = &MessageActionScreenshotTaken{}
_ bin.BareDecoder = &MessageActionScreenshotTaken{}
_ MessageActionClass = &MessageActionScreenshotTaken{}
)
func (m *MessageActionScreenshotTaken) Zero() bool {
if m == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionScreenshotTaken) String() string {
if m == nil {
return "MessageActionScreenshotTaken(nil)"
}
type Alias MessageActionScreenshotTaken
return fmt.Sprintf("MessageActionScreenshotTaken%+v", Alias(*m))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionScreenshotTaken) TypeID() uint32 {
return MessageActionScreenshotTakenTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionScreenshotTaken) TypeName() string {
return "messageActionScreenshotTaken"
}
// TypeInfo returns info about TL type.
func (m *MessageActionScreenshotTaken) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionScreenshotTaken",
ID: MessageActionScreenshotTakenTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionScreenshotTaken) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionScreenshotTaken#4792929b as nil")
}
b.PutID(MessageActionScreenshotTakenTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionScreenshotTaken) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionScreenshotTaken#4792929b as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionScreenshotTaken) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionScreenshotTaken#4792929b to nil")
}
if err := b.ConsumeID(MessageActionScreenshotTakenTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionScreenshotTaken#4792929b: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionScreenshotTaken) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionScreenshotTaken#4792929b to nil")
}
return nil
}
// MessageActionCustomAction represents TL type `messageActionCustomAction#fae69f56`.
// Custom action (most likely not supported by the current layer, an upgrade might be
// needed)
//
// See https://core.telegram.org/constructor/messageActionCustomAction for reference.
type MessageActionCustomAction struct {
// Action message
Message string
}
// MessageActionCustomActionTypeID is TL type id of MessageActionCustomAction.
const MessageActionCustomActionTypeID = 0xfae69f56
// construct implements constructor of MessageActionClass.
func (m MessageActionCustomAction) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionCustomAction.
var (
_ bin.Encoder = &MessageActionCustomAction{}
_ bin.Decoder = &MessageActionCustomAction{}
_ bin.BareEncoder = &MessageActionCustomAction{}
_ bin.BareDecoder = &MessageActionCustomAction{}
_ MessageActionClass = &MessageActionCustomAction{}
)
func (m *MessageActionCustomAction) Zero() bool {
if m == nil {
return true
}
if !(m.Message == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionCustomAction) String() string {
if m == nil {
return "MessageActionCustomAction(nil)"
}
type Alias MessageActionCustomAction
return fmt.Sprintf("MessageActionCustomAction%+v", Alias(*m))
}
// FillFrom fills MessageActionCustomAction from given interface.
func (m *MessageActionCustomAction) FillFrom(from interface {
GetMessage() (value string)
}) {
m.Message = from.GetMessage()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionCustomAction) TypeID() uint32 {
return MessageActionCustomActionTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionCustomAction) TypeName() string {
return "messageActionCustomAction"
}
// TypeInfo returns info about TL type.
func (m *MessageActionCustomAction) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionCustomAction",
ID: MessageActionCustomActionTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Message",
SchemaName: "message",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionCustomAction) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionCustomAction#fae69f56 as nil")
}
b.PutID(MessageActionCustomActionTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionCustomAction) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionCustomAction#fae69f56 as nil")
}
b.PutString(m.Message)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionCustomAction) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionCustomAction#fae69f56 to nil")
}
if err := b.ConsumeID(MessageActionCustomActionTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionCustomAction#fae69f56: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionCustomAction) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionCustomAction#fae69f56 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionCustomAction#fae69f56: field message: %w", err)
}
m.Message = value
}
return nil
}
// GetMessage returns value of Message field.
func (m *MessageActionCustomAction) GetMessage() (value string) {
if m == nil {
return
}
return m.Message
}
// MessageActionBotAllowed represents TL type `messageActionBotAllowed#c516d679`.
// We have given the bot permission to send us direct messages.
// The optional fields specify how did we authorize the bot to send us messages.
//
// See https://core.telegram.org/constructor/messageActionBotAllowed for reference.
type MessageActionBotAllowed struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// We have authorized the bot to send us messages by installing the bot's attachment
// menu¹.
//
// Links:
// 1) https://core.telegram.org/api/bots/attach
AttachMenu bool
// We have allowed the bot to send us messages using bots.allowSendMessage »¹.
//
// Links:
// 1) https://core.telegram.org/method/bots.allowSendMessage
FromRequest bool
// We have authorized the bot to send us messages by logging into a website via Telegram
// Login »¹; this field contains the domain name of the website on which the user has
// logged in.
//
// Links:
// 1) https://core.telegram.org/widgets/login
//
// Use SetDomain and GetDomain helpers.
Domain string
// We have authorized the bot to send us messages by opening the specified bot mini app¹.
//
// Links:
// 1) https://core.telegram.org/api/bots/webapps
//
// Use SetApp and GetApp helpers.
App BotAppClass
}
// MessageActionBotAllowedTypeID is TL type id of MessageActionBotAllowed.
const MessageActionBotAllowedTypeID = 0xc516d679
// construct implements constructor of MessageActionClass.
func (m MessageActionBotAllowed) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionBotAllowed.
var (
_ bin.Encoder = &MessageActionBotAllowed{}
_ bin.Decoder = &MessageActionBotAllowed{}
_ bin.BareEncoder = &MessageActionBotAllowed{}
_ bin.BareDecoder = &MessageActionBotAllowed{}
_ MessageActionClass = &MessageActionBotAllowed{}
)
func (m *MessageActionBotAllowed) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.AttachMenu == false) {
return false
}
if !(m.FromRequest == false) {
return false
}
if !(m.Domain == "") {
return false
}
if !(m.App == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionBotAllowed) String() string {
if m == nil {
return "MessageActionBotAllowed(nil)"
}
type Alias MessageActionBotAllowed
return fmt.Sprintf("MessageActionBotAllowed%+v", Alias(*m))
}
// FillFrom fills MessageActionBotAllowed from given interface.
func (m *MessageActionBotAllowed) FillFrom(from interface {
GetAttachMenu() (value bool)
GetFromRequest() (value bool)
GetDomain() (value string, ok bool)
GetApp() (value BotAppClass, ok bool)
}) {
m.AttachMenu = from.GetAttachMenu()
m.FromRequest = from.GetFromRequest()
if val, ok := from.GetDomain(); ok {
m.Domain = val
}
if val, ok := from.GetApp(); ok {
m.App = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionBotAllowed) TypeID() uint32 {
return MessageActionBotAllowedTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionBotAllowed) TypeName() string {
return "messageActionBotAllowed"
}
// TypeInfo returns info about TL type.
func (m *MessageActionBotAllowed) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionBotAllowed",
ID: MessageActionBotAllowedTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "AttachMenu",
SchemaName: "attach_menu",
Null: !m.Flags.Has(1),
},
{
Name: "FromRequest",
SchemaName: "from_request",
Null: !m.Flags.Has(3),
},
{
Name: "Domain",
SchemaName: "domain",
Null: !m.Flags.Has(0),
},
{
Name: "App",
SchemaName: "app",
Null: !m.Flags.Has(2),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionBotAllowed) SetFlags() {
if !(m.AttachMenu == false) {
m.Flags.Set(1)
}
if !(m.FromRequest == false) {
m.Flags.Set(3)
}
if !(m.Domain == "") {
m.Flags.Set(0)
}
if !(m.App == nil) {
m.Flags.Set(2)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionBotAllowed) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionBotAllowed#c516d679 as nil")
}
b.PutID(MessageActionBotAllowedTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionBotAllowed) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionBotAllowed#c516d679 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionBotAllowed#c516d679: field flags: %w", err)
}
if m.Flags.Has(0) {
b.PutString(m.Domain)
}
if m.Flags.Has(2) {
if m.App == nil {
return fmt.Errorf("unable to encode messageActionBotAllowed#c516d679: field app is nil")
}
if err := m.App.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionBotAllowed#c516d679: field app: %w", err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionBotAllowed) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionBotAllowed#c516d679 to nil")
}
if err := b.ConsumeID(MessageActionBotAllowedTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionBotAllowed#c516d679: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionBotAllowed) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionBotAllowed#c516d679 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionBotAllowed#c516d679: field flags: %w", err)
}
}
m.AttachMenu = m.Flags.Has(1)
m.FromRequest = m.Flags.Has(3)
if m.Flags.Has(0) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionBotAllowed#c516d679: field domain: %w", err)
}
m.Domain = value
}
if m.Flags.Has(2) {
value, err := DecodeBotApp(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionBotAllowed#c516d679: field app: %w", err)
}
m.App = value
}
return nil
}
// SetAttachMenu sets value of AttachMenu conditional field.
func (m *MessageActionBotAllowed) SetAttachMenu(value bool) {
if value {
m.Flags.Set(1)
m.AttachMenu = true
} else {
m.Flags.Unset(1)
m.AttachMenu = false
}
}
// GetAttachMenu returns value of AttachMenu conditional field.
func (m *MessageActionBotAllowed) GetAttachMenu() (value bool) {
if m == nil {
return
}
return m.Flags.Has(1)
}
// SetFromRequest sets value of FromRequest conditional field.
func (m *MessageActionBotAllowed) SetFromRequest(value bool) {
if value {
m.Flags.Set(3)
m.FromRequest = true
} else {
m.Flags.Unset(3)
m.FromRequest = false
}
}
// GetFromRequest returns value of FromRequest conditional field.
func (m *MessageActionBotAllowed) GetFromRequest() (value bool) {
if m == nil {
return
}
return m.Flags.Has(3)
}
// SetDomain sets value of Domain conditional field.
func (m *MessageActionBotAllowed) SetDomain(value string) {
m.Flags.Set(0)
m.Domain = value
}
// GetDomain returns value of Domain conditional field and
// boolean which is true if field was set.
func (m *MessageActionBotAllowed) GetDomain() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.Domain, true
}
// SetApp sets value of App conditional field.
func (m *MessageActionBotAllowed) SetApp(value BotAppClass) {
m.Flags.Set(2)
m.App = value
}
// GetApp returns value of App conditional field and
// boolean which is true if field was set.
func (m *MessageActionBotAllowed) GetApp() (value BotAppClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(2) {
return value, false
}
return m.App, true
}
// MessageActionSecureValuesSentMe represents TL type `messageActionSecureValuesSentMe#1b287353`.
// Secure telegram passport¹ values were received
//
// Links:
// 1. https://core.telegram.org/passport
//
// See https://core.telegram.org/constructor/messageActionSecureValuesSentMe for reference.
type MessageActionSecureValuesSentMe struct {
// Vector with information about documents and other Telegram Passport elements that were
// shared with the bot
Values []SecureValue
// Encrypted credentials required to decrypt the data
Credentials SecureCredentialsEncrypted
}
// MessageActionSecureValuesSentMeTypeID is TL type id of MessageActionSecureValuesSentMe.
const MessageActionSecureValuesSentMeTypeID = 0x1b287353
// construct implements constructor of MessageActionClass.
func (m MessageActionSecureValuesSentMe) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionSecureValuesSentMe.
var (
_ bin.Encoder = &MessageActionSecureValuesSentMe{}
_ bin.Decoder = &MessageActionSecureValuesSentMe{}
_ bin.BareEncoder = &MessageActionSecureValuesSentMe{}
_ bin.BareDecoder = &MessageActionSecureValuesSentMe{}
_ MessageActionClass = &MessageActionSecureValuesSentMe{}
)
func (m *MessageActionSecureValuesSentMe) Zero() bool {
if m == nil {
return true
}
if !(m.Values == nil) {
return false
}
if !(m.Credentials.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionSecureValuesSentMe) String() string {
if m == nil {
return "MessageActionSecureValuesSentMe(nil)"
}
type Alias MessageActionSecureValuesSentMe
return fmt.Sprintf("MessageActionSecureValuesSentMe%+v", Alias(*m))
}
// FillFrom fills MessageActionSecureValuesSentMe from given interface.
func (m *MessageActionSecureValuesSentMe) FillFrom(from interface {
GetValues() (value []SecureValue)
GetCredentials() (value SecureCredentialsEncrypted)
}) {
m.Values = from.GetValues()
m.Credentials = from.GetCredentials()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionSecureValuesSentMe) TypeID() uint32 {
return MessageActionSecureValuesSentMeTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionSecureValuesSentMe) TypeName() string {
return "messageActionSecureValuesSentMe"
}
// TypeInfo returns info about TL type.
func (m *MessageActionSecureValuesSentMe) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionSecureValuesSentMe",
ID: MessageActionSecureValuesSentMeTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Values",
SchemaName: "values",
},
{
Name: "Credentials",
SchemaName: "credentials",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionSecureValuesSentMe) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSecureValuesSentMe#1b287353 as nil")
}
b.PutID(MessageActionSecureValuesSentMeTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionSecureValuesSentMe) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSecureValuesSentMe#1b287353 as nil")
}
b.PutVectorHeader(len(m.Values))
for idx, v := range m.Values {
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionSecureValuesSentMe#1b287353: field values element with index %d: %w", idx, err)
}
}
if err := m.Credentials.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionSecureValuesSentMe#1b287353: field credentials: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionSecureValuesSentMe) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSecureValuesSentMe#1b287353 to nil")
}
if err := b.ConsumeID(MessageActionSecureValuesSentMeTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionSecureValuesSentMe#1b287353: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionSecureValuesSentMe) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSecureValuesSentMe#1b287353 to nil")
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageActionSecureValuesSentMe#1b287353: field values: %w", err)
}
if headerLen > 0 {
m.Values = make([]SecureValue, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
var value SecureValue
if err := value.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionSecureValuesSentMe#1b287353: field values: %w", err)
}
m.Values = append(m.Values, value)
}
}
{
if err := m.Credentials.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionSecureValuesSentMe#1b287353: field credentials: %w", err)
}
}
return nil
}
// GetValues returns value of Values field.
func (m *MessageActionSecureValuesSentMe) GetValues() (value []SecureValue) {
if m == nil {
return
}
return m.Values
}
// GetCredentials returns value of Credentials field.
func (m *MessageActionSecureValuesSentMe) GetCredentials() (value SecureCredentialsEncrypted) {
if m == nil {
return
}
return m.Credentials
}
// MessageActionSecureValuesSent represents TL type `messageActionSecureValuesSent#d95c6154`.
// Request for secure telegram passport¹ values was sent
//
// Links:
// 1. https://core.telegram.org/passport
//
// See https://core.telegram.org/constructor/messageActionSecureValuesSent for reference.
type MessageActionSecureValuesSent struct {
// Secure value types
Types []SecureValueTypeClass
}
// MessageActionSecureValuesSentTypeID is TL type id of MessageActionSecureValuesSent.
const MessageActionSecureValuesSentTypeID = 0xd95c6154
// construct implements constructor of MessageActionClass.
func (m MessageActionSecureValuesSent) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionSecureValuesSent.
var (
_ bin.Encoder = &MessageActionSecureValuesSent{}
_ bin.Decoder = &MessageActionSecureValuesSent{}
_ bin.BareEncoder = &MessageActionSecureValuesSent{}
_ bin.BareDecoder = &MessageActionSecureValuesSent{}
_ MessageActionClass = &MessageActionSecureValuesSent{}
)
func (m *MessageActionSecureValuesSent) Zero() bool {
if m == nil {
return true
}
if !(m.Types == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionSecureValuesSent) String() string {
if m == nil {
return "MessageActionSecureValuesSent(nil)"
}
type Alias MessageActionSecureValuesSent
return fmt.Sprintf("MessageActionSecureValuesSent%+v", Alias(*m))
}
// FillFrom fills MessageActionSecureValuesSent from given interface.
func (m *MessageActionSecureValuesSent) FillFrom(from interface {
GetTypes() (value []SecureValueTypeClass)
}) {
m.Types = from.GetTypes()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionSecureValuesSent) TypeID() uint32 {
return MessageActionSecureValuesSentTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionSecureValuesSent) TypeName() string {
return "messageActionSecureValuesSent"
}
// TypeInfo returns info about TL type.
func (m *MessageActionSecureValuesSent) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionSecureValuesSent",
ID: MessageActionSecureValuesSentTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Types",
SchemaName: "types",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionSecureValuesSent) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSecureValuesSent#d95c6154 as nil")
}
b.PutID(MessageActionSecureValuesSentTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionSecureValuesSent) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSecureValuesSent#d95c6154 as nil")
}
b.PutVectorHeader(len(m.Types))
for idx, v := range m.Types {
if v == nil {
return fmt.Errorf("unable to encode messageActionSecureValuesSent#d95c6154: field types element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionSecureValuesSent#d95c6154: field types element with index %d: %w", idx, err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionSecureValuesSent) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSecureValuesSent#d95c6154 to nil")
}
if err := b.ConsumeID(MessageActionSecureValuesSentTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionSecureValuesSent#d95c6154: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionSecureValuesSent) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSecureValuesSent#d95c6154 to nil")
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageActionSecureValuesSent#d95c6154: field types: %w", err)
}
if headerLen > 0 {
m.Types = make([]SecureValueTypeClass, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := DecodeSecureValueType(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionSecureValuesSent#d95c6154: field types: %w", err)
}
m.Types = append(m.Types, value)
}
}
return nil
}
// GetTypes returns value of Types field.
func (m *MessageActionSecureValuesSent) GetTypes() (value []SecureValueTypeClass) {
if m == nil {
return
}
return m.Types
}
// MapTypes returns field Types wrapped in SecureValueTypeClassArray helper.
func (m *MessageActionSecureValuesSent) MapTypes() (value SecureValueTypeClassArray) {
return SecureValueTypeClassArray(m.Types)
}
// MessageActionContactSignUp represents TL type `messageActionContactSignUp#f3f25f76`.
// A contact just signed up to telegram
//
// See https://core.telegram.org/constructor/messageActionContactSignUp for reference.
type MessageActionContactSignUp struct {
}
// MessageActionContactSignUpTypeID is TL type id of MessageActionContactSignUp.
const MessageActionContactSignUpTypeID = 0xf3f25f76
// construct implements constructor of MessageActionClass.
func (m MessageActionContactSignUp) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionContactSignUp.
var (
_ bin.Encoder = &MessageActionContactSignUp{}
_ bin.Decoder = &MessageActionContactSignUp{}
_ bin.BareEncoder = &MessageActionContactSignUp{}
_ bin.BareDecoder = &MessageActionContactSignUp{}
_ MessageActionClass = &MessageActionContactSignUp{}
)
func (m *MessageActionContactSignUp) Zero() bool {
if m == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionContactSignUp) String() string {
if m == nil {
return "MessageActionContactSignUp(nil)"
}
type Alias MessageActionContactSignUp
return fmt.Sprintf("MessageActionContactSignUp%+v", Alias(*m))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionContactSignUp) TypeID() uint32 {
return MessageActionContactSignUpTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionContactSignUp) TypeName() string {
return "messageActionContactSignUp"
}
// TypeInfo returns info about TL type.
func (m *MessageActionContactSignUp) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionContactSignUp",
ID: MessageActionContactSignUpTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionContactSignUp) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionContactSignUp#f3f25f76 as nil")
}
b.PutID(MessageActionContactSignUpTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionContactSignUp) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionContactSignUp#f3f25f76 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionContactSignUp) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionContactSignUp#f3f25f76 to nil")
}
if err := b.ConsumeID(MessageActionContactSignUpTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionContactSignUp#f3f25f76: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionContactSignUp) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionContactSignUp#f3f25f76 to nil")
}
return nil
}
// MessageActionGeoProximityReached represents TL type `messageActionGeoProximityReached#98e0d697`.
// A user of the chat is now in proximity of another user
//
// See https://core.telegram.org/constructor/messageActionGeoProximityReached for reference.
type MessageActionGeoProximityReached struct {
// The user or chat that is now in proximity of to_id
FromID PeerClass
// The user or chat that subscribed to live geolocation proximity alerts¹
//
// Links:
// 1) https://core.telegram.org/api/live-location#proximity-alert
ToID PeerClass
// Distance, in meters (0-100000)
Distance int
}
// MessageActionGeoProximityReachedTypeID is TL type id of MessageActionGeoProximityReached.
const MessageActionGeoProximityReachedTypeID = 0x98e0d697
// construct implements constructor of MessageActionClass.
func (m MessageActionGeoProximityReached) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGeoProximityReached.
var (
_ bin.Encoder = &MessageActionGeoProximityReached{}
_ bin.Decoder = &MessageActionGeoProximityReached{}
_ bin.BareEncoder = &MessageActionGeoProximityReached{}
_ bin.BareDecoder = &MessageActionGeoProximityReached{}
_ MessageActionClass = &MessageActionGeoProximityReached{}
)
func (m *MessageActionGeoProximityReached) Zero() bool {
if m == nil {
return true
}
if !(m.FromID == nil) {
return false
}
if !(m.ToID == nil) {
return false
}
if !(m.Distance == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGeoProximityReached) String() string {
if m == nil {
return "MessageActionGeoProximityReached(nil)"
}
type Alias MessageActionGeoProximityReached
return fmt.Sprintf("MessageActionGeoProximityReached%+v", Alias(*m))
}
// FillFrom fills MessageActionGeoProximityReached from given interface.
func (m *MessageActionGeoProximityReached) FillFrom(from interface {
GetFromID() (value PeerClass)
GetToID() (value PeerClass)
GetDistance() (value int)
}) {
m.FromID = from.GetFromID()
m.ToID = from.GetToID()
m.Distance = from.GetDistance()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGeoProximityReached) TypeID() uint32 {
return MessageActionGeoProximityReachedTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGeoProximityReached) TypeName() string {
return "messageActionGeoProximityReached"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGeoProximityReached) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGeoProximityReached",
ID: MessageActionGeoProximityReachedTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "FromID",
SchemaName: "from_id",
},
{
Name: "ToID",
SchemaName: "to_id",
},
{
Name: "Distance",
SchemaName: "distance",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionGeoProximityReached) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGeoProximityReached#98e0d697 as nil")
}
b.PutID(MessageActionGeoProximityReachedTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGeoProximityReached) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGeoProximityReached#98e0d697 as nil")
}
if m.FromID == nil {
return fmt.Errorf("unable to encode messageActionGeoProximityReached#98e0d697: field from_id is nil")
}
if err := m.FromID.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGeoProximityReached#98e0d697: field from_id: %w", err)
}
if m.ToID == nil {
return fmt.Errorf("unable to encode messageActionGeoProximityReached#98e0d697: field to_id is nil")
}
if err := m.ToID.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGeoProximityReached#98e0d697: field to_id: %w", err)
}
b.PutInt(m.Distance)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGeoProximityReached) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGeoProximityReached#98e0d697 to nil")
}
if err := b.ConsumeID(MessageActionGeoProximityReachedTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGeoProximityReached#98e0d697: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGeoProximityReached) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGeoProximityReached#98e0d697 to nil")
}
{
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionGeoProximityReached#98e0d697: field from_id: %w", err)
}
m.FromID = value
}
{
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionGeoProximityReached#98e0d697: field to_id: %w", err)
}
m.ToID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionGeoProximityReached#98e0d697: field distance: %w", err)
}
m.Distance = value
}
return nil
}
// GetFromID returns value of FromID field.
func (m *MessageActionGeoProximityReached) GetFromID() (value PeerClass) {
if m == nil {
return
}
return m.FromID
}
// GetToID returns value of ToID field.
func (m *MessageActionGeoProximityReached) GetToID() (value PeerClass) {
if m == nil {
return
}
return m.ToID
}
// GetDistance returns value of Distance field.
func (m *MessageActionGeoProximityReached) GetDistance() (value int) {
if m == nil {
return
}
return m.Distance
}
// MessageActionGroupCall represents TL type `messageActionGroupCall#7a0d7f42`.
// The group call has ended
//
// See https://core.telegram.org/constructor/messageActionGroupCall for reference.
type MessageActionGroupCall struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Group call
Call InputGroupCallClass
// Group call duration
//
// Use SetDuration and GetDuration helpers.
Duration int
}
// MessageActionGroupCallTypeID is TL type id of MessageActionGroupCall.
const MessageActionGroupCallTypeID = 0x7a0d7f42
// construct implements constructor of MessageActionClass.
func (m MessageActionGroupCall) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGroupCall.
var (
_ bin.Encoder = &MessageActionGroupCall{}
_ bin.Decoder = &MessageActionGroupCall{}
_ bin.BareEncoder = &MessageActionGroupCall{}
_ bin.BareDecoder = &MessageActionGroupCall{}
_ MessageActionClass = &MessageActionGroupCall{}
)
func (m *MessageActionGroupCall) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Call == nil) {
return false
}
if !(m.Duration == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGroupCall) String() string {
if m == nil {
return "MessageActionGroupCall(nil)"
}
type Alias MessageActionGroupCall
return fmt.Sprintf("MessageActionGroupCall%+v", Alias(*m))
}
// FillFrom fills MessageActionGroupCall from given interface.
func (m *MessageActionGroupCall) FillFrom(from interface {
GetCall() (value InputGroupCallClass)
GetDuration() (value int, ok bool)
}) {
m.Call = from.GetCall()
if val, ok := from.GetDuration(); ok {
m.Duration = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGroupCall) TypeID() uint32 {
return MessageActionGroupCallTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGroupCall) TypeName() string {
return "messageActionGroupCall"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGroupCall) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGroupCall",
ID: MessageActionGroupCallTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Call",
SchemaName: "call",
},
{
Name: "Duration",
SchemaName: "duration",
Null: !m.Flags.Has(0),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionGroupCall) SetFlags() {
if !(m.Duration == 0) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionGroupCall) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGroupCall#7a0d7f42 as nil")
}
b.PutID(MessageActionGroupCallTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGroupCall) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGroupCall#7a0d7f42 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGroupCall#7a0d7f42: field flags: %w", err)
}
if m.Call == nil {
return fmt.Errorf("unable to encode messageActionGroupCall#7a0d7f42: field call is nil")
}
if err := m.Call.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGroupCall#7a0d7f42: field call: %w", err)
}
if m.Flags.Has(0) {
b.PutInt(m.Duration)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGroupCall) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGroupCall#7a0d7f42 to nil")
}
if err := b.ConsumeID(MessageActionGroupCallTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGroupCall#7a0d7f42: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGroupCall) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGroupCall#7a0d7f42 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionGroupCall#7a0d7f42: field flags: %w", err)
}
}
{
value, err := DecodeInputGroupCall(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionGroupCall#7a0d7f42: field call: %w", err)
}
m.Call = value
}
if m.Flags.Has(0) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionGroupCall#7a0d7f42: field duration: %w", err)
}
m.Duration = value
}
return nil
}
// GetCall returns value of Call field.
func (m *MessageActionGroupCall) GetCall() (value InputGroupCallClass) {
if m == nil {
return
}
return m.Call
}
// SetDuration sets value of Duration conditional field.
func (m *MessageActionGroupCall) SetDuration(value int) {
m.Flags.Set(0)
m.Duration = value
}
// GetDuration returns value of Duration conditional field and
// boolean which is true if field was set.
func (m *MessageActionGroupCall) GetDuration() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.Duration, true
}
// MessageActionInviteToGroupCall represents TL type `messageActionInviteToGroupCall#502f92f7`.
// A set of users was invited to the group call
//
// See https://core.telegram.org/constructor/messageActionInviteToGroupCall for reference.
type MessageActionInviteToGroupCall struct {
// The group call
Call InputGroupCallClass
// The invited users
Users []int64
}
// MessageActionInviteToGroupCallTypeID is TL type id of MessageActionInviteToGroupCall.
const MessageActionInviteToGroupCallTypeID = 0x502f92f7
// construct implements constructor of MessageActionClass.
func (m MessageActionInviteToGroupCall) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionInviteToGroupCall.
var (
_ bin.Encoder = &MessageActionInviteToGroupCall{}
_ bin.Decoder = &MessageActionInviteToGroupCall{}
_ bin.BareEncoder = &MessageActionInviteToGroupCall{}
_ bin.BareDecoder = &MessageActionInviteToGroupCall{}
_ MessageActionClass = &MessageActionInviteToGroupCall{}
)
func (m *MessageActionInviteToGroupCall) Zero() bool {
if m == nil {
return true
}
if !(m.Call == nil) {
return false
}
if !(m.Users == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionInviteToGroupCall) String() string {
if m == nil {
return "MessageActionInviteToGroupCall(nil)"
}
type Alias MessageActionInviteToGroupCall
return fmt.Sprintf("MessageActionInviteToGroupCall%+v", Alias(*m))
}
// FillFrom fills MessageActionInviteToGroupCall from given interface.
func (m *MessageActionInviteToGroupCall) FillFrom(from interface {
GetCall() (value InputGroupCallClass)
GetUsers() (value []int64)
}) {
m.Call = from.GetCall()
m.Users = from.GetUsers()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionInviteToGroupCall) TypeID() uint32 {
return MessageActionInviteToGroupCallTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionInviteToGroupCall) TypeName() string {
return "messageActionInviteToGroupCall"
}
// TypeInfo returns info about TL type.
func (m *MessageActionInviteToGroupCall) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionInviteToGroupCall",
ID: MessageActionInviteToGroupCallTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Call",
SchemaName: "call",
},
{
Name: "Users",
SchemaName: "users",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionInviteToGroupCall) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionInviteToGroupCall#502f92f7 as nil")
}
b.PutID(MessageActionInviteToGroupCallTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionInviteToGroupCall) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionInviteToGroupCall#502f92f7 as nil")
}
if m.Call == nil {
return fmt.Errorf("unable to encode messageActionInviteToGroupCall#502f92f7: field call is nil")
}
if err := m.Call.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionInviteToGroupCall#502f92f7: field call: %w", err)
}
b.PutVectorHeader(len(m.Users))
for _, v := range m.Users {
b.PutLong(v)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionInviteToGroupCall) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionInviteToGroupCall#502f92f7 to nil")
}
if err := b.ConsumeID(MessageActionInviteToGroupCallTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionInviteToGroupCall#502f92f7: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionInviteToGroupCall) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionInviteToGroupCall#502f92f7 to nil")
}
{
value, err := DecodeInputGroupCall(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionInviteToGroupCall#502f92f7: field call: %w", err)
}
m.Call = value
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageActionInviteToGroupCall#502f92f7: field users: %w", err)
}
if headerLen > 0 {
m.Users = make([]int64, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionInviteToGroupCall#502f92f7: field users: %w", err)
}
m.Users = append(m.Users, value)
}
}
return nil
}
// GetCall returns value of Call field.
func (m *MessageActionInviteToGroupCall) GetCall() (value InputGroupCallClass) {
if m == nil {
return
}
return m.Call
}
// GetUsers returns value of Users field.
func (m *MessageActionInviteToGroupCall) GetUsers() (value []int64) {
if m == nil {
return
}
return m.Users
}
// MessageActionSetMessagesTTL represents TL type `messageActionSetMessagesTTL#3c134d7b`.
// The Time-To-Live of messages in this chat was changed.
//
// See https://core.telegram.org/constructor/messageActionSetMessagesTTL for reference.
type MessageActionSetMessagesTTL struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// New Time-To-Live of all messages sent in this chat; if 0, autodeletion was disabled.
Period int
// If set, the chat TTL setting was set not due to a manual change by one of participants
// but automatically because one of the participants has the default TTL settings
// enabled »¹. For example, when a user writes to us for the first time and we have set
// a default messages TTL of 1 week, this service message (with
// auto_setting_from=our_userid) will be emitted before our first message.
//
// Links:
// 1) https://core.telegram.org/method/messages.setDefaultHistoryTTL
//
// Use SetAutoSettingFrom and GetAutoSettingFrom helpers.
AutoSettingFrom int64
}
// MessageActionSetMessagesTTLTypeID is TL type id of MessageActionSetMessagesTTL.
const MessageActionSetMessagesTTLTypeID = 0x3c134d7b
// construct implements constructor of MessageActionClass.
func (m MessageActionSetMessagesTTL) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionSetMessagesTTL.
var (
_ bin.Encoder = &MessageActionSetMessagesTTL{}
_ bin.Decoder = &MessageActionSetMessagesTTL{}
_ bin.BareEncoder = &MessageActionSetMessagesTTL{}
_ bin.BareDecoder = &MessageActionSetMessagesTTL{}
_ MessageActionClass = &MessageActionSetMessagesTTL{}
)
func (m *MessageActionSetMessagesTTL) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Period == 0) {
return false
}
if !(m.AutoSettingFrom == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionSetMessagesTTL) String() string {
if m == nil {
return "MessageActionSetMessagesTTL(nil)"
}
type Alias MessageActionSetMessagesTTL
return fmt.Sprintf("MessageActionSetMessagesTTL%+v", Alias(*m))
}
// FillFrom fills MessageActionSetMessagesTTL from given interface.
func (m *MessageActionSetMessagesTTL) FillFrom(from interface {
GetPeriod() (value int)
GetAutoSettingFrom() (value int64, ok bool)
}) {
m.Period = from.GetPeriod()
if val, ok := from.GetAutoSettingFrom(); ok {
m.AutoSettingFrom = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionSetMessagesTTL) TypeID() uint32 {
return MessageActionSetMessagesTTLTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionSetMessagesTTL) TypeName() string {
return "messageActionSetMessagesTTL"
}
// TypeInfo returns info about TL type.
func (m *MessageActionSetMessagesTTL) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionSetMessagesTTL",
ID: MessageActionSetMessagesTTLTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Period",
SchemaName: "period",
},
{
Name: "AutoSettingFrom",
SchemaName: "auto_setting_from",
Null: !m.Flags.Has(0),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionSetMessagesTTL) SetFlags() {
if !(m.AutoSettingFrom == 0) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionSetMessagesTTL) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSetMessagesTTL#3c134d7b as nil")
}
b.PutID(MessageActionSetMessagesTTLTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionSetMessagesTTL) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSetMessagesTTL#3c134d7b as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionSetMessagesTTL#3c134d7b: field flags: %w", err)
}
b.PutInt(m.Period)
if m.Flags.Has(0) {
b.PutLong(m.AutoSettingFrom)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionSetMessagesTTL) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSetMessagesTTL#3c134d7b to nil")
}
if err := b.ConsumeID(MessageActionSetMessagesTTLTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionSetMessagesTTL#3c134d7b: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionSetMessagesTTL) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSetMessagesTTL#3c134d7b to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionSetMessagesTTL#3c134d7b: field flags: %w", err)
}
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionSetMessagesTTL#3c134d7b: field period: %w", err)
}
m.Period = value
}
if m.Flags.Has(0) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionSetMessagesTTL#3c134d7b: field auto_setting_from: %w", err)
}
m.AutoSettingFrom = value
}
return nil
}
// GetPeriod returns value of Period field.
func (m *MessageActionSetMessagesTTL) GetPeriod() (value int) {
if m == nil {
return
}
return m.Period
}
// SetAutoSettingFrom sets value of AutoSettingFrom conditional field.
func (m *MessageActionSetMessagesTTL) SetAutoSettingFrom(value int64) {
m.Flags.Set(0)
m.AutoSettingFrom = value
}
// GetAutoSettingFrom returns value of AutoSettingFrom conditional field and
// boolean which is true if field was set.
func (m *MessageActionSetMessagesTTL) GetAutoSettingFrom() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.AutoSettingFrom, true
}
// MessageActionGroupCallScheduled represents TL type `messageActionGroupCallScheduled#b3a07661`.
// A group call was scheduled
//
// See https://core.telegram.org/constructor/messageActionGroupCallScheduled for reference.
type MessageActionGroupCallScheduled struct {
// The group call
Call InputGroupCallClass
// When is this group call scheduled to start
ScheduleDate int
}
// MessageActionGroupCallScheduledTypeID is TL type id of MessageActionGroupCallScheduled.
const MessageActionGroupCallScheduledTypeID = 0xb3a07661
// construct implements constructor of MessageActionClass.
func (m MessageActionGroupCallScheduled) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGroupCallScheduled.
var (
_ bin.Encoder = &MessageActionGroupCallScheduled{}
_ bin.Decoder = &MessageActionGroupCallScheduled{}
_ bin.BareEncoder = &MessageActionGroupCallScheduled{}
_ bin.BareDecoder = &MessageActionGroupCallScheduled{}
_ MessageActionClass = &MessageActionGroupCallScheduled{}
)
func (m *MessageActionGroupCallScheduled) Zero() bool {
if m == nil {
return true
}
if !(m.Call == nil) {
return false
}
if !(m.ScheduleDate == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGroupCallScheduled) String() string {
if m == nil {
return "MessageActionGroupCallScheduled(nil)"
}
type Alias MessageActionGroupCallScheduled
return fmt.Sprintf("MessageActionGroupCallScheduled%+v", Alias(*m))
}
// FillFrom fills MessageActionGroupCallScheduled from given interface.
func (m *MessageActionGroupCallScheduled) FillFrom(from interface {
GetCall() (value InputGroupCallClass)
GetScheduleDate() (value int)
}) {
m.Call = from.GetCall()
m.ScheduleDate = from.GetScheduleDate()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGroupCallScheduled) TypeID() uint32 {
return MessageActionGroupCallScheduledTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGroupCallScheduled) TypeName() string {
return "messageActionGroupCallScheduled"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGroupCallScheduled) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGroupCallScheduled",
ID: MessageActionGroupCallScheduledTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Call",
SchemaName: "call",
},
{
Name: "ScheduleDate",
SchemaName: "schedule_date",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionGroupCallScheduled) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGroupCallScheduled#b3a07661 as nil")
}
b.PutID(MessageActionGroupCallScheduledTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGroupCallScheduled) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGroupCallScheduled#b3a07661 as nil")
}
if m.Call == nil {
return fmt.Errorf("unable to encode messageActionGroupCallScheduled#b3a07661: field call is nil")
}
if err := m.Call.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGroupCallScheduled#b3a07661: field call: %w", err)
}
b.PutInt(m.ScheduleDate)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGroupCallScheduled) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGroupCallScheduled#b3a07661 to nil")
}
if err := b.ConsumeID(MessageActionGroupCallScheduledTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGroupCallScheduled#b3a07661: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGroupCallScheduled) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGroupCallScheduled#b3a07661 to nil")
}
{
value, err := DecodeInputGroupCall(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionGroupCallScheduled#b3a07661: field call: %w", err)
}
m.Call = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionGroupCallScheduled#b3a07661: field schedule_date: %w", err)
}
m.ScheduleDate = value
}
return nil
}
// GetCall returns value of Call field.
func (m *MessageActionGroupCallScheduled) GetCall() (value InputGroupCallClass) {
if m == nil {
return
}
return m.Call
}
// GetScheduleDate returns value of ScheduleDate field.
func (m *MessageActionGroupCallScheduled) GetScheduleDate() (value int) {
if m == nil {
return
}
return m.ScheduleDate
}
// MessageActionSetChatTheme represents TL type `messageActionSetChatTheme#aa786345`.
// The chat theme was changed
//
// See https://core.telegram.org/constructor/messageActionSetChatTheme for reference.
type MessageActionSetChatTheme struct {
// The emoji that identifies a chat theme
Emoticon string
}
// MessageActionSetChatThemeTypeID is TL type id of MessageActionSetChatTheme.
const MessageActionSetChatThemeTypeID = 0xaa786345
// construct implements constructor of MessageActionClass.
func (m MessageActionSetChatTheme) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionSetChatTheme.
var (
_ bin.Encoder = &MessageActionSetChatTheme{}
_ bin.Decoder = &MessageActionSetChatTheme{}
_ bin.BareEncoder = &MessageActionSetChatTheme{}
_ bin.BareDecoder = &MessageActionSetChatTheme{}
_ MessageActionClass = &MessageActionSetChatTheme{}
)
func (m *MessageActionSetChatTheme) Zero() bool {
if m == nil {
return true
}
if !(m.Emoticon == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionSetChatTheme) String() string {
if m == nil {
return "MessageActionSetChatTheme(nil)"
}
type Alias MessageActionSetChatTheme
return fmt.Sprintf("MessageActionSetChatTheme%+v", Alias(*m))
}
// FillFrom fills MessageActionSetChatTheme from given interface.
func (m *MessageActionSetChatTheme) FillFrom(from interface {
GetEmoticon() (value string)
}) {
m.Emoticon = from.GetEmoticon()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionSetChatTheme) TypeID() uint32 {
return MessageActionSetChatThemeTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionSetChatTheme) TypeName() string {
return "messageActionSetChatTheme"
}
// TypeInfo returns info about TL type.
func (m *MessageActionSetChatTheme) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionSetChatTheme",
ID: MessageActionSetChatThemeTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Emoticon",
SchemaName: "emoticon",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionSetChatTheme) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSetChatTheme#aa786345 as nil")
}
b.PutID(MessageActionSetChatThemeTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionSetChatTheme) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSetChatTheme#aa786345 as nil")
}
b.PutString(m.Emoticon)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionSetChatTheme) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSetChatTheme#aa786345 to nil")
}
if err := b.ConsumeID(MessageActionSetChatThemeTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionSetChatTheme#aa786345: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionSetChatTheme) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSetChatTheme#aa786345 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionSetChatTheme#aa786345: field emoticon: %w", err)
}
m.Emoticon = value
}
return nil
}
// GetEmoticon returns value of Emoticon field.
func (m *MessageActionSetChatTheme) GetEmoticon() (value string) {
if m == nil {
return
}
return m.Emoticon
}
// MessageActionChatJoinedByRequest represents TL type `messageActionChatJoinedByRequest#ebbca3cb`.
// A user was accepted into the group by an admin
//
// See https://core.telegram.org/constructor/messageActionChatJoinedByRequest for reference.
type MessageActionChatJoinedByRequest struct {
}
// MessageActionChatJoinedByRequestTypeID is TL type id of MessageActionChatJoinedByRequest.
const MessageActionChatJoinedByRequestTypeID = 0xebbca3cb
// construct implements constructor of MessageActionClass.
func (m MessageActionChatJoinedByRequest) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionChatJoinedByRequest.
var (
_ bin.Encoder = &MessageActionChatJoinedByRequest{}
_ bin.Decoder = &MessageActionChatJoinedByRequest{}
_ bin.BareEncoder = &MessageActionChatJoinedByRequest{}
_ bin.BareDecoder = &MessageActionChatJoinedByRequest{}
_ MessageActionClass = &MessageActionChatJoinedByRequest{}
)
func (m *MessageActionChatJoinedByRequest) Zero() bool {
if m == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionChatJoinedByRequest) String() string {
if m == nil {
return "MessageActionChatJoinedByRequest(nil)"
}
type Alias MessageActionChatJoinedByRequest
return fmt.Sprintf("MessageActionChatJoinedByRequest%+v", Alias(*m))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionChatJoinedByRequest) TypeID() uint32 {
return MessageActionChatJoinedByRequestTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionChatJoinedByRequest) TypeName() string {
return "messageActionChatJoinedByRequest"
}
// TypeInfo returns info about TL type.
func (m *MessageActionChatJoinedByRequest) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionChatJoinedByRequest",
ID: MessageActionChatJoinedByRequestTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionChatJoinedByRequest) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatJoinedByRequest#ebbca3cb as nil")
}
b.PutID(MessageActionChatJoinedByRequestTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionChatJoinedByRequest) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionChatJoinedByRequest#ebbca3cb as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionChatJoinedByRequest) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatJoinedByRequest#ebbca3cb to nil")
}
if err := b.ConsumeID(MessageActionChatJoinedByRequestTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionChatJoinedByRequest#ebbca3cb: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionChatJoinedByRequest) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionChatJoinedByRequest#ebbca3cb to nil")
}
return nil
}
// MessageActionWebViewDataSentMe represents TL type `messageActionWebViewDataSentMe#47dd8079`.
// Data from an opened reply keyboard bot mini app¹ was relayed to the bot that owns it
// (bot side service message).
//
// Links:
// 1. https://core.telegram.org/api/bots/webapps
//
// See https://core.telegram.org/constructor/messageActionWebViewDataSentMe for reference.
type MessageActionWebViewDataSentMe struct {
// Text of the keyboardButtonSimpleWebView¹ that was pressed to open the web app.
//
// Links:
// 1) https://core.telegram.org/constructor/keyboardButtonSimpleWebView
Text string
// Relayed data.
Data string
}
// MessageActionWebViewDataSentMeTypeID is TL type id of MessageActionWebViewDataSentMe.
const MessageActionWebViewDataSentMeTypeID = 0x47dd8079
// construct implements constructor of MessageActionClass.
func (m MessageActionWebViewDataSentMe) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionWebViewDataSentMe.
var (
_ bin.Encoder = &MessageActionWebViewDataSentMe{}
_ bin.Decoder = &MessageActionWebViewDataSentMe{}
_ bin.BareEncoder = &MessageActionWebViewDataSentMe{}
_ bin.BareDecoder = &MessageActionWebViewDataSentMe{}
_ MessageActionClass = &MessageActionWebViewDataSentMe{}
)
func (m *MessageActionWebViewDataSentMe) Zero() bool {
if m == nil {
return true
}
if !(m.Text == "") {
return false
}
if !(m.Data == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionWebViewDataSentMe) String() string {
if m == nil {
return "MessageActionWebViewDataSentMe(nil)"
}
type Alias MessageActionWebViewDataSentMe
return fmt.Sprintf("MessageActionWebViewDataSentMe%+v", Alias(*m))
}
// FillFrom fills MessageActionWebViewDataSentMe from given interface.
func (m *MessageActionWebViewDataSentMe) FillFrom(from interface {
GetText() (value string)
GetData() (value string)
}) {
m.Text = from.GetText()
m.Data = from.GetData()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionWebViewDataSentMe) TypeID() uint32 {
return MessageActionWebViewDataSentMeTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionWebViewDataSentMe) TypeName() string {
return "messageActionWebViewDataSentMe"
}
// TypeInfo returns info about TL type.
func (m *MessageActionWebViewDataSentMe) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionWebViewDataSentMe",
ID: MessageActionWebViewDataSentMeTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Text",
SchemaName: "text",
},
{
Name: "Data",
SchemaName: "data",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionWebViewDataSentMe) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionWebViewDataSentMe#47dd8079 as nil")
}
b.PutID(MessageActionWebViewDataSentMeTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionWebViewDataSentMe) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionWebViewDataSentMe#47dd8079 as nil")
}
b.PutString(m.Text)
b.PutString(m.Data)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionWebViewDataSentMe) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionWebViewDataSentMe#47dd8079 to nil")
}
if err := b.ConsumeID(MessageActionWebViewDataSentMeTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionWebViewDataSentMe#47dd8079: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionWebViewDataSentMe) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionWebViewDataSentMe#47dd8079 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionWebViewDataSentMe#47dd8079: field text: %w", err)
}
m.Text = value
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionWebViewDataSentMe#47dd8079: field data: %w", err)
}
m.Data = value
}
return nil
}
// GetText returns value of Text field.
func (m *MessageActionWebViewDataSentMe) GetText() (value string) {
if m == nil {
return
}
return m.Text
}
// GetData returns value of Data field.
func (m *MessageActionWebViewDataSentMe) GetData() (value string) {
if m == nil {
return
}
return m.Data
}
// MessageActionWebViewDataSent represents TL type `messageActionWebViewDataSent#b4c38cb5`.
// Data from an opened reply keyboard bot mini app¹ was relayed to the bot that owns it
// (user side service message).
// Clients should display a service message with the text Data from the «$text» button
// was transferred to the bot.
//
// Links:
// 1. https://core.telegram.org/api/bots/webapps
//
// See https://core.telegram.org/constructor/messageActionWebViewDataSent for reference.
type MessageActionWebViewDataSent struct {
// Text of the keyboardButtonSimpleWebView¹ that was pressed to open the web app.
//
// Links:
// 1) https://core.telegram.org/constructor/keyboardButtonSimpleWebView
Text string
}
// MessageActionWebViewDataSentTypeID is TL type id of MessageActionWebViewDataSent.
const MessageActionWebViewDataSentTypeID = 0xb4c38cb5
// construct implements constructor of MessageActionClass.
func (m MessageActionWebViewDataSent) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionWebViewDataSent.
var (
_ bin.Encoder = &MessageActionWebViewDataSent{}
_ bin.Decoder = &MessageActionWebViewDataSent{}
_ bin.BareEncoder = &MessageActionWebViewDataSent{}
_ bin.BareDecoder = &MessageActionWebViewDataSent{}
_ MessageActionClass = &MessageActionWebViewDataSent{}
)
func (m *MessageActionWebViewDataSent) Zero() bool {
if m == nil {
return true
}
if !(m.Text == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionWebViewDataSent) String() string {
if m == nil {
return "MessageActionWebViewDataSent(nil)"
}
type Alias MessageActionWebViewDataSent
return fmt.Sprintf("MessageActionWebViewDataSent%+v", Alias(*m))
}
// FillFrom fills MessageActionWebViewDataSent from given interface.
func (m *MessageActionWebViewDataSent) FillFrom(from interface {
GetText() (value string)
}) {
m.Text = from.GetText()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionWebViewDataSent) TypeID() uint32 {
return MessageActionWebViewDataSentTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionWebViewDataSent) TypeName() string {
return "messageActionWebViewDataSent"
}
// TypeInfo returns info about TL type.
func (m *MessageActionWebViewDataSent) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionWebViewDataSent",
ID: MessageActionWebViewDataSentTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Text",
SchemaName: "text",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionWebViewDataSent) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionWebViewDataSent#b4c38cb5 as nil")
}
b.PutID(MessageActionWebViewDataSentTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionWebViewDataSent) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionWebViewDataSent#b4c38cb5 as nil")
}
b.PutString(m.Text)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionWebViewDataSent) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionWebViewDataSent#b4c38cb5 to nil")
}
if err := b.ConsumeID(MessageActionWebViewDataSentTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionWebViewDataSent#b4c38cb5: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionWebViewDataSent) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionWebViewDataSent#b4c38cb5 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionWebViewDataSent#b4c38cb5: field text: %w", err)
}
m.Text = value
}
return nil
}
// GetText returns value of Text field.
func (m *MessageActionWebViewDataSent) GetText() (value string) {
if m == nil {
return
}
return m.Text
}
// MessageActionGiftPremium represents TL type `messageActionGiftPremium#6c6274fa`.
// Info about a gifted Telegram Premium subscription
//
// See https://core.telegram.org/constructor/messageActionGiftPremium for reference.
type MessageActionGiftPremium struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Three-letter ISO 4217 currency¹ code
//
// Links:
// 1) https://core.telegram.org/bots/payments#supported-currencies
Currency string
// Price of the gift in the smallest units of the currency (integer, not float/double).
// For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in
// currencies.json¹, it shows the number of digits past the decimal point for each
// currency (2 for the majority of currencies).
//
// Links:
// 1) https://core.telegram.org/bots/payments/currencies.json
Amount int64
// Duration of the gifted Telegram Premium subscription
Months int
// If the gift was bought using a cryptocurrency, the cryptocurrency name.
//
// Use SetCryptoCurrency and GetCryptoCurrency helpers.
CryptoCurrency string
// If the gift was bought using a cryptocurrency, price of the gift in the smallest units
// of a cryptocurrency.
//
// Use SetCryptoAmount and GetCryptoAmount helpers.
CryptoAmount int64
// Message attached with the gift
//
// Use SetMessage and GetMessage helpers.
Message TextWithEntities
}
// MessageActionGiftPremiumTypeID is TL type id of MessageActionGiftPremium.
const MessageActionGiftPremiumTypeID = 0x6c6274fa
// construct implements constructor of MessageActionClass.
func (m MessageActionGiftPremium) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGiftPremium.
var (
_ bin.Encoder = &MessageActionGiftPremium{}
_ bin.Decoder = &MessageActionGiftPremium{}
_ bin.BareEncoder = &MessageActionGiftPremium{}
_ bin.BareDecoder = &MessageActionGiftPremium{}
_ MessageActionClass = &MessageActionGiftPremium{}
)
func (m *MessageActionGiftPremium) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Currency == "") {
return false
}
if !(m.Amount == 0) {
return false
}
if !(m.Months == 0) {
return false
}
if !(m.CryptoCurrency == "") {
return false
}
if !(m.CryptoAmount == 0) {
return false
}
if !(m.Message.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGiftPremium) String() string {
if m == nil {
return "MessageActionGiftPremium(nil)"
}
type Alias MessageActionGiftPremium
return fmt.Sprintf("MessageActionGiftPremium%+v", Alias(*m))
}
// FillFrom fills MessageActionGiftPremium from given interface.
func (m *MessageActionGiftPremium) FillFrom(from interface {
GetCurrency() (value string)
GetAmount() (value int64)
GetMonths() (value int)
GetCryptoCurrency() (value string, ok bool)
GetCryptoAmount() (value int64, ok bool)
GetMessage() (value TextWithEntities, ok bool)
}) {
m.Currency = from.GetCurrency()
m.Amount = from.GetAmount()
m.Months = from.GetMonths()
if val, ok := from.GetCryptoCurrency(); ok {
m.CryptoCurrency = val
}
if val, ok := from.GetCryptoAmount(); ok {
m.CryptoAmount = val
}
if val, ok := from.GetMessage(); ok {
m.Message = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGiftPremium) TypeID() uint32 {
return MessageActionGiftPremiumTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGiftPremium) TypeName() string {
return "messageActionGiftPremium"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGiftPremium) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGiftPremium",
ID: MessageActionGiftPremiumTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Currency",
SchemaName: "currency",
},
{
Name: "Amount",
SchemaName: "amount",
},
{
Name: "Months",
SchemaName: "months",
},
{
Name: "CryptoCurrency",
SchemaName: "crypto_currency",
Null: !m.Flags.Has(0),
},
{
Name: "CryptoAmount",
SchemaName: "crypto_amount",
Null: !m.Flags.Has(0),
},
{
Name: "Message",
SchemaName: "message",
Null: !m.Flags.Has(1),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionGiftPremium) SetFlags() {
if !(m.CryptoCurrency == "") {
m.Flags.Set(0)
}
if !(m.CryptoAmount == 0) {
m.Flags.Set(0)
}
if !(m.Message.Zero()) {
m.Flags.Set(1)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionGiftPremium) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiftPremium#6c6274fa as nil")
}
b.PutID(MessageActionGiftPremiumTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGiftPremium) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiftPremium#6c6274fa as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGiftPremium#6c6274fa: field flags: %w", err)
}
b.PutString(m.Currency)
b.PutLong(m.Amount)
b.PutInt(m.Months)
if m.Flags.Has(0) {
b.PutString(m.CryptoCurrency)
}
if m.Flags.Has(0) {
b.PutLong(m.CryptoAmount)
}
if m.Flags.Has(1) {
if err := m.Message.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGiftPremium#6c6274fa: field message: %w", err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGiftPremium) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiftPremium#6c6274fa to nil")
}
if err := b.ConsumeID(MessageActionGiftPremiumTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGiftPremium#6c6274fa: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGiftPremium) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiftPremium#6c6274fa to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionGiftPremium#6c6274fa: field flags: %w", err)
}
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftPremium#6c6274fa: field currency: %w", err)
}
m.Currency = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftPremium#6c6274fa: field amount: %w", err)
}
m.Amount = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftPremium#6c6274fa: field months: %w", err)
}
m.Months = value
}
if m.Flags.Has(0) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftPremium#6c6274fa: field crypto_currency: %w", err)
}
m.CryptoCurrency = value
}
if m.Flags.Has(0) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftPremium#6c6274fa: field crypto_amount: %w", err)
}
m.CryptoAmount = value
}
if m.Flags.Has(1) {
if err := m.Message.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionGiftPremium#6c6274fa: field message: %w", err)
}
}
return nil
}
// GetCurrency returns value of Currency field.
func (m *MessageActionGiftPremium) GetCurrency() (value string) {
if m == nil {
return
}
return m.Currency
}
// GetAmount returns value of Amount field.
func (m *MessageActionGiftPremium) GetAmount() (value int64) {
if m == nil {
return
}
return m.Amount
}
// GetMonths returns value of Months field.
func (m *MessageActionGiftPremium) GetMonths() (value int) {
if m == nil {
return
}
return m.Months
}
// SetCryptoCurrency sets value of CryptoCurrency conditional field.
func (m *MessageActionGiftPremium) SetCryptoCurrency(value string) {
m.Flags.Set(0)
m.CryptoCurrency = value
}
// GetCryptoCurrency returns value of CryptoCurrency conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftPremium) GetCryptoCurrency() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.CryptoCurrency, true
}
// SetCryptoAmount sets value of CryptoAmount conditional field.
func (m *MessageActionGiftPremium) SetCryptoAmount(value int64) {
m.Flags.Set(0)
m.CryptoAmount = value
}
// GetCryptoAmount returns value of CryptoAmount conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftPremium) GetCryptoAmount() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.CryptoAmount, true
}
// SetMessage sets value of Message conditional field.
func (m *MessageActionGiftPremium) SetMessage(value TextWithEntities) {
m.Flags.Set(1)
m.Message = value
}
// GetMessage returns value of Message conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftPremium) GetMessage() (value TextWithEntities, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(1) {
return value, false
}
return m.Message, true
}
// MessageActionTopicCreate represents TL type `messageActionTopicCreate#d999256`.
// A forum topic¹ was created.
//
// Links:
// 1. https://core.telegram.org/api/forum#forum-topics
//
// See https://core.telegram.org/constructor/messageActionTopicCreate for reference.
type MessageActionTopicCreate struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Topic name.
Title string
// If no custom emoji icon is specified, specifies the color of the fallback topic icon
// (RGB), one of 0x6FB9F0, 0xFFD67E, 0xCB86DB, 0x8EEE98, 0xFF93B2, or 0xFB6F5F.
IconColor int
// ID of the custom emoji¹ used as topic icon.
//
// Links:
// 1) https://core.telegram.org/api/custom-emoji
//
// Use SetIconEmojiID and GetIconEmojiID helpers.
IconEmojiID int64
}
// MessageActionTopicCreateTypeID is TL type id of MessageActionTopicCreate.
const MessageActionTopicCreateTypeID = 0xd999256
// construct implements constructor of MessageActionClass.
func (m MessageActionTopicCreate) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionTopicCreate.
var (
_ bin.Encoder = &MessageActionTopicCreate{}
_ bin.Decoder = &MessageActionTopicCreate{}
_ bin.BareEncoder = &MessageActionTopicCreate{}
_ bin.BareDecoder = &MessageActionTopicCreate{}
_ MessageActionClass = &MessageActionTopicCreate{}
)
func (m *MessageActionTopicCreate) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Title == "") {
return false
}
if !(m.IconColor == 0) {
return false
}
if !(m.IconEmojiID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionTopicCreate) String() string {
if m == nil {
return "MessageActionTopicCreate(nil)"
}
type Alias MessageActionTopicCreate
return fmt.Sprintf("MessageActionTopicCreate%+v", Alias(*m))
}
// FillFrom fills MessageActionTopicCreate from given interface.
func (m *MessageActionTopicCreate) FillFrom(from interface {
GetTitle() (value string)
GetIconColor() (value int)
GetIconEmojiID() (value int64, ok bool)
}) {
m.Title = from.GetTitle()
m.IconColor = from.GetIconColor()
if val, ok := from.GetIconEmojiID(); ok {
m.IconEmojiID = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionTopicCreate) TypeID() uint32 {
return MessageActionTopicCreateTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionTopicCreate) TypeName() string {
return "messageActionTopicCreate"
}
// TypeInfo returns info about TL type.
func (m *MessageActionTopicCreate) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionTopicCreate",
ID: MessageActionTopicCreateTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Title",
SchemaName: "title",
},
{
Name: "IconColor",
SchemaName: "icon_color",
},
{
Name: "IconEmojiID",
SchemaName: "icon_emoji_id",
Null: !m.Flags.Has(0),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionTopicCreate) SetFlags() {
if !(m.IconEmojiID == 0) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionTopicCreate) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionTopicCreate#d999256 as nil")
}
b.PutID(MessageActionTopicCreateTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionTopicCreate) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionTopicCreate#d999256 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionTopicCreate#d999256: field flags: %w", err)
}
b.PutString(m.Title)
b.PutInt(m.IconColor)
if m.Flags.Has(0) {
b.PutLong(m.IconEmojiID)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionTopicCreate) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionTopicCreate#d999256 to nil")
}
if err := b.ConsumeID(MessageActionTopicCreateTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionTopicCreate#d999256: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionTopicCreate) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionTopicCreate#d999256 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionTopicCreate#d999256: field flags: %w", err)
}
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionTopicCreate#d999256: field title: %w", err)
}
m.Title = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionTopicCreate#d999256: field icon_color: %w", err)
}
m.IconColor = value
}
if m.Flags.Has(0) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionTopicCreate#d999256: field icon_emoji_id: %w", err)
}
m.IconEmojiID = value
}
return nil
}
// GetTitle returns value of Title field.
func (m *MessageActionTopicCreate) GetTitle() (value string) {
if m == nil {
return
}
return m.Title
}
// GetIconColor returns value of IconColor field.
func (m *MessageActionTopicCreate) GetIconColor() (value int) {
if m == nil {
return
}
return m.IconColor
}
// SetIconEmojiID sets value of IconEmojiID conditional field.
func (m *MessageActionTopicCreate) SetIconEmojiID(value int64) {
m.Flags.Set(0)
m.IconEmojiID = value
}
// GetIconEmojiID returns value of IconEmojiID conditional field and
// boolean which is true if field was set.
func (m *MessageActionTopicCreate) GetIconEmojiID() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.IconEmojiID, true
}
// MessageActionTopicEdit represents TL type `messageActionTopicEdit#c0944820`.
// Forum topic¹ information was edited.
//
// Links:
// 1. https://core.telegram.org/api/forum#forum-topics
//
// See https://core.telegram.org/constructor/messageActionTopicEdit for reference.
type MessageActionTopicEdit struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// New topic title.
//
// Use SetTitle and GetTitle helpers.
Title string
// ID of the new custom emoji¹ used as topic icon, or if it was removed.
//
// Links:
// 1) https://core.telegram.org/api/custom-emoji
//
// Use SetIconEmojiID and GetIconEmojiID helpers.
IconEmojiID int64
// Whether the topic was opened or closed.
//
// Use SetClosed and GetClosed helpers.
Closed bool
// Whether the topic was hidden or unhidden (only valid for the "General" topic, id=1).
//
// Use SetHidden and GetHidden helpers.
Hidden bool
}
// MessageActionTopicEditTypeID is TL type id of MessageActionTopicEdit.
const MessageActionTopicEditTypeID = 0xc0944820
// construct implements constructor of MessageActionClass.
func (m MessageActionTopicEdit) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionTopicEdit.
var (
_ bin.Encoder = &MessageActionTopicEdit{}
_ bin.Decoder = &MessageActionTopicEdit{}
_ bin.BareEncoder = &MessageActionTopicEdit{}
_ bin.BareDecoder = &MessageActionTopicEdit{}
_ MessageActionClass = &MessageActionTopicEdit{}
)
func (m *MessageActionTopicEdit) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Title == "") {
return false
}
if !(m.IconEmojiID == 0) {
return false
}
if !(m.Closed == false) {
return false
}
if !(m.Hidden == false) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionTopicEdit) String() string {
if m == nil {
return "MessageActionTopicEdit(nil)"
}
type Alias MessageActionTopicEdit
return fmt.Sprintf("MessageActionTopicEdit%+v", Alias(*m))
}
// FillFrom fills MessageActionTopicEdit from given interface.
func (m *MessageActionTopicEdit) FillFrom(from interface {
GetTitle() (value string, ok bool)
GetIconEmojiID() (value int64, ok bool)
GetClosed() (value bool, ok bool)
GetHidden() (value bool, ok bool)
}) {
if val, ok := from.GetTitle(); ok {
m.Title = val
}
if val, ok := from.GetIconEmojiID(); ok {
m.IconEmojiID = val
}
if val, ok := from.GetClosed(); ok {
m.Closed = val
}
if val, ok := from.GetHidden(); ok {
m.Hidden = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionTopicEdit) TypeID() uint32 {
return MessageActionTopicEditTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionTopicEdit) TypeName() string {
return "messageActionTopicEdit"
}
// TypeInfo returns info about TL type.
func (m *MessageActionTopicEdit) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionTopicEdit",
ID: MessageActionTopicEditTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Title",
SchemaName: "title",
Null: !m.Flags.Has(0),
},
{
Name: "IconEmojiID",
SchemaName: "icon_emoji_id",
Null: !m.Flags.Has(1),
},
{
Name: "Closed",
SchemaName: "closed",
Null: !m.Flags.Has(2),
},
{
Name: "Hidden",
SchemaName: "hidden",
Null: !m.Flags.Has(3),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionTopicEdit) SetFlags() {
if !(m.Title == "") {
m.Flags.Set(0)
}
if !(m.IconEmojiID == 0) {
m.Flags.Set(1)
}
if !(m.Closed == false) {
m.Flags.Set(2)
}
if !(m.Hidden == false) {
m.Flags.Set(3)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionTopicEdit) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionTopicEdit#c0944820 as nil")
}
b.PutID(MessageActionTopicEditTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionTopicEdit) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionTopicEdit#c0944820 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionTopicEdit#c0944820: field flags: %w", err)
}
if m.Flags.Has(0) {
b.PutString(m.Title)
}
if m.Flags.Has(1) {
b.PutLong(m.IconEmojiID)
}
if m.Flags.Has(2) {
b.PutBool(m.Closed)
}
if m.Flags.Has(3) {
b.PutBool(m.Hidden)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionTopicEdit) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionTopicEdit#c0944820 to nil")
}
if err := b.ConsumeID(MessageActionTopicEditTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionTopicEdit#c0944820: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionTopicEdit) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionTopicEdit#c0944820 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionTopicEdit#c0944820: field flags: %w", err)
}
}
if m.Flags.Has(0) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionTopicEdit#c0944820: field title: %w", err)
}
m.Title = value
}
if m.Flags.Has(1) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionTopicEdit#c0944820: field icon_emoji_id: %w", err)
}
m.IconEmojiID = value
}
if m.Flags.Has(2) {
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode messageActionTopicEdit#c0944820: field closed: %w", err)
}
m.Closed = value
}
if m.Flags.Has(3) {
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode messageActionTopicEdit#c0944820: field hidden: %w", err)
}
m.Hidden = value
}
return nil
}
// SetTitle sets value of Title conditional field.
func (m *MessageActionTopicEdit) SetTitle(value string) {
m.Flags.Set(0)
m.Title = value
}
// GetTitle returns value of Title conditional field and
// boolean which is true if field was set.
func (m *MessageActionTopicEdit) GetTitle() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.Title, true
}
// SetIconEmojiID sets value of IconEmojiID conditional field.
func (m *MessageActionTopicEdit) SetIconEmojiID(value int64) {
m.Flags.Set(1)
m.IconEmojiID = value
}
// GetIconEmojiID returns value of IconEmojiID conditional field and
// boolean which is true if field was set.
func (m *MessageActionTopicEdit) GetIconEmojiID() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(1) {
return value, false
}
return m.IconEmojiID, true
}
// SetClosed sets value of Closed conditional field.
func (m *MessageActionTopicEdit) SetClosed(value bool) {
m.Flags.Set(2)
m.Closed = value
}
// GetClosed returns value of Closed conditional field and
// boolean which is true if field was set.
func (m *MessageActionTopicEdit) GetClosed() (value bool, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(2) {
return value, false
}
return m.Closed, true
}
// SetHidden sets value of Hidden conditional field.
func (m *MessageActionTopicEdit) SetHidden(value bool) {
m.Flags.Set(3)
m.Hidden = value
}
// GetHidden returns value of Hidden conditional field and
// boolean which is true if field was set.
func (m *MessageActionTopicEdit) GetHidden() (value bool, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(3) {
return value, false
}
return m.Hidden, true
}
// MessageActionSuggestProfilePhoto represents TL type `messageActionSuggestProfilePhoto#57de635e`.
// A new profile picture was suggested using photos.uploadContactProfilePhoto¹.
//
// Links:
// 1. https://core.telegram.org/method/photos.uploadContactProfilePhoto
//
// See https://core.telegram.org/constructor/messageActionSuggestProfilePhoto for reference.
type MessageActionSuggestProfilePhoto struct {
// The photo that the user suggested we set as profile picture.
Photo PhotoClass
}
// MessageActionSuggestProfilePhotoTypeID is TL type id of MessageActionSuggestProfilePhoto.
const MessageActionSuggestProfilePhotoTypeID = 0x57de635e
// construct implements constructor of MessageActionClass.
func (m MessageActionSuggestProfilePhoto) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionSuggestProfilePhoto.
var (
_ bin.Encoder = &MessageActionSuggestProfilePhoto{}
_ bin.Decoder = &MessageActionSuggestProfilePhoto{}
_ bin.BareEncoder = &MessageActionSuggestProfilePhoto{}
_ bin.BareDecoder = &MessageActionSuggestProfilePhoto{}
_ MessageActionClass = &MessageActionSuggestProfilePhoto{}
)
func (m *MessageActionSuggestProfilePhoto) Zero() bool {
if m == nil {
return true
}
if !(m.Photo == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionSuggestProfilePhoto) String() string {
if m == nil {
return "MessageActionSuggestProfilePhoto(nil)"
}
type Alias MessageActionSuggestProfilePhoto
return fmt.Sprintf("MessageActionSuggestProfilePhoto%+v", Alias(*m))
}
// FillFrom fills MessageActionSuggestProfilePhoto from given interface.
func (m *MessageActionSuggestProfilePhoto) FillFrom(from interface {
GetPhoto() (value PhotoClass)
}) {
m.Photo = from.GetPhoto()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionSuggestProfilePhoto) TypeID() uint32 {
return MessageActionSuggestProfilePhotoTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionSuggestProfilePhoto) TypeName() string {
return "messageActionSuggestProfilePhoto"
}
// TypeInfo returns info about TL type.
func (m *MessageActionSuggestProfilePhoto) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionSuggestProfilePhoto",
ID: MessageActionSuggestProfilePhotoTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Photo",
SchemaName: "photo",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionSuggestProfilePhoto) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSuggestProfilePhoto#57de635e as nil")
}
b.PutID(MessageActionSuggestProfilePhotoTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionSuggestProfilePhoto) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSuggestProfilePhoto#57de635e as nil")
}
if m.Photo == nil {
return fmt.Errorf("unable to encode messageActionSuggestProfilePhoto#57de635e: field photo is nil")
}
if err := m.Photo.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionSuggestProfilePhoto#57de635e: field photo: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionSuggestProfilePhoto) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSuggestProfilePhoto#57de635e to nil")
}
if err := b.ConsumeID(MessageActionSuggestProfilePhotoTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionSuggestProfilePhoto#57de635e: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionSuggestProfilePhoto) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSuggestProfilePhoto#57de635e to nil")
}
{
value, err := DecodePhoto(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionSuggestProfilePhoto#57de635e: field photo: %w", err)
}
m.Photo = value
}
return nil
}
// GetPhoto returns value of Photo field.
func (m *MessageActionSuggestProfilePhoto) GetPhoto() (value PhotoClass) {
if m == nil {
return
}
return m.Photo
}
// MessageActionRequestedPeer represents TL type `messageActionRequestedPeer#31518e9b`.
// Contains info about one or more peers that the we (the user) shared with the bot after
// clicking on a keyboardButtonRequestPeer¹ button (service message sent by the user).
//
// Links:
// 1. https://core.telegram.org/constructor/keyboardButtonRequestPeer
//
// See https://core.telegram.org/constructor/messageActionRequestedPeer for reference.
type MessageActionRequestedPeer struct {
// button_id contained in the keyboardButtonRequestPeer¹
//
// Links:
// 1) https://core.telegram.org/constructor/keyboardButtonRequestPeer
ButtonID int
// The shared peers
Peers []PeerClass
}
// MessageActionRequestedPeerTypeID is TL type id of MessageActionRequestedPeer.
const MessageActionRequestedPeerTypeID = 0x31518e9b
// construct implements constructor of MessageActionClass.
func (m MessageActionRequestedPeer) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionRequestedPeer.
var (
_ bin.Encoder = &MessageActionRequestedPeer{}
_ bin.Decoder = &MessageActionRequestedPeer{}
_ bin.BareEncoder = &MessageActionRequestedPeer{}
_ bin.BareDecoder = &MessageActionRequestedPeer{}
_ MessageActionClass = &MessageActionRequestedPeer{}
)
func (m *MessageActionRequestedPeer) Zero() bool {
if m == nil {
return true
}
if !(m.ButtonID == 0) {
return false
}
if !(m.Peers == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionRequestedPeer) String() string {
if m == nil {
return "MessageActionRequestedPeer(nil)"
}
type Alias MessageActionRequestedPeer
return fmt.Sprintf("MessageActionRequestedPeer%+v", Alias(*m))
}
// FillFrom fills MessageActionRequestedPeer from given interface.
func (m *MessageActionRequestedPeer) FillFrom(from interface {
GetButtonID() (value int)
GetPeers() (value []PeerClass)
}) {
m.ButtonID = from.GetButtonID()
m.Peers = from.GetPeers()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionRequestedPeer) TypeID() uint32 {
return MessageActionRequestedPeerTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionRequestedPeer) TypeName() string {
return "messageActionRequestedPeer"
}
// TypeInfo returns info about TL type.
func (m *MessageActionRequestedPeer) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionRequestedPeer",
ID: MessageActionRequestedPeerTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "ButtonID",
SchemaName: "button_id",
},
{
Name: "Peers",
SchemaName: "peers",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionRequestedPeer) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionRequestedPeer#31518e9b as nil")
}
b.PutID(MessageActionRequestedPeerTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionRequestedPeer) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionRequestedPeer#31518e9b as nil")
}
b.PutInt(m.ButtonID)
b.PutVectorHeader(len(m.Peers))
for idx, v := range m.Peers {
if v == nil {
return fmt.Errorf("unable to encode messageActionRequestedPeer#31518e9b: field peers element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionRequestedPeer#31518e9b: field peers element with index %d: %w", idx, err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionRequestedPeer) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionRequestedPeer#31518e9b to nil")
}
if err := b.ConsumeID(MessageActionRequestedPeerTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionRequestedPeer#31518e9b: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionRequestedPeer) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionRequestedPeer#31518e9b to nil")
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionRequestedPeer#31518e9b: field button_id: %w", err)
}
m.ButtonID = value
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageActionRequestedPeer#31518e9b: field peers: %w", err)
}
if headerLen > 0 {
m.Peers = make([]PeerClass, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionRequestedPeer#31518e9b: field peers: %w", err)
}
m.Peers = append(m.Peers, value)
}
}
return nil
}
// GetButtonID returns value of ButtonID field.
func (m *MessageActionRequestedPeer) GetButtonID() (value int) {
if m == nil {
return
}
return m.ButtonID
}
// GetPeers returns value of Peers field.
func (m *MessageActionRequestedPeer) GetPeers() (value []PeerClass) {
if m == nil {
return
}
return m.Peers
}
// MapPeers returns field Peers wrapped in PeerClassArray helper.
func (m *MessageActionRequestedPeer) MapPeers() (value PeerClassArray) {
return PeerClassArray(m.Peers)
}
// MessageActionSetChatWallPaper represents TL type `messageActionSetChatWallPaper#5060a3f4`.
// The wallpaper »¹ of the current chat was changed.
//
// Links:
// 1. https://core.telegram.org/api/wallpapers
//
// See https://core.telegram.org/constructor/messageActionSetChatWallPaper for reference.
type MessageActionSetChatWallPaper struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// If set, indicates the user applied a wallpaper »¹ previously sent by the other user
// in a messageActionSetChatWallPaper² message.
//
// Links:
// 1) https://core.telegram.org/api/wallpapers
// 2) https://core.telegram.org/constructor/messageActionSetChatWallPaper
Same bool
// If set, indicates the wallpaper was forcefully applied for both sides, without
// explicit confirmation from the other side. If the message is incoming, and we did not
// like the new wallpaper the other user has chosen for us, we can re-set our previous
// wallpaper just on our side, by invoking messages.setChatWallPaper¹, providing only
// the revert flag (and obviously the peer parameter).
//
// Links:
// 1) https://core.telegram.org/method/messages.setChatWallPaper
ForBoth bool
// New wallpaper¹
//
// Links:
// 1) https://core.telegram.org/api/wallpapers
Wallpaper WallPaperClass
}
// MessageActionSetChatWallPaperTypeID is TL type id of MessageActionSetChatWallPaper.
const MessageActionSetChatWallPaperTypeID = 0x5060a3f4
// construct implements constructor of MessageActionClass.
func (m MessageActionSetChatWallPaper) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionSetChatWallPaper.
var (
_ bin.Encoder = &MessageActionSetChatWallPaper{}
_ bin.Decoder = &MessageActionSetChatWallPaper{}
_ bin.BareEncoder = &MessageActionSetChatWallPaper{}
_ bin.BareDecoder = &MessageActionSetChatWallPaper{}
_ MessageActionClass = &MessageActionSetChatWallPaper{}
)
func (m *MessageActionSetChatWallPaper) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Same == false) {
return false
}
if !(m.ForBoth == false) {
return false
}
if !(m.Wallpaper == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionSetChatWallPaper) String() string {
if m == nil {
return "MessageActionSetChatWallPaper(nil)"
}
type Alias MessageActionSetChatWallPaper
return fmt.Sprintf("MessageActionSetChatWallPaper%+v", Alias(*m))
}
// FillFrom fills MessageActionSetChatWallPaper from given interface.
func (m *MessageActionSetChatWallPaper) FillFrom(from interface {
GetSame() (value bool)
GetForBoth() (value bool)
GetWallpaper() (value WallPaperClass)
}) {
m.Same = from.GetSame()
m.ForBoth = from.GetForBoth()
m.Wallpaper = from.GetWallpaper()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionSetChatWallPaper) TypeID() uint32 {
return MessageActionSetChatWallPaperTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionSetChatWallPaper) TypeName() string {
return "messageActionSetChatWallPaper"
}
// TypeInfo returns info about TL type.
func (m *MessageActionSetChatWallPaper) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionSetChatWallPaper",
ID: MessageActionSetChatWallPaperTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Same",
SchemaName: "same",
Null: !m.Flags.Has(0),
},
{
Name: "ForBoth",
SchemaName: "for_both",
Null: !m.Flags.Has(1),
},
{
Name: "Wallpaper",
SchemaName: "wallpaper",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionSetChatWallPaper) SetFlags() {
if !(m.Same == false) {
m.Flags.Set(0)
}
if !(m.ForBoth == false) {
m.Flags.Set(1)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionSetChatWallPaper) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSetChatWallPaper#5060a3f4 as nil")
}
b.PutID(MessageActionSetChatWallPaperTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionSetChatWallPaper) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionSetChatWallPaper#5060a3f4 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionSetChatWallPaper#5060a3f4: field flags: %w", err)
}
if m.Wallpaper == nil {
return fmt.Errorf("unable to encode messageActionSetChatWallPaper#5060a3f4: field wallpaper is nil")
}
if err := m.Wallpaper.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionSetChatWallPaper#5060a3f4: field wallpaper: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionSetChatWallPaper) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSetChatWallPaper#5060a3f4 to nil")
}
if err := b.ConsumeID(MessageActionSetChatWallPaperTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionSetChatWallPaper#5060a3f4: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionSetChatWallPaper) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionSetChatWallPaper#5060a3f4 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionSetChatWallPaper#5060a3f4: field flags: %w", err)
}
}
m.Same = m.Flags.Has(0)
m.ForBoth = m.Flags.Has(1)
{
value, err := DecodeWallPaper(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionSetChatWallPaper#5060a3f4: field wallpaper: %w", err)
}
m.Wallpaper = value
}
return nil
}
// SetSame sets value of Same conditional field.
func (m *MessageActionSetChatWallPaper) SetSame(value bool) {
if value {
m.Flags.Set(0)
m.Same = true
} else {
m.Flags.Unset(0)
m.Same = false
}
}
// GetSame returns value of Same conditional field.
func (m *MessageActionSetChatWallPaper) GetSame() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// SetForBoth sets value of ForBoth conditional field.
func (m *MessageActionSetChatWallPaper) SetForBoth(value bool) {
if value {
m.Flags.Set(1)
m.ForBoth = true
} else {
m.Flags.Unset(1)
m.ForBoth = false
}
}
// GetForBoth returns value of ForBoth conditional field.
func (m *MessageActionSetChatWallPaper) GetForBoth() (value bool) {
if m == nil {
return
}
return m.Flags.Has(1)
}
// GetWallpaper returns value of Wallpaper field.
func (m *MessageActionSetChatWallPaper) GetWallpaper() (value WallPaperClass) {
if m == nil {
return
}
return m.Wallpaper
}
// MessageActionGiftCode represents TL type `messageActionGiftCode#56d03994`.
// Contains a Telegram Premium giftcode link¹.
//
// Links:
// 1. https://core.telegram.org/api/links#premium-giftcode-links
//
// See https://core.telegram.org/constructor/messageActionGiftCode for reference.
type MessageActionGiftCode struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// If set, this gift code was received from a giveaway »¹ started by a
// channel/supergroup we're subscribed to.
//
// Links:
// 1) https://core.telegram.org/api/giveaways
ViaGiveaway bool
// If set, the link was not redeemed¹ yet.
//
// Links:
// 1) https://core.telegram.org/api/links#premium-giftcode-links
Unclaimed bool
// Identifier of the channel/supergroup that created the gift code either directly or
// through a giveaway¹: if we import this giftcode link, we will also automatically
// boost² this channel/supergroup.
//
// Links:
// 1) https://core.telegram.org/api/giveaways
// 2) https://core.telegram.org/api/boost
//
// Use SetBoostPeer and GetBoostPeer helpers.
BoostPeer PeerClass
// Duration in months of the gifted Telegram Premium subscription¹.
//
// Links:
// 1) https://core.telegram.org/api/premium
Months int
// Slug of the Telegram Premium giftcode link¹
//
// Links:
// 1) https://core.telegram.org/api/links#premium-giftcode-links
Slug string
// Three-letter ISO 4217 currency¹ code
//
// Links:
// 1) https://core.telegram.org/bots/payments#supported-currencies
//
// Use SetCurrency and GetCurrency helpers.
Currency string
// Total price in the smallest units of the currency (integer, not float/double). For
// example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in
// currencies.json¹, it shows the number of digits past the decimal point for each
// currency (2 for the majority of currencies).
//
// Links:
// 1) https://core.telegram.org/bots/payments/currencies.json
//
// Use SetAmount and GetAmount helpers.
Amount int64
// If set, the gift was made using the specified cryptocurrency.
//
// Use SetCryptoCurrency and GetCryptoCurrency helpers.
CryptoCurrency string
// If crypto_currency is set, contains the paid amount, in the smallest units of the
// cryptocurrency.
//
// Use SetCryptoAmount and GetCryptoAmount helpers.
CryptoAmount int64
// Message attached with the gift
//
// Use SetMessage and GetMessage helpers.
Message TextWithEntities
}
// MessageActionGiftCodeTypeID is TL type id of MessageActionGiftCode.
const MessageActionGiftCodeTypeID = 0x56d03994
// construct implements constructor of MessageActionClass.
func (m MessageActionGiftCode) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGiftCode.
var (
_ bin.Encoder = &MessageActionGiftCode{}
_ bin.Decoder = &MessageActionGiftCode{}
_ bin.BareEncoder = &MessageActionGiftCode{}
_ bin.BareDecoder = &MessageActionGiftCode{}
_ MessageActionClass = &MessageActionGiftCode{}
)
func (m *MessageActionGiftCode) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.ViaGiveaway == false) {
return false
}
if !(m.Unclaimed == false) {
return false
}
if !(m.BoostPeer == nil) {
return false
}
if !(m.Months == 0) {
return false
}
if !(m.Slug == "") {
return false
}
if !(m.Currency == "") {
return false
}
if !(m.Amount == 0) {
return false
}
if !(m.CryptoCurrency == "") {
return false
}
if !(m.CryptoAmount == 0) {
return false
}
if !(m.Message.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGiftCode) String() string {
if m == nil {
return "MessageActionGiftCode(nil)"
}
type Alias MessageActionGiftCode
return fmt.Sprintf("MessageActionGiftCode%+v", Alias(*m))
}
// FillFrom fills MessageActionGiftCode from given interface.
func (m *MessageActionGiftCode) FillFrom(from interface {
GetViaGiveaway() (value bool)
GetUnclaimed() (value bool)
GetBoostPeer() (value PeerClass, ok bool)
GetMonths() (value int)
GetSlug() (value string)
GetCurrency() (value string, ok bool)
GetAmount() (value int64, ok bool)
GetCryptoCurrency() (value string, ok bool)
GetCryptoAmount() (value int64, ok bool)
GetMessage() (value TextWithEntities, ok bool)
}) {
m.ViaGiveaway = from.GetViaGiveaway()
m.Unclaimed = from.GetUnclaimed()
if val, ok := from.GetBoostPeer(); ok {
m.BoostPeer = val
}
m.Months = from.GetMonths()
m.Slug = from.GetSlug()
if val, ok := from.GetCurrency(); ok {
m.Currency = val
}
if val, ok := from.GetAmount(); ok {
m.Amount = val
}
if val, ok := from.GetCryptoCurrency(); ok {
m.CryptoCurrency = val
}
if val, ok := from.GetCryptoAmount(); ok {
m.CryptoAmount = val
}
if val, ok := from.GetMessage(); ok {
m.Message = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGiftCode) TypeID() uint32 {
return MessageActionGiftCodeTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGiftCode) TypeName() string {
return "messageActionGiftCode"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGiftCode) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGiftCode",
ID: MessageActionGiftCodeTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "ViaGiveaway",
SchemaName: "via_giveaway",
Null: !m.Flags.Has(0),
},
{
Name: "Unclaimed",
SchemaName: "unclaimed",
Null: !m.Flags.Has(5),
},
{
Name: "BoostPeer",
SchemaName: "boost_peer",
Null: !m.Flags.Has(1),
},
{
Name: "Months",
SchemaName: "months",
},
{
Name: "Slug",
SchemaName: "slug",
},
{
Name: "Currency",
SchemaName: "currency",
Null: !m.Flags.Has(2),
},
{
Name: "Amount",
SchemaName: "amount",
Null: !m.Flags.Has(2),
},
{
Name: "CryptoCurrency",
SchemaName: "crypto_currency",
Null: !m.Flags.Has(3),
},
{
Name: "CryptoAmount",
SchemaName: "crypto_amount",
Null: !m.Flags.Has(3),
},
{
Name: "Message",
SchemaName: "message",
Null: !m.Flags.Has(4),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionGiftCode) SetFlags() {
if !(m.ViaGiveaway == false) {
m.Flags.Set(0)
}
if !(m.Unclaimed == false) {
m.Flags.Set(5)
}
if !(m.BoostPeer == nil) {
m.Flags.Set(1)
}
if !(m.Currency == "") {
m.Flags.Set(2)
}
if !(m.Amount == 0) {
m.Flags.Set(2)
}
if !(m.CryptoCurrency == "") {
m.Flags.Set(3)
}
if !(m.CryptoAmount == 0) {
m.Flags.Set(3)
}
if !(m.Message.Zero()) {
m.Flags.Set(4)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionGiftCode) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiftCode#56d03994 as nil")
}
b.PutID(MessageActionGiftCodeTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGiftCode) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiftCode#56d03994 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGiftCode#56d03994: field flags: %w", err)
}
if m.Flags.Has(1) {
if m.BoostPeer == nil {
return fmt.Errorf("unable to encode messageActionGiftCode#56d03994: field boost_peer is nil")
}
if err := m.BoostPeer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGiftCode#56d03994: field boost_peer: %w", err)
}
}
b.PutInt(m.Months)
b.PutString(m.Slug)
if m.Flags.Has(2) {
b.PutString(m.Currency)
}
if m.Flags.Has(2) {
b.PutLong(m.Amount)
}
if m.Flags.Has(3) {
b.PutString(m.CryptoCurrency)
}
if m.Flags.Has(3) {
b.PutLong(m.CryptoAmount)
}
if m.Flags.Has(4) {
if err := m.Message.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGiftCode#56d03994: field message: %w", err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGiftCode) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiftCode#56d03994 to nil")
}
if err := b.ConsumeID(MessageActionGiftCodeTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGiftCode) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiftCode#56d03994 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field flags: %w", err)
}
}
m.ViaGiveaway = m.Flags.Has(0)
m.Unclaimed = m.Flags.Has(5)
if m.Flags.Has(1) {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field boost_peer: %w", err)
}
m.BoostPeer = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field months: %w", err)
}
m.Months = value
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field slug: %w", err)
}
m.Slug = value
}
if m.Flags.Has(2) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field currency: %w", err)
}
m.Currency = value
}
if m.Flags.Has(2) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field amount: %w", err)
}
m.Amount = value
}
if m.Flags.Has(3) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field crypto_currency: %w", err)
}
m.CryptoCurrency = value
}
if m.Flags.Has(3) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field crypto_amount: %w", err)
}
m.CryptoAmount = value
}
if m.Flags.Has(4) {
if err := m.Message.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionGiftCode#56d03994: field message: %w", err)
}
}
return nil
}
// SetViaGiveaway sets value of ViaGiveaway conditional field.
func (m *MessageActionGiftCode) SetViaGiveaway(value bool) {
if value {
m.Flags.Set(0)
m.ViaGiveaway = true
} else {
m.Flags.Unset(0)
m.ViaGiveaway = false
}
}
// GetViaGiveaway returns value of ViaGiveaway conditional field.
func (m *MessageActionGiftCode) GetViaGiveaway() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// SetUnclaimed sets value of Unclaimed conditional field.
func (m *MessageActionGiftCode) SetUnclaimed(value bool) {
if value {
m.Flags.Set(5)
m.Unclaimed = true
} else {
m.Flags.Unset(5)
m.Unclaimed = false
}
}
// GetUnclaimed returns value of Unclaimed conditional field.
func (m *MessageActionGiftCode) GetUnclaimed() (value bool) {
if m == nil {
return
}
return m.Flags.Has(5)
}
// SetBoostPeer sets value of BoostPeer conditional field.
func (m *MessageActionGiftCode) SetBoostPeer(value PeerClass) {
m.Flags.Set(1)
m.BoostPeer = value
}
// GetBoostPeer returns value of BoostPeer conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftCode) GetBoostPeer() (value PeerClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(1) {
return value, false
}
return m.BoostPeer, true
}
// GetMonths returns value of Months field.
func (m *MessageActionGiftCode) GetMonths() (value int) {
if m == nil {
return
}
return m.Months
}
// GetSlug returns value of Slug field.
func (m *MessageActionGiftCode) GetSlug() (value string) {
if m == nil {
return
}
return m.Slug
}
// SetCurrency sets value of Currency conditional field.
func (m *MessageActionGiftCode) SetCurrency(value string) {
m.Flags.Set(2)
m.Currency = value
}
// GetCurrency returns value of Currency conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftCode) GetCurrency() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(2) {
return value, false
}
return m.Currency, true
}
// SetAmount sets value of Amount conditional field.
func (m *MessageActionGiftCode) SetAmount(value int64) {
m.Flags.Set(2)
m.Amount = value
}
// GetAmount returns value of Amount conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftCode) GetAmount() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(2) {
return value, false
}
return m.Amount, true
}
// SetCryptoCurrency sets value of CryptoCurrency conditional field.
func (m *MessageActionGiftCode) SetCryptoCurrency(value string) {
m.Flags.Set(3)
m.CryptoCurrency = value
}
// GetCryptoCurrency returns value of CryptoCurrency conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftCode) GetCryptoCurrency() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(3) {
return value, false
}
return m.CryptoCurrency, true
}
// SetCryptoAmount sets value of CryptoAmount conditional field.
func (m *MessageActionGiftCode) SetCryptoAmount(value int64) {
m.Flags.Set(3)
m.CryptoAmount = value
}
// GetCryptoAmount returns value of CryptoAmount conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftCode) GetCryptoAmount() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(3) {
return value, false
}
return m.CryptoAmount, true
}
// SetMessage sets value of Message conditional field.
func (m *MessageActionGiftCode) SetMessage(value TextWithEntities) {
m.Flags.Set(4)
m.Message = value
}
// GetMessage returns value of Message conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftCode) GetMessage() (value TextWithEntities, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(4) {
return value, false
}
return m.Message, true
}
// MessageActionGiveawayLaunch represents TL type `messageActionGiveawayLaunch#a80f51e4`.
// A giveaway¹ was started.
//
// Links:
// 1. https://core.telegram.org/api/giveaways
//
// See https://core.telegram.org/constructor/messageActionGiveawayLaunch for reference.
type MessageActionGiveawayLaunch struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// For Telegram Star giveaways¹, the total number of Telegram Stars being given away.
//
// Links:
// 1) https://core.telegram.org/api/stars#star-giveaways
//
// Use SetStars and GetStars helpers.
Stars int64
}
// MessageActionGiveawayLaunchTypeID is TL type id of MessageActionGiveawayLaunch.
const MessageActionGiveawayLaunchTypeID = 0xa80f51e4
// construct implements constructor of MessageActionClass.
func (m MessageActionGiveawayLaunch) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGiveawayLaunch.
var (
_ bin.Encoder = &MessageActionGiveawayLaunch{}
_ bin.Decoder = &MessageActionGiveawayLaunch{}
_ bin.BareEncoder = &MessageActionGiveawayLaunch{}
_ bin.BareDecoder = &MessageActionGiveawayLaunch{}
_ MessageActionClass = &MessageActionGiveawayLaunch{}
)
func (m *MessageActionGiveawayLaunch) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Stars == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGiveawayLaunch) String() string {
if m == nil {
return "MessageActionGiveawayLaunch(nil)"
}
type Alias MessageActionGiveawayLaunch
return fmt.Sprintf("MessageActionGiveawayLaunch%+v", Alias(*m))
}
// FillFrom fills MessageActionGiveawayLaunch from given interface.
func (m *MessageActionGiveawayLaunch) FillFrom(from interface {
GetStars() (value int64, ok bool)
}) {
if val, ok := from.GetStars(); ok {
m.Stars = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGiveawayLaunch) TypeID() uint32 {
return MessageActionGiveawayLaunchTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGiveawayLaunch) TypeName() string {
return "messageActionGiveawayLaunch"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGiveawayLaunch) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGiveawayLaunch",
ID: MessageActionGiveawayLaunchTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Stars",
SchemaName: "stars",
Null: !m.Flags.Has(0),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionGiveawayLaunch) SetFlags() {
if !(m.Stars == 0) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionGiveawayLaunch) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiveawayLaunch#a80f51e4 as nil")
}
b.PutID(MessageActionGiveawayLaunchTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGiveawayLaunch) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiveawayLaunch#a80f51e4 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGiveawayLaunch#a80f51e4: field flags: %w", err)
}
if m.Flags.Has(0) {
b.PutLong(m.Stars)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGiveawayLaunch) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiveawayLaunch#a80f51e4 to nil")
}
if err := b.ConsumeID(MessageActionGiveawayLaunchTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGiveawayLaunch#a80f51e4: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGiveawayLaunch) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiveawayLaunch#a80f51e4 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionGiveawayLaunch#a80f51e4: field flags: %w", err)
}
}
if m.Flags.Has(0) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiveawayLaunch#a80f51e4: field stars: %w", err)
}
m.Stars = value
}
return nil
}
// SetStars sets value of Stars conditional field.
func (m *MessageActionGiveawayLaunch) SetStars(value int64) {
m.Flags.Set(0)
m.Stars = value
}
// GetStars returns value of Stars conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiveawayLaunch) GetStars() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.Stars, true
}
// MessageActionGiveawayResults represents TL type `messageActionGiveawayResults#87e2f155`.
// A giveaway¹ has ended.
//
// Links:
// 1. https://core.telegram.org/api/giveaways
//
// See https://core.telegram.org/constructor/messageActionGiveawayResults for reference.
type MessageActionGiveawayResults struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// If set, this is a Telegram Star giveaway¹
//
// Links:
// 1) https://core.telegram.org/api/stars#star-giveaways
Stars bool
// Number of winners in the giveaway
WinnersCount int
// Number of undistributed prizes
UnclaimedCount int
}
// MessageActionGiveawayResultsTypeID is TL type id of MessageActionGiveawayResults.
const MessageActionGiveawayResultsTypeID = 0x87e2f155
// construct implements constructor of MessageActionClass.
func (m MessageActionGiveawayResults) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGiveawayResults.
var (
_ bin.Encoder = &MessageActionGiveawayResults{}
_ bin.Decoder = &MessageActionGiveawayResults{}
_ bin.BareEncoder = &MessageActionGiveawayResults{}
_ bin.BareDecoder = &MessageActionGiveawayResults{}
_ MessageActionClass = &MessageActionGiveawayResults{}
)
func (m *MessageActionGiveawayResults) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Stars == false) {
return false
}
if !(m.WinnersCount == 0) {
return false
}
if !(m.UnclaimedCount == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGiveawayResults) String() string {
if m == nil {
return "MessageActionGiveawayResults(nil)"
}
type Alias MessageActionGiveawayResults
return fmt.Sprintf("MessageActionGiveawayResults%+v", Alias(*m))
}
// FillFrom fills MessageActionGiveawayResults from given interface.
func (m *MessageActionGiveawayResults) FillFrom(from interface {
GetStars() (value bool)
GetWinnersCount() (value int)
GetUnclaimedCount() (value int)
}) {
m.Stars = from.GetStars()
m.WinnersCount = from.GetWinnersCount()
m.UnclaimedCount = from.GetUnclaimedCount()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGiveawayResults) TypeID() uint32 {
return MessageActionGiveawayResultsTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGiveawayResults) TypeName() string {
return "messageActionGiveawayResults"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGiveawayResults) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGiveawayResults",
ID: MessageActionGiveawayResultsTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Stars",
SchemaName: "stars",
Null: !m.Flags.Has(0),
},
{
Name: "WinnersCount",
SchemaName: "winners_count",
},
{
Name: "UnclaimedCount",
SchemaName: "unclaimed_count",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionGiveawayResults) SetFlags() {
if !(m.Stars == false) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionGiveawayResults) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiveawayResults#87e2f155 as nil")
}
b.PutID(MessageActionGiveawayResultsTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGiveawayResults) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiveawayResults#87e2f155 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGiveawayResults#87e2f155: field flags: %w", err)
}
b.PutInt(m.WinnersCount)
b.PutInt(m.UnclaimedCount)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGiveawayResults) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiveawayResults#87e2f155 to nil")
}
if err := b.ConsumeID(MessageActionGiveawayResultsTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGiveawayResults#87e2f155: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGiveawayResults) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiveawayResults#87e2f155 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionGiveawayResults#87e2f155: field flags: %w", err)
}
}
m.Stars = m.Flags.Has(0)
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiveawayResults#87e2f155: field winners_count: %w", err)
}
m.WinnersCount = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiveawayResults#87e2f155: field unclaimed_count: %w", err)
}
m.UnclaimedCount = value
}
return nil
}
// SetStars sets value of Stars conditional field.
func (m *MessageActionGiveawayResults) SetStars(value bool) {
if value {
m.Flags.Set(0)
m.Stars = true
} else {
m.Flags.Unset(0)
m.Stars = false
}
}
// GetStars returns value of Stars conditional field.
func (m *MessageActionGiveawayResults) GetStars() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// GetWinnersCount returns value of WinnersCount field.
func (m *MessageActionGiveawayResults) GetWinnersCount() (value int) {
if m == nil {
return
}
return m.WinnersCount
}
// GetUnclaimedCount returns value of UnclaimedCount field.
func (m *MessageActionGiveawayResults) GetUnclaimedCount() (value int) {
if m == nil {
return
}
return m.UnclaimedCount
}
// MessageActionBoostApply represents TL type `messageActionBoostApply#cc02aa6d`.
// Some boosts »¹ were applied to the channel or supergroup.
//
// Links:
// 1. https://core.telegram.org/api/boost
//
// See https://core.telegram.org/constructor/messageActionBoostApply for reference.
type MessageActionBoostApply struct {
// Number of applied boosts¹.
//
// Links:
// 1) https://core.telegram.org/api/boost
Boosts int
}
// MessageActionBoostApplyTypeID is TL type id of MessageActionBoostApply.
const MessageActionBoostApplyTypeID = 0xcc02aa6d
// construct implements constructor of MessageActionClass.
func (m MessageActionBoostApply) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionBoostApply.
var (
_ bin.Encoder = &MessageActionBoostApply{}
_ bin.Decoder = &MessageActionBoostApply{}
_ bin.BareEncoder = &MessageActionBoostApply{}
_ bin.BareDecoder = &MessageActionBoostApply{}
_ MessageActionClass = &MessageActionBoostApply{}
)
func (m *MessageActionBoostApply) Zero() bool {
if m == nil {
return true
}
if !(m.Boosts == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionBoostApply) String() string {
if m == nil {
return "MessageActionBoostApply(nil)"
}
type Alias MessageActionBoostApply
return fmt.Sprintf("MessageActionBoostApply%+v", Alias(*m))
}
// FillFrom fills MessageActionBoostApply from given interface.
func (m *MessageActionBoostApply) FillFrom(from interface {
GetBoosts() (value int)
}) {
m.Boosts = from.GetBoosts()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionBoostApply) TypeID() uint32 {
return MessageActionBoostApplyTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionBoostApply) TypeName() string {
return "messageActionBoostApply"
}
// TypeInfo returns info about TL type.
func (m *MessageActionBoostApply) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionBoostApply",
ID: MessageActionBoostApplyTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Boosts",
SchemaName: "boosts",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionBoostApply) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionBoostApply#cc02aa6d as nil")
}
b.PutID(MessageActionBoostApplyTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionBoostApply) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionBoostApply#cc02aa6d as nil")
}
b.PutInt(m.Boosts)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionBoostApply) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionBoostApply#cc02aa6d to nil")
}
if err := b.ConsumeID(MessageActionBoostApplyTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionBoostApply#cc02aa6d: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionBoostApply) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionBoostApply#cc02aa6d to nil")
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionBoostApply#cc02aa6d: field boosts: %w", err)
}
m.Boosts = value
}
return nil
}
// GetBoosts returns value of Boosts field.
func (m *MessageActionBoostApply) GetBoosts() (value int) {
if m == nil {
return
}
return m.Boosts
}
// MessageActionRequestedPeerSentMe represents TL type `messageActionRequestedPeerSentMe#93b31848`.
// Contains info about one or more peers that the a user shared with the me (the bot)
// after clicking on a keyboardButtonRequestPeer¹ button (service message received by
// the bot).
//
// Links:
// 1. https://core.telegram.org/constructor/keyboardButtonRequestPeer
//
// See https://core.telegram.org/constructor/messageActionRequestedPeerSentMe for reference.
type MessageActionRequestedPeerSentMe struct {
// button_id contained in the keyboardButtonRequestPeer¹
//
// Links:
// 1) https://core.telegram.org/constructor/keyboardButtonRequestPeer
ButtonID int
// Info about the shared peers.
Peers []RequestedPeerClass
}
// MessageActionRequestedPeerSentMeTypeID is TL type id of MessageActionRequestedPeerSentMe.
const MessageActionRequestedPeerSentMeTypeID = 0x93b31848
// construct implements constructor of MessageActionClass.
func (m MessageActionRequestedPeerSentMe) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionRequestedPeerSentMe.
var (
_ bin.Encoder = &MessageActionRequestedPeerSentMe{}
_ bin.Decoder = &MessageActionRequestedPeerSentMe{}
_ bin.BareEncoder = &MessageActionRequestedPeerSentMe{}
_ bin.BareDecoder = &MessageActionRequestedPeerSentMe{}
_ MessageActionClass = &MessageActionRequestedPeerSentMe{}
)
func (m *MessageActionRequestedPeerSentMe) Zero() bool {
if m == nil {
return true
}
if !(m.ButtonID == 0) {
return false
}
if !(m.Peers == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionRequestedPeerSentMe) String() string {
if m == nil {
return "MessageActionRequestedPeerSentMe(nil)"
}
type Alias MessageActionRequestedPeerSentMe
return fmt.Sprintf("MessageActionRequestedPeerSentMe%+v", Alias(*m))
}
// FillFrom fills MessageActionRequestedPeerSentMe from given interface.
func (m *MessageActionRequestedPeerSentMe) FillFrom(from interface {
GetButtonID() (value int)
GetPeers() (value []RequestedPeerClass)
}) {
m.ButtonID = from.GetButtonID()
m.Peers = from.GetPeers()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionRequestedPeerSentMe) TypeID() uint32 {
return MessageActionRequestedPeerSentMeTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionRequestedPeerSentMe) TypeName() string {
return "messageActionRequestedPeerSentMe"
}
// TypeInfo returns info about TL type.
func (m *MessageActionRequestedPeerSentMe) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionRequestedPeerSentMe",
ID: MessageActionRequestedPeerSentMeTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "ButtonID",
SchemaName: "button_id",
},
{
Name: "Peers",
SchemaName: "peers",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionRequestedPeerSentMe) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionRequestedPeerSentMe#93b31848 as nil")
}
b.PutID(MessageActionRequestedPeerSentMeTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionRequestedPeerSentMe) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionRequestedPeerSentMe#93b31848 as nil")
}
b.PutInt(m.ButtonID)
b.PutVectorHeader(len(m.Peers))
for idx, v := range m.Peers {
if v == nil {
return fmt.Errorf("unable to encode messageActionRequestedPeerSentMe#93b31848: field peers element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionRequestedPeerSentMe#93b31848: field peers element with index %d: %w", idx, err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionRequestedPeerSentMe) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionRequestedPeerSentMe#93b31848 to nil")
}
if err := b.ConsumeID(MessageActionRequestedPeerSentMeTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionRequestedPeerSentMe#93b31848: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionRequestedPeerSentMe) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionRequestedPeerSentMe#93b31848 to nil")
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionRequestedPeerSentMe#93b31848: field button_id: %w", err)
}
m.ButtonID = value
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageActionRequestedPeerSentMe#93b31848: field peers: %w", err)
}
if headerLen > 0 {
m.Peers = make([]RequestedPeerClass, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := DecodeRequestedPeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionRequestedPeerSentMe#93b31848: field peers: %w", err)
}
m.Peers = append(m.Peers, value)
}
}
return nil
}
// GetButtonID returns value of ButtonID field.
func (m *MessageActionRequestedPeerSentMe) GetButtonID() (value int) {
if m == nil {
return
}
return m.ButtonID
}
// GetPeers returns value of Peers field.
func (m *MessageActionRequestedPeerSentMe) GetPeers() (value []RequestedPeerClass) {
if m == nil {
return
}
return m.Peers
}
// MapPeers returns field Peers wrapped in RequestedPeerClassArray helper.
func (m *MessageActionRequestedPeerSentMe) MapPeers() (value RequestedPeerClassArray) {
return RequestedPeerClassArray(m.Peers)
}
// MessageActionPaymentRefunded represents TL type `messageActionPaymentRefunded#41b3e202`.
// Describes a payment refund (service message received by both users and bots).
//
// See https://core.telegram.org/constructor/messageActionPaymentRefunded for reference.
type MessageActionPaymentRefunded struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Identifier of the peer that returned the funds.
Peer PeerClass
// Currency, XTR for Telegram Stars.
Currency string
// Total price in the smallest units of the currency (integer, not float/double). For
// example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in
// currencies.json¹, it shows the number of digits past the decimal point for each
// currency (2 for the majority of currencies).
//
// Links:
// 1) https://core.telegram.org/bots/payments/currencies.json
TotalAmount int64
// Bot specified invoice payload (only received by bots).
//
// Use SetPayload and GetPayload helpers.
Payload []byte
// Provider payment identifier
Charge PaymentCharge
}
// MessageActionPaymentRefundedTypeID is TL type id of MessageActionPaymentRefunded.
const MessageActionPaymentRefundedTypeID = 0x41b3e202
// construct implements constructor of MessageActionClass.
func (m MessageActionPaymentRefunded) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPaymentRefunded.
var (
_ bin.Encoder = &MessageActionPaymentRefunded{}
_ bin.Decoder = &MessageActionPaymentRefunded{}
_ bin.BareEncoder = &MessageActionPaymentRefunded{}
_ bin.BareDecoder = &MessageActionPaymentRefunded{}
_ MessageActionClass = &MessageActionPaymentRefunded{}
)
func (m *MessageActionPaymentRefunded) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Peer == nil) {
return false
}
if !(m.Currency == "") {
return false
}
if !(m.TotalAmount == 0) {
return false
}
if !(m.Payload == nil) {
return false
}
if !(m.Charge.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPaymentRefunded) String() string {
if m == nil {
return "MessageActionPaymentRefunded(nil)"
}
type Alias MessageActionPaymentRefunded
return fmt.Sprintf("MessageActionPaymentRefunded%+v", Alias(*m))
}
// FillFrom fills MessageActionPaymentRefunded from given interface.
func (m *MessageActionPaymentRefunded) FillFrom(from interface {
GetPeer() (value PeerClass)
GetCurrency() (value string)
GetTotalAmount() (value int64)
GetPayload() (value []byte, ok bool)
GetCharge() (value PaymentCharge)
}) {
m.Peer = from.GetPeer()
m.Currency = from.GetCurrency()
m.TotalAmount = from.GetTotalAmount()
if val, ok := from.GetPayload(); ok {
m.Payload = val
}
m.Charge = from.GetCharge()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPaymentRefunded) TypeID() uint32 {
return MessageActionPaymentRefundedTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPaymentRefunded) TypeName() string {
return "messageActionPaymentRefunded"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPaymentRefunded) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPaymentRefunded",
ID: MessageActionPaymentRefundedTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Peer",
SchemaName: "peer",
},
{
Name: "Currency",
SchemaName: "currency",
},
{
Name: "TotalAmount",
SchemaName: "total_amount",
},
{
Name: "Payload",
SchemaName: "payload",
Null: !m.Flags.Has(0),
},
{
Name: "Charge",
SchemaName: "charge",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionPaymentRefunded) SetFlags() {
if !(m.Payload == nil) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionPaymentRefunded) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaymentRefunded#41b3e202 as nil")
}
b.PutID(MessageActionPaymentRefundedTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPaymentRefunded) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaymentRefunded#41b3e202 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPaymentRefunded#41b3e202: field flags: %w", err)
}
if m.Peer == nil {
return fmt.Errorf("unable to encode messageActionPaymentRefunded#41b3e202: field peer is nil")
}
if err := m.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPaymentRefunded#41b3e202: field peer: %w", err)
}
b.PutString(m.Currency)
b.PutLong(m.TotalAmount)
if m.Flags.Has(0) {
b.PutBytes(m.Payload)
}
if err := m.Charge.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPaymentRefunded#41b3e202: field charge: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPaymentRefunded) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaymentRefunded#41b3e202 to nil")
}
if err := b.ConsumeID(MessageActionPaymentRefundedTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentRefunded#41b3e202: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPaymentRefunded) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaymentRefunded#41b3e202 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentRefunded#41b3e202: field flags: %w", err)
}
}
{
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentRefunded#41b3e202: field peer: %w", err)
}
m.Peer = value
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentRefunded#41b3e202: field currency: %w", err)
}
m.Currency = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentRefunded#41b3e202: field total_amount: %w", err)
}
m.TotalAmount = value
}
if m.Flags.Has(0) {
value, err := b.Bytes()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaymentRefunded#41b3e202: field payload: %w", err)
}
m.Payload = value
}
{
if err := m.Charge.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPaymentRefunded#41b3e202: field charge: %w", err)
}
}
return nil
}
// GetPeer returns value of Peer field.
func (m *MessageActionPaymentRefunded) GetPeer() (value PeerClass) {
if m == nil {
return
}
return m.Peer
}
// GetCurrency returns value of Currency field.
func (m *MessageActionPaymentRefunded) GetCurrency() (value string) {
if m == nil {
return
}
return m.Currency
}
// GetTotalAmount returns value of TotalAmount field.
func (m *MessageActionPaymentRefunded) GetTotalAmount() (value int64) {
if m == nil {
return
}
return m.TotalAmount
}
// SetPayload sets value of Payload conditional field.
func (m *MessageActionPaymentRefunded) SetPayload(value []byte) {
m.Flags.Set(0)
m.Payload = value
}
// GetPayload returns value of Payload conditional field and
// boolean which is true if field was set.
func (m *MessageActionPaymentRefunded) GetPayload() (value []byte, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.Payload, true
}
// GetCharge returns value of Charge field.
func (m *MessageActionPaymentRefunded) GetCharge() (value PaymentCharge) {
if m == nil {
return
}
return m.Charge
}
// MessageActionGiftStars represents TL type `messageActionGiftStars#45d5b021`.
// You gifted or were gifted some Telegram Stars¹.
//
// Links:
// 1. https://core.telegram.org/api/stars
//
// See https://core.telegram.org/constructor/messageActionGiftStars for reference.
type MessageActionGiftStars struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Three-letter ISO 4217 currency¹ code
//
// Links:
// 1) https://core.telegram.org/bots/payments#supported-currencies
Currency string
// Price of the gift in the smallest units of the currency (integer, not float/double).
// For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in
// currencies.json¹, it shows the number of digits past the decimal point for each
// currency (2 for the majority of currencies).
//
// Links:
// 1) https://core.telegram.org/bots/payments/currencies.json
Amount int64
// Amount of gifted stars
Stars int64
// If the gift was bought using a cryptocurrency, the cryptocurrency name.
//
// Use SetCryptoCurrency and GetCryptoCurrency helpers.
CryptoCurrency string
// If the gift was bought using a cryptocurrency, price of the gift in the smallest units
// of a cryptocurrency.
//
// Use SetCryptoAmount and GetCryptoAmount helpers.
CryptoAmount int64
// Identifier of the transaction, only visible to the receiver of the gift.
//
// Use SetTransactionID and GetTransactionID helpers.
TransactionID string
}
// MessageActionGiftStarsTypeID is TL type id of MessageActionGiftStars.
const MessageActionGiftStarsTypeID = 0x45d5b021
// construct implements constructor of MessageActionClass.
func (m MessageActionGiftStars) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionGiftStars.
var (
_ bin.Encoder = &MessageActionGiftStars{}
_ bin.Decoder = &MessageActionGiftStars{}
_ bin.BareEncoder = &MessageActionGiftStars{}
_ bin.BareDecoder = &MessageActionGiftStars{}
_ MessageActionClass = &MessageActionGiftStars{}
)
func (m *MessageActionGiftStars) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Currency == "") {
return false
}
if !(m.Amount == 0) {
return false
}
if !(m.Stars == 0) {
return false
}
if !(m.CryptoCurrency == "") {
return false
}
if !(m.CryptoAmount == 0) {
return false
}
if !(m.TransactionID == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionGiftStars) String() string {
if m == nil {
return "MessageActionGiftStars(nil)"
}
type Alias MessageActionGiftStars
return fmt.Sprintf("MessageActionGiftStars%+v", Alias(*m))
}
// FillFrom fills MessageActionGiftStars from given interface.
func (m *MessageActionGiftStars) FillFrom(from interface {
GetCurrency() (value string)
GetAmount() (value int64)
GetStars() (value int64)
GetCryptoCurrency() (value string, ok bool)
GetCryptoAmount() (value int64, ok bool)
GetTransactionID() (value string, ok bool)
}) {
m.Currency = from.GetCurrency()
m.Amount = from.GetAmount()
m.Stars = from.GetStars()
if val, ok := from.GetCryptoCurrency(); ok {
m.CryptoCurrency = val
}
if val, ok := from.GetCryptoAmount(); ok {
m.CryptoAmount = val
}
if val, ok := from.GetTransactionID(); ok {
m.TransactionID = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionGiftStars) TypeID() uint32 {
return MessageActionGiftStarsTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionGiftStars) TypeName() string {
return "messageActionGiftStars"
}
// TypeInfo returns info about TL type.
func (m *MessageActionGiftStars) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionGiftStars",
ID: MessageActionGiftStarsTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Currency",
SchemaName: "currency",
},
{
Name: "Amount",
SchemaName: "amount",
},
{
Name: "Stars",
SchemaName: "stars",
},
{
Name: "CryptoCurrency",
SchemaName: "crypto_currency",
Null: !m.Flags.Has(0),
},
{
Name: "CryptoAmount",
SchemaName: "crypto_amount",
Null: !m.Flags.Has(0),
},
{
Name: "TransactionID",
SchemaName: "transaction_id",
Null: !m.Flags.Has(1),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionGiftStars) SetFlags() {
if !(m.CryptoCurrency == "") {
m.Flags.Set(0)
}
if !(m.CryptoAmount == 0) {
m.Flags.Set(0)
}
if !(m.TransactionID == "") {
m.Flags.Set(1)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionGiftStars) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiftStars#45d5b021 as nil")
}
b.PutID(MessageActionGiftStarsTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionGiftStars) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionGiftStars#45d5b021 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionGiftStars#45d5b021: field flags: %w", err)
}
b.PutString(m.Currency)
b.PutLong(m.Amount)
b.PutLong(m.Stars)
if m.Flags.Has(0) {
b.PutString(m.CryptoCurrency)
}
if m.Flags.Has(0) {
b.PutLong(m.CryptoAmount)
}
if m.Flags.Has(1) {
b.PutString(m.TransactionID)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionGiftStars) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiftStars#45d5b021 to nil")
}
if err := b.ConsumeID(MessageActionGiftStarsTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionGiftStars#45d5b021: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionGiftStars) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionGiftStars#45d5b021 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionGiftStars#45d5b021: field flags: %w", err)
}
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftStars#45d5b021: field currency: %w", err)
}
m.Currency = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftStars#45d5b021: field amount: %w", err)
}
m.Amount = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftStars#45d5b021: field stars: %w", err)
}
m.Stars = value
}
if m.Flags.Has(0) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftStars#45d5b021: field crypto_currency: %w", err)
}
m.CryptoCurrency = value
}
if m.Flags.Has(0) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftStars#45d5b021: field crypto_amount: %w", err)
}
m.CryptoAmount = value
}
if m.Flags.Has(1) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionGiftStars#45d5b021: field transaction_id: %w", err)
}
m.TransactionID = value
}
return nil
}
// GetCurrency returns value of Currency field.
func (m *MessageActionGiftStars) GetCurrency() (value string) {
if m == nil {
return
}
return m.Currency
}
// GetAmount returns value of Amount field.
func (m *MessageActionGiftStars) GetAmount() (value int64) {
if m == nil {
return
}
return m.Amount
}
// GetStars returns value of Stars field.
func (m *MessageActionGiftStars) GetStars() (value int64) {
if m == nil {
return
}
return m.Stars
}
// SetCryptoCurrency sets value of CryptoCurrency conditional field.
func (m *MessageActionGiftStars) SetCryptoCurrency(value string) {
m.Flags.Set(0)
m.CryptoCurrency = value
}
// GetCryptoCurrency returns value of CryptoCurrency conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftStars) GetCryptoCurrency() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.CryptoCurrency, true
}
// SetCryptoAmount sets value of CryptoAmount conditional field.
func (m *MessageActionGiftStars) SetCryptoAmount(value int64) {
m.Flags.Set(0)
m.CryptoAmount = value
}
// GetCryptoAmount returns value of CryptoAmount conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftStars) GetCryptoAmount() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(0) {
return value, false
}
return m.CryptoAmount, true
}
// SetTransactionID sets value of TransactionID conditional field.
func (m *MessageActionGiftStars) SetTransactionID(value string) {
m.Flags.Set(1)
m.TransactionID = value
}
// GetTransactionID returns value of TransactionID conditional field and
// boolean which is true if field was set.
func (m *MessageActionGiftStars) GetTransactionID() (value string, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(1) {
return value, false
}
return m.TransactionID, true
}
// MessageActionPrizeStars represents TL type `messageActionPrizeStars#b00c47a2`.
// You won some Telegram Stars¹ in a Telegram Star giveaway »².
//
// Links:
// 1. https://core.telegram.org/api/stars
// 2. https://core.telegram.org/api/giveaways#star-giveaways
//
// See https://core.telegram.org/constructor/messageActionPrizeStars for reference.
type MessageActionPrizeStars struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// Unclaimed field of MessageActionPrizeStars.
Unclaimed bool
// The number of Telegram Stars you won
Stars int64
// ID of the telegram star transaction.
TransactionID string
// Identifier of the peer that was automatically boosted by the winners of the giveaway.
BoostPeer PeerClass
// ID of the message containing the messageMediaGiveaway¹
//
// Links:
// 1) https://core.telegram.org/constructor/messageMediaGiveaway
GiveawayMsgID int
}
// MessageActionPrizeStarsTypeID is TL type id of MessageActionPrizeStars.
const MessageActionPrizeStarsTypeID = 0xb00c47a2
// construct implements constructor of MessageActionClass.
func (m MessageActionPrizeStars) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPrizeStars.
var (
_ bin.Encoder = &MessageActionPrizeStars{}
_ bin.Decoder = &MessageActionPrizeStars{}
_ bin.BareEncoder = &MessageActionPrizeStars{}
_ bin.BareDecoder = &MessageActionPrizeStars{}
_ MessageActionClass = &MessageActionPrizeStars{}
)
func (m *MessageActionPrizeStars) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Unclaimed == false) {
return false
}
if !(m.Stars == 0) {
return false
}
if !(m.TransactionID == "") {
return false
}
if !(m.BoostPeer == nil) {
return false
}
if !(m.GiveawayMsgID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPrizeStars) String() string {
if m == nil {
return "MessageActionPrizeStars(nil)"
}
type Alias MessageActionPrizeStars
return fmt.Sprintf("MessageActionPrizeStars%+v", Alias(*m))
}
// FillFrom fills MessageActionPrizeStars from given interface.
func (m *MessageActionPrizeStars) FillFrom(from interface {
GetUnclaimed() (value bool)
GetStars() (value int64)
GetTransactionID() (value string)
GetBoostPeer() (value PeerClass)
GetGiveawayMsgID() (value int)
}) {
m.Unclaimed = from.GetUnclaimed()
m.Stars = from.GetStars()
m.TransactionID = from.GetTransactionID()
m.BoostPeer = from.GetBoostPeer()
m.GiveawayMsgID = from.GetGiveawayMsgID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPrizeStars) TypeID() uint32 {
return MessageActionPrizeStarsTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPrizeStars) TypeName() string {
return "messageActionPrizeStars"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPrizeStars) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPrizeStars",
ID: MessageActionPrizeStarsTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Unclaimed",
SchemaName: "unclaimed",
Null: !m.Flags.Has(0),
},
{
Name: "Stars",
SchemaName: "stars",
},
{
Name: "TransactionID",
SchemaName: "transaction_id",
},
{
Name: "BoostPeer",
SchemaName: "boost_peer",
},
{
Name: "GiveawayMsgID",
SchemaName: "giveaway_msg_id",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionPrizeStars) SetFlags() {
if !(m.Unclaimed == false) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionPrizeStars) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPrizeStars#b00c47a2 as nil")
}
b.PutID(MessageActionPrizeStarsTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPrizeStars) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPrizeStars#b00c47a2 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPrizeStars#b00c47a2: field flags: %w", err)
}
b.PutLong(m.Stars)
b.PutString(m.TransactionID)
if m.BoostPeer == nil {
return fmt.Errorf("unable to encode messageActionPrizeStars#b00c47a2: field boost_peer is nil")
}
if err := m.BoostPeer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPrizeStars#b00c47a2: field boost_peer: %w", err)
}
b.PutInt(m.GiveawayMsgID)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPrizeStars) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPrizeStars#b00c47a2 to nil")
}
if err := b.ConsumeID(MessageActionPrizeStarsTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPrizeStars#b00c47a2: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPrizeStars) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPrizeStars#b00c47a2 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPrizeStars#b00c47a2: field flags: %w", err)
}
}
m.Unclaimed = m.Flags.Has(0)
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionPrizeStars#b00c47a2: field stars: %w", err)
}
m.Stars = value
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageActionPrizeStars#b00c47a2: field transaction_id: %w", err)
}
m.TransactionID = value
}
{
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionPrizeStars#b00c47a2: field boost_peer: %w", err)
}
m.BoostPeer = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionPrizeStars#b00c47a2: field giveaway_msg_id: %w", err)
}
m.GiveawayMsgID = value
}
return nil
}
// SetUnclaimed sets value of Unclaimed conditional field.
func (m *MessageActionPrizeStars) SetUnclaimed(value bool) {
if value {
m.Flags.Set(0)
m.Unclaimed = true
} else {
m.Flags.Unset(0)
m.Unclaimed = false
}
}
// GetUnclaimed returns value of Unclaimed conditional field.
func (m *MessageActionPrizeStars) GetUnclaimed() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// GetStars returns value of Stars field.
func (m *MessageActionPrizeStars) GetStars() (value int64) {
if m == nil {
return
}
return m.Stars
}
// GetTransactionID returns value of TransactionID field.
func (m *MessageActionPrizeStars) GetTransactionID() (value string) {
if m == nil {
return
}
return m.TransactionID
}
// GetBoostPeer returns value of BoostPeer field.
func (m *MessageActionPrizeStars) GetBoostPeer() (value PeerClass) {
if m == nil {
return
}
return m.BoostPeer
}
// GetGiveawayMsgID returns value of GiveawayMsgID field.
func (m *MessageActionPrizeStars) GetGiveawayMsgID() (value int) {
if m == nil {
return
}
return m.GiveawayMsgID
}
// MessageActionStarGift represents TL type `messageActionStarGift#4717e8a4`.
// You received a gift, see here »¹ for more info.
//
// Links:
// 1. https://core.telegram.org/api/gifts
//
// See https://core.telegram.org/constructor/messageActionStarGift for reference.
type MessageActionStarGift struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// If set, the name of the sender of the gift will be hidden if the destination user
// decides to display the gift on their profile
NameHidden bool
// Whether this gift was added to the destination user's profile (may be toggled using
// payments.saveStarGift¹ and fetched using payments.getUserStarGifts²)
//
// Links:
// 1) https://core.telegram.org/method/payments.saveStarGift
// 2) https://core.telegram.org/method/payments.getUserStarGifts
Saved bool
// Whether this gift was converted to Telegram Stars¹ and cannot be displayed on the
// profile anymore.
//
// Links:
// 1) https://core.telegram.org/api/stars
Converted bool
// Upgraded field of MessageActionStarGift.
Upgraded bool
// Refunded field of MessageActionStarGift.
Refunded bool
// CanUpgrade field of MessageActionStarGift.
CanUpgrade bool
// Info about the gift
Gift StarGiftClass
// Additional message from the sender of the gift
//
// Use SetMessage and GetMessage helpers.
Message TextWithEntities
// The receiver of this gift may convert it to this many Telegram Stars, instead of
// displaying it on their profile page.convert_stars will be equal to stars only if the
// gift was bought using recently bought Telegram Stars, otherwise it will be less than
// stars.
//
// Use SetConvertStars and GetConvertStars helpers.
ConvertStars int64
// UpgradeMsgID field of MessageActionStarGift.
//
// Use SetUpgradeMsgID and GetUpgradeMsgID helpers.
UpgradeMsgID int
// UpgradeStars field of MessageActionStarGift.
//
// Use SetUpgradeStars and GetUpgradeStars helpers.
UpgradeStars int64
// FromID field of MessageActionStarGift.
//
// Use SetFromID and GetFromID helpers.
FromID PeerClass
// Peer field of MessageActionStarGift.
//
// Use SetPeer and GetPeer helpers.
Peer PeerClass
// SavedID field of MessageActionStarGift.
//
// Use SetSavedID and GetSavedID helpers.
SavedID int64
}
// MessageActionStarGiftTypeID is TL type id of MessageActionStarGift.
const MessageActionStarGiftTypeID = 0x4717e8a4
// construct implements constructor of MessageActionClass.
func (m MessageActionStarGift) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionStarGift.
var (
_ bin.Encoder = &MessageActionStarGift{}
_ bin.Decoder = &MessageActionStarGift{}
_ bin.BareEncoder = &MessageActionStarGift{}
_ bin.BareDecoder = &MessageActionStarGift{}
_ MessageActionClass = &MessageActionStarGift{}
)
func (m *MessageActionStarGift) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.NameHidden == false) {
return false
}
if !(m.Saved == false) {
return false
}
if !(m.Converted == false) {
return false
}
if !(m.Upgraded == false) {
return false
}
if !(m.Refunded == false) {
return false
}
if !(m.CanUpgrade == false) {
return false
}
if !(m.Gift == nil) {
return false
}
if !(m.Message.Zero()) {
return false
}
if !(m.ConvertStars == 0) {
return false
}
if !(m.UpgradeMsgID == 0) {
return false
}
if !(m.UpgradeStars == 0) {
return false
}
if !(m.FromID == nil) {
return false
}
if !(m.Peer == nil) {
return false
}
if !(m.SavedID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionStarGift) String() string {
if m == nil {
return "MessageActionStarGift(nil)"
}
type Alias MessageActionStarGift
return fmt.Sprintf("MessageActionStarGift%+v", Alias(*m))
}
// FillFrom fills MessageActionStarGift from given interface.
func (m *MessageActionStarGift) FillFrom(from interface {
GetNameHidden() (value bool)
GetSaved() (value bool)
GetConverted() (value bool)
GetUpgraded() (value bool)
GetRefunded() (value bool)
GetCanUpgrade() (value bool)
GetGift() (value StarGiftClass)
GetMessage() (value TextWithEntities, ok bool)
GetConvertStars() (value int64, ok bool)
GetUpgradeMsgID() (value int, ok bool)
GetUpgradeStars() (value int64, ok bool)
GetFromID() (value PeerClass, ok bool)
GetPeer() (value PeerClass, ok bool)
GetSavedID() (value int64, ok bool)
}) {
m.NameHidden = from.GetNameHidden()
m.Saved = from.GetSaved()
m.Converted = from.GetConverted()
m.Upgraded = from.GetUpgraded()
m.Refunded = from.GetRefunded()
m.CanUpgrade = from.GetCanUpgrade()
m.Gift = from.GetGift()
if val, ok := from.GetMessage(); ok {
m.Message = val
}
if val, ok := from.GetConvertStars(); ok {
m.ConvertStars = val
}
if val, ok := from.GetUpgradeMsgID(); ok {
m.UpgradeMsgID = val
}
if val, ok := from.GetUpgradeStars(); ok {
m.UpgradeStars = val
}
if val, ok := from.GetFromID(); ok {
m.FromID = val
}
if val, ok := from.GetPeer(); ok {
m.Peer = val
}
if val, ok := from.GetSavedID(); ok {
m.SavedID = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionStarGift) TypeID() uint32 {
return MessageActionStarGiftTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionStarGift) TypeName() string {
return "messageActionStarGift"
}
// TypeInfo returns info about TL type.
func (m *MessageActionStarGift) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionStarGift",
ID: MessageActionStarGiftTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "NameHidden",
SchemaName: "name_hidden",
Null: !m.Flags.Has(0),
},
{
Name: "Saved",
SchemaName: "saved",
Null: !m.Flags.Has(2),
},
{
Name: "Converted",
SchemaName: "converted",
Null: !m.Flags.Has(3),
},
{
Name: "Upgraded",
SchemaName: "upgraded",
Null: !m.Flags.Has(5),
},
{
Name: "Refunded",
SchemaName: "refunded",
Null: !m.Flags.Has(9),
},
{
Name: "CanUpgrade",
SchemaName: "can_upgrade",
Null: !m.Flags.Has(10),
},
{
Name: "Gift",
SchemaName: "gift",
},
{
Name: "Message",
SchemaName: "message",
Null: !m.Flags.Has(1),
},
{
Name: "ConvertStars",
SchemaName: "convert_stars",
Null: !m.Flags.Has(4),
},
{
Name: "UpgradeMsgID",
SchemaName: "upgrade_msg_id",
Null: !m.Flags.Has(5),
},
{
Name: "UpgradeStars",
SchemaName: "upgrade_stars",
Null: !m.Flags.Has(8),
},
{
Name: "FromID",
SchemaName: "from_id",
Null: !m.Flags.Has(11),
},
{
Name: "Peer",
SchemaName: "peer",
Null: !m.Flags.Has(12),
},
{
Name: "SavedID",
SchemaName: "saved_id",
Null: !m.Flags.Has(12),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionStarGift) SetFlags() {
if !(m.NameHidden == false) {
m.Flags.Set(0)
}
if !(m.Saved == false) {
m.Flags.Set(2)
}
if !(m.Converted == false) {
m.Flags.Set(3)
}
if !(m.Upgraded == false) {
m.Flags.Set(5)
}
if !(m.Refunded == false) {
m.Flags.Set(9)
}
if !(m.CanUpgrade == false) {
m.Flags.Set(10)
}
if !(m.Message.Zero()) {
m.Flags.Set(1)
}
if !(m.ConvertStars == 0) {
m.Flags.Set(4)
}
if !(m.UpgradeMsgID == 0) {
m.Flags.Set(5)
}
if !(m.UpgradeStars == 0) {
m.Flags.Set(8)
}
if !(m.FromID == nil) {
m.Flags.Set(11)
}
if !(m.Peer == nil) {
m.Flags.Set(12)
}
if !(m.SavedID == 0) {
m.Flags.Set(12)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionStarGift) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionStarGift#4717e8a4 as nil")
}
b.PutID(MessageActionStarGiftTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionStarGift) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionStarGift#4717e8a4 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGift#4717e8a4: field flags: %w", err)
}
if m.Gift == nil {
return fmt.Errorf("unable to encode messageActionStarGift#4717e8a4: field gift is nil")
}
if err := m.Gift.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGift#4717e8a4: field gift: %w", err)
}
if m.Flags.Has(1) {
if err := m.Message.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGift#4717e8a4: field message: %w", err)
}
}
if m.Flags.Has(4) {
b.PutLong(m.ConvertStars)
}
if m.Flags.Has(5) {
b.PutInt(m.UpgradeMsgID)
}
if m.Flags.Has(8) {
b.PutLong(m.UpgradeStars)
}
if m.Flags.Has(11) {
if m.FromID == nil {
return fmt.Errorf("unable to encode messageActionStarGift#4717e8a4: field from_id is nil")
}
if err := m.FromID.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGift#4717e8a4: field from_id: %w", err)
}
}
if m.Flags.Has(12) {
if m.Peer == nil {
return fmt.Errorf("unable to encode messageActionStarGift#4717e8a4: field peer is nil")
}
if err := m.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGift#4717e8a4: field peer: %w", err)
}
}
if m.Flags.Has(12) {
b.PutLong(m.SavedID)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionStarGift) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionStarGift#4717e8a4 to nil")
}
if err := b.ConsumeID(MessageActionStarGiftTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionStarGift) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionStarGift#4717e8a4 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field flags: %w", err)
}
}
m.NameHidden = m.Flags.Has(0)
m.Saved = m.Flags.Has(2)
m.Converted = m.Flags.Has(3)
m.Upgraded = m.Flags.Has(5)
m.Refunded = m.Flags.Has(9)
m.CanUpgrade = m.Flags.Has(10)
{
value, err := DecodeStarGift(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field gift: %w", err)
}
m.Gift = value
}
if m.Flags.Has(1) {
if err := m.Message.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field message: %w", err)
}
}
if m.Flags.Has(4) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field convert_stars: %w", err)
}
m.ConvertStars = value
}
if m.Flags.Has(5) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field upgrade_msg_id: %w", err)
}
m.UpgradeMsgID = value
}
if m.Flags.Has(8) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field upgrade_stars: %w", err)
}
m.UpgradeStars = value
}
if m.Flags.Has(11) {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field from_id: %w", err)
}
m.FromID = value
}
if m.Flags.Has(12) {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field peer: %w", err)
}
m.Peer = value
}
if m.Flags.Has(12) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGift#4717e8a4: field saved_id: %w", err)
}
m.SavedID = value
}
return nil
}
// SetNameHidden sets value of NameHidden conditional field.
func (m *MessageActionStarGift) SetNameHidden(value bool) {
if value {
m.Flags.Set(0)
m.NameHidden = true
} else {
m.Flags.Unset(0)
m.NameHidden = false
}
}
// GetNameHidden returns value of NameHidden conditional field.
func (m *MessageActionStarGift) GetNameHidden() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// SetSaved sets value of Saved conditional field.
func (m *MessageActionStarGift) SetSaved(value bool) {
if value {
m.Flags.Set(2)
m.Saved = true
} else {
m.Flags.Unset(2)
m.Saved = false
}
}
// GetSaved returns value of Saved conditional field.
func (m *MessageActionStarGift) GetSaved() (value bool) {
if m == nil {
return
}
return m.Flags.Has(2)
}
// SetConverted sets value of Converted conditional field.
func (m *MessageActionStarGift) SetConverted(value bool) {
if value {
m.Flags.Set(3)
m.Converted = true
} else {
m.Flags.Unset(3)
m.Converted = false
}
}
// GetConverted returns value of Converted conditional field.
func (m *MessageActionStarGift) GetConverted() (value bool) {
if m == nil {
return
}
return m.Flags.Has(3)
}
// SetUpgraded sets value of Upgraded conditional field.
func (m *MessageActionStarGift) SetUpgraded(value bool) {
if value {
m.Flags.Set(5)
m.Upgraded = true
} else {
m.Flags.Unset(5)
m.Upgraded = false
}
}
// GetUpgraded returns value of Upgraded conditional field.
func (m *MessageActionStarGift) GetUpgraded() (value bool) {
if m == nil {
return
}
return m.Flags.Has(5)
}
// SetRefunded sets value of Refunded conditional field.
func (m *MessageActionStarGift) SetRefunded(value bool) {
if value {
m.Flags.Set(9)
m.Refunded = true
} else {
m.Flags.Unset(9)
m.Refunded = false
}
}
// GetRefunded returns value of Refunded conditional field.
func (m *MessageActionStarGift) GetRefunded() (value bool) {
if m == nil {
return
}
return m.Flags.Has(9)
}
// SetCanUpgrade sets value of CanUpgrade conditional field.
func (m *MessageActionStarGift) SetCanUpgrade(value bool) {
if value {
m.Flags.Set(10)
m.CanUpgrade = true
} else {
m.Flags.Unset(10)
m.CanUpgrade = false
}
}
// GetCanUpgrade returns value of CanUpgrade conditional field.
func (m *MessageActionStarGift) GetCanUpgrade() (value bool) {
if m == nil {
return
}
return m.Flags.Has(10)
}
// GetGift returns value of Gift field.
func (m *MessageActionStarGift) GetGift() (value StarGiftClass) {
if m == nil {
return
}
return m.Gift
}
// SetMessage sets value of Message conditional field.
func (m *MessageActionStarGift) SetMessage(value TextWithEntities) {
m.Flags.Set(1)
m.Message = value
}
// GetMessage returns value of Message conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGift) GetMessage() (value TextWithEntities, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(1) {
return value, false
}
return m.Message, true
}
// SetConvertStars sets value of ConvertStars conditional field.
func (m *MessageActionStarGift) SetConvertStars(value int64) {
m.Flags.Set(4)
m.ConvertStars = value
}
// GetConvertStars returns value of ConvertStars conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGift) GetConvertStars() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(4) {
return value, false
}
return m.ConvertStars, true
}
// SetUpgradeMsgID sets value of UpgradeMsgID conditional field.
func (m *MessageActionStarGift) SetUpgradeMsgID(value int) {
m.Flags.Set(5)
m.UpgradeMsgID = value
}
// GetUpgradeMsgID returns value of UpgradeMsgID conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGift) GetUpgradeMsgID() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(5) {
return value, false
}
return m.UpgradeMsgID, true
}
// SetUpgradeStars sets value of UpgradeStars conditional field.
func (m *MessageActionStarGift) SetUpgradeStars(value int64) {
m.Flags.Set(8)
m.UpgradeStars = value
}
// GetUpgradeStars returns value of UpgradeStars conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGift) GetUpgradeStars() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(8) {
return value, false
}
return m.UpgradeStars, true
}
// SetFromID sets value of FromID conditional field.
func (m *MessageActionStarGift) SetFromID(value PeerClass) {
m.Flags.Set(11)
m.FromID = value
}
// GetFromID returns value of FromID conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGift) GetFromID() (value PeerClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(11) {
return value, false
}
return m.FromID, true
}
// SetPeer sets value of Peer conditional field.
func (m *MessageActionStarGift) SetPeer(value PeerClass) {
m.Flags.Set(12)
m.Peer = value
}
// GetPeer returns value of Peer conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGift) GetPeer() (value PeerClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(12) {
return value, false
}
return m.Peer, true
}
// SetSavedID sets value of SavedID conditional field.
func (m *MessageActionStarGift) SetSavedID(value int64) {
m.Flags.Set(12)
m.SavedID = value
}
// GetSavedID returns value of SavedID conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGift) GetSavedID() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(12) {
return value, false
}
return m.SavedID, true
}
// MessageActionStarGiftUnique represents TL type `messageActionStarGiftUnique#2e3ae60e`.
//
// See https://core.telegram.org/constructor/messageActionStarGiftUnique for reference.
type MessageActionStarGiftUnique struct {
// Flags field of MessageActionStarGiftUnique.
Flags bin.Fields
// Upgrade field of MessageActionStarGiftUnique.
Upgrade bool
// Transferred field of MessageActionStarGiftUnique.
Transferred bool
// Saved field of MessageActionStarGiftUnique.
Saved bool
// Refunded field of MessageActionStarGiftUnique.
Refunded bool
// Gift field of MessageActionStarGiftUnique.
Gift StarGiftClass
// CanExportAt field of MessageActionStarGiftUnique.
//
// Use SetCanExportAt and GetCanExportAt helpers.
CanExportAt int
// TransferStars field of MessageActionStarGiftUnique.
//
// Use SetTransferStars and GetTransferStars helpers.
TransferStars int64
// FromID field of MessageActionStarGiftUnique.
//
// Use SetFromID and GetFromID helpers.
FromID PeerClass
// Peer field of MessageActionStarGiftUnique.
//
// Use SetPeer and GetPeer helpers.
Peer PeerClass
// SavedID field of MessageActionStarGiftUnique.
//
// Use SetSavedID and GetSavedID helpers.
SavedID int64
// ResaleStars field of MessageActionStarGiftUnique.
//
// Use SetResaleStars and GetResaleStars helpers.
ResaleStars int64
// CanTransferAt field of MessageActionStarGiftUnique.
//
// Use SetCanTransferAt and GetCanTransferAt helpers.
CanTransferAt int
// CanResellAt field of MessageActionStarGiftUnique.
//
// Use SetCanResellAt and GetCanResellAt helpers.
CanResellAt int
}
// MessageActionStarGiftUniqueTypeID is TL type id of MessageActionStarGiftUnique.
const MessageActionStarGiftUniqueTypeID = 0x2e3ae60e
// construct implements constructor of MessageActionClass.
func (m MessageActionStarGiftUnique) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionStarGiftUnique.
var (
_ bin.Encoder = &MessageActionStarGiftUnique{}
_ bin.Decoder = &MessageActionStarGiftUnique{}
_ bin.BareEncoder = &MessageActionStarGiftUnique{}
_ bin.BareDecoder = &MessageActionStarGiftUnique{}
_ MessageActionClass = &MessageActionStarGiftUnique{}
)
func (m *MessageActionStarGiftUnique) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Upgrade == false) {
return false
}
if !(m.Transferred == false) {
return false
}
if !(m.Saved == false) {
return false
}
if !(m.Refunded == false) {
return false
}
if !(m.Gift == nil) {
return false
}
if !(m.CanExportAt == 0) {
return false
}
if !(m.TransferStars == 0) {
return false
}
if !(m.FromID == nil) {
return false
}
if !(m.Peer == nil) {
return false
}
if !(m.SavedID == 0) {
return false
}
if !(m.ResaleStars == 0) {
return false
}
if !(m.CanTransferAt == 0) {
return false
}
if !(m.CanResellAt == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionStarGiftUnique) String() string {
if m == nil {
return "MessageActionStarGiftUnique(nil)"
}
type Alias MessageActionStarGiftUnique
return fmt.Sprintf("MessageActionStarGiftUnique%+v", Alias(*m))
}
// FillFrom fills MessageActionStarGiftUnique from given interface.
func (m *MessageActionStarGiftUnique) FillFrom(from interface {
GetUpgrade() (value bool)
GetTransferred() (value bool)
GetSaved() (value bool)
GetRefunded() (value bool)
GetGift() (value StarGiftClass)
GetCanExportAt() (value int, ok bool)
GetTransferStars() (value int64, ok bool)
GetFromID() (value PeerClass, ok bool)
GetPeer() (value PeerClass, ok bool)
GetSavedID() (value int64, ok bool)
GetResaleStars() (value int64, ok bool)
GetCanTransferAt() (value int, ok bool)
GetCanResellAt() (value int, ok bool)
}) {
m.Upgrade = from.GetUpgrade()
m.Transferred = from.GetTransferred()
m.Saved = from.GetSaved()
m.Refunded = from.GetRefunded()
m.Gift = from.GetGift()
if val, ok := from.GetCanExportAt(); ok {
m.CanExportAt = val
}
if val, ok := from.GetTransferStars(); ok {
m.TransferStars = val
}
if val, ok := from.GetFromID(); ok {
m.FromID = val
}
if val, ok := from.GetPeer(); ok {
m.Peer = val
}
if val, ok := from.GetSavedID(); ok {
m.SavedID = val
}
if val, ok := from.GetResaleStars(); ok {
m.ResaleStars = val
}
if val, ok := from.GetCanTransferAt(); ok {
m.CanTransferAt = val
}
if val, ok := from.GetCanResellAt(); ok {
m.CanResellAt = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionStarGiftUnique) TypeID() uint32 {
return MessageActionStarGiftUniqueTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionStarGiftUnique) TypeName() string {
return "messageActionStarGiftUnique"
}
// TypeInfo returns info about TL type.
func (m *MessageActionStarGiftUnique) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionStarGiftUnique",
ID: MessageActionStarGiftUniqueTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Upgrade",
SchemaName: "upgrade",
Null: !m.Flags.Has(0),
},
{
Name: "Transferred",
SchemaName: "transferred",
Null: !m.Flags.Has(1),
},
{
Name: "Saved",
SchemaName: "saved",
Null: !m.Flags.Has(2),
},
{
Name: "Refunded",
SchemaName: "refunded",
Null: !m.Flags.Has(5),
},
{
Name: "Gift",
SchemaName: "gift",
},
{
Name: "CanExportAt",
SchemaName: "can_export_at",
Null: !m.Flags.Has(3),
},
{
Name: "TransferStars",
SchemaName: "transfer_stars",
Null: !m.Flags.Has(4),
},
{
Name: "FromID",
SchemaName: "from_id",
Null: !m.Flags.Has(6),
},
{
Name: "Peer",
SchemaName: "peer",
Null: !m.Flags.Has(7),
},
{
Name: "SavedID",
SchemaName: "saved_id",
Null: !m.Flags.Has(7),
},
{
Name: "ResaleStars",
SchemaName: "resale_stars",
Null: !m.Flags.Has(8),
},
{
Name: "CanTransferAt",
SchemaName: "can_transfer_at",
Null: !m.Flags.Has(9),
},
{
Name: "CanResellAt",
SchemaName: "can_resell_at",
Null: !m.Flags.Has(10),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionStarGiftUnique) SetFlags() {
if !(m.Upgrade == false) {
m.Flags.Set(0)
}
if !(m.Transferred == false) {
m.Flags.Set(1)
}
if !(m.Saved == false) {
m.Flags.Set(2)
}
if !(m.Refunded == false) {
m.Flags.Set(5)
}
if !(m.CanExportAt == 0) {
m.Flags.Set(3)
}
if !(m.TransferStars == 0) {
m.Flags.Set(4)
}
if !(m.FromID == nil) {
m.Flags.Set(6)
}
if !(m.Peer == nil) {
m.Flags.Set(7)
}
if !(m.SavedID == 0) {
m.Flags.Set(7)
}
if !(m.ResaleStars == 0) {
m.Flags.Set(8)
}
if !(m.CanTransferAt == 0) {
m.Flags.Set(9)
}
if !(m.CanResellAt == 0) {
m.Flags.Set(10)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionStarGiftUnique) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionStarGiftUnique#2e3ae60e as nil")
}
b.PutID(MessageActionStarGiftUniqueTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionStarGiftUnique) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionStarGiftUnique#2e3ae60e as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGiftUnique#2e3ae60e: field flags: %w", err)
}
if m.Gift == nil {
return fmt.Errorf("unable to encode messageActionStarGiftUnique#2e3ae60e: field gift is nil")
}
if err := m.Gift.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGiftUnique#2e3ae60e: field gift: %w", err)
}
if m.Flags.Has(3) {
b.PutInt(m.CanExportAt)
}
if m.Flags.Has(4) {
b.PutLong(m.TransferStars)
}
if m.Flags.Has(6) {
if m.FromID == nil {
return fmt.Errorf("unable to encode messageActionStarGiftUnique#2e3ae60e: field from_id is nil")
}
if err := m.FromID.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGiftUnique#2e3ae60e: field from_id: %w", err)
}
}
if m.Flags.Has(7) {
if m.Peer == nil {
return fmt.Errorf("unable to encode messageActionStarGiftUnique#2e3ae60e: field peer is nil")
}
if err := m.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionStarGiftUnique#2e3ae60e: field peer: %w", err)
}
}
if m.Flags.Has(7) {
b.PutLong(m.SavedID)
}
if m.Flags.Has(8) {
b.PutLong(m.ResaleStars)
}
if m.Flags.Has(9) {
b.PutInt(m.CanTransferAt)
}
if m.Flags.Has(10) {
b.PutInt(m.CanResellAt)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionStarGiftUnique) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionStarGiftUnique#2e3ae60e to nil")
}
if err := b.ConsumeID(MessageActionStarGiftUniqueTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionStarGiftUnique) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionStarGiftUnique#2e3ae60e to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field flags: %w", err)
}
}
m.Upgrade = m.Flags.Has(0)
m.Transferred = m.Flags.Has(1)
m.Saved = m.Flags.Has(2)
m.Refunded = m.Flags.Has(5)
{
value, err := DecodeStarGift(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field gift: %w", err)
}
m.Gift = value
}
if m.Flags.Has(3) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field can_export_at: %w", err)
}
m.CanExportAt = value
}
if m.Flags.Has(4) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field transfer_stars: %w", err)
}
m.TransferStars = value
}
if m.Flags.Has(6) {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field from_id: %w", err)
}
m.FromID = value
}
if m.Flags.Has(7) {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field peer: %w", err)
}
m.Peer = value
}
if m.Flags.Has(7) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field saved_id: %w", err)
}
m.SavedID = value
}
if m.Flags.Has(8) {
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field resale_stars: %w", err)
}
m.ResaleStars = value
}
if m.Flags.Has(9) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field can_transfer_at: %w", err)
}
m.CanTransferAt = value
}
if m.Flags.Has(10) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionStarGiftUnique#2e3ae60e: field can_resell_at: %w", err)
}
m.CanResellAt = value
}
return nil
}
// SetUpgrade sets value of Upgrade conditional field.
func (m *MessageActionStarGiftUnique) SetUpgrade(value bool) {
if value {
m.Flags.Set(0)
m.Upgrade = true
} else {
m.Flags.Unset(0)
m.Upgrade = false
}
}
// GetUpgrade returns value of Upgrade conditional field.
func (m *MessageActionStarGiftUnique) GetUpgrade() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// SetTransferred sets value of Transferred conditional field.
func (m *MessageActionStarGiftUnique) SetTransferred(value bool) {
if value {
m.Flags.Set(1)
m.Transferred = true
} else {
m.Flags.Unset(1)
m.Transferred = false
}
}
// GetTransferred returns value of Transferred conditional field.
func (m *MessageActionStarGiftUnique) GetTransferred() (value bool) {
if m == nil {
return
}
return m.Flags.Has(1)
}
// SetSaved sets value of Saved conditional field.
func (m *MessageActionStarGiftUnique) SetSaved(value bool) {
if value {
m.Flags.Set(2)
m.Saved = true
} else {
m.Flags.Unset(2)
m.Saved = false
}
}
// GetSaved returns value of Saved conditional field.
func (m *MessageActionStarGiftUnique) GetSaved() (value bool) {
if m == nil {
return
}
return m.Flags.Has(2)
}
// SetRefunded sets value of Refunded conditional field.
func (m *MessageActionStarGiftUnique) SetRefunded(value bool) {
if value {
m.Flags.Set(5)
m.Refunded = true
} else {
m.Flags.Unset(5)
m.Refunded = false
}
}
// GetRefunded returns value of Refunded conditional field.
func (m *MessageActionStarGiftUnique) GetRefunded() (value bool) {
if m == nil {
return
}
return m.Flags.Has(5)
}
// GetGift returns value of Gift field.
func (m *MessageActionStarGiftUnique) GetGift() (value StarGiftClass) {
if m == nil {
return
}
return m.Gift
}
// SetCanExportAt sets value of CanExportAt conditional field.
func (m *MessageActionStarGiftUnique) SetCanExportAt(value int) {
m.Flags.Set(3)
m.CanExportAt = value
}
// GetCanExportAt returns value of CanExportAt conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGiftUnique) GetCanExportAt() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(3) {
return value, false
}
return m.CanExportAt, true
}
// SetTransferStars sets value of TransferStars conditional field.
func (m *MessageActionStarGiftUnique) SetTransferStars(value int64) {
m.Flags.Set(4)
m.TransferStars = value
}
// GetTransferStars returns value of TransferStars conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGiftUnique) GetTransferStars() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(4) {
return value, false
}
return m.TransferStars, true
}
// SetFromID sets value of FromID conditional field.
func (m *MessageActionStarGiftUnique) SetFromID(value PeerClass) {
m.Flags.Set(6)
m.FromID = value
}
// GetFromID returns value of FromID conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGiftUnique) GetFromID() (value PeerClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(6) {
return value, false
}
return m.FromID, true
}
// SetPeer sets value of Peer conditional field.
func (m *MessageActionStarGiftUnique) SetPeer(value PeerClass) {
m.Flags.Set(7)
m.Peer = value
}
// GetPeer returns value of Peer conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGiftUnique) GetPeer() (value PeerClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(7) {
return value, false
}
return m.Peer, true
}
// SetSavedID sets value of SavedID conditional field.
func (m *MessageActionStarGiftUnique) SetSavedID(value int64) {
m.Flags.Set(7)
m.SavedID = value
}
// GetSavedID returns value of SavedID conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGiftUnique) GetSavedID() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(7) {
return value, false
}
return m.SavedID, true
}
// SetResaleStars sets value of ResaleStars conditional field.
func (m *MessageActionStarGiftUnique) SetResaleStars(value int64) {
m.Flags.Set(8)
m.ResaleStars = value
}
// GetResaleStars returns value of ResaleStars conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGiftUnique) GetResaleStars() (value int64, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(8) {
return value, false
}
return m.ResaleStars, true
}
// SetCanTransferAt sets value of CanTransferAt conditional field.
func (m *MessageActionStarGiftUnique) SetCanTransferAt(value int) {
m.Flags.Set(9)
m.CanTransferAt = value
}
// GetCanTransferAt returns value of CanTransferAt conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGiftUnique) GetCanTransferAt() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(9) {
return value, false
}
return m.CanTransferAt, true
}
// SetCanResellAt sets value of CanResellAt conditional field.
func (m *MessageActionStarGiftUnique) SetCanResellAt(value int) {
m.Flags.Set(10)
m.CanResellAt = value
}
// GetCanResellAt returns value of CanResellAt conditional field and
// boolean which is true if field was set.
func (m *MessageActionStarGiftUnique) GetCanResellAt() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(10) {
return value, false
}
return m.CanResellAt, true
}
// MessageActionPaidMessagesRefunded represents TL type `messageActionPaidMessagesRefunded#ac1f1fcd`.
//
// See https://core.telegram.org/constructor/messageActionPaidMessagesRefunded for reference.
type MessageActionPaidMessagesRefunded struct {
// Count field of MessageActionPaidMessagesRefunded.
Count int
// Stars field of MessageActionPaidMessagesRefunded.
Stars int64
}
// MessageActionPaidMessagesRefundedTypeID is TL type id of MessageActionPaidMessagesRefunded.
const MessageActionPaidMessagesRefundedTypeID = 0xac1f1fcd
// construct implements constructor of MessageActionClass.
func (m MessageActionPaidMessagesRefunded) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPaidMessagesRefunded.
var (
_ bin.Encoder = &MessageActionPaidMessagesRefunded{}
_ bin.Decoder = &MessageActionPaidMessagesRefunded{}
_ bin.BareEncoder = &MessageActionPaidMessagesRefunded{}
_ bin.BareDecoder = &MessageActionPaidMessagesRefunded{}
_ MessageActionClass = &MessageActionPaidMessagesRefunded{}
)
func (m *MessageActionPaidMessagesRefunded) Zero() bool {
if m == nil {
return true
}
if !(m.Count == 0) {
return false
}
if !(m.Stars == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPaidMessagesRefunded) String() string {
if m == nil {
return "MessageActionPaidMessagesRefunded(nil)"
}
type Alias MessageActionPaidMessagesRefunded
return fmt.Sprintf("MessageActionPaidMessagesRefunded%+v", Alias(*m))
}
// FillFrom fills MessageActionPaidMessagesRefunded from given interface.
func (m *MessageActionPaidMessagesRefunded) FillFrom(from interface {
GetCount() (value int)
GetStars() (value int64)
}) {
m.Count = from.GetCount()
m.Stars = from.GetStars()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPaidMessagesRefunded) TypeID() uint32 {
return MessageActionPaidMessagesRefundedTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPaidMessagesRefunded) TypeName() string {
return "messageActionPaidMessagesRefunded"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPaidMessagesRefunded) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPaidMessagesRefunded",
ID: MessageActionPaidMessagesRefundedTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Count",
SchemaName: "count",
},
{
Name: "Stars",
SchemaName: "stars",
},
}
return typ
}
// Encode implements bin.Encoder.
func (m *MessageActionPaidMessagesRefunded) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaidMessagesRefunded#ac1f1fcd as nil")
}
b.PutID(MessageActionPaidMessagesRefundedTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPaidMessagesRefunded) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaidMessagesRefunded#ac1f1fcd as nil")
}
b.PutInt(m.Count)
b.PutLong(m.Stars)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPaidMessagesRefunded) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaidMessagesRefunded#ac1f1fcd to nil")
}
if err := b.ConsumeID(MessageActionPaidMessagesRefundedTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPaidMessagesRefunded#ac1f1fcd: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPaidMessagesRefunded) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaidMessagesRefunded#ac1f1fcd to nil")
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaidMessagesRefunded#ac1f1fcd: field count: %w", err)
}
m.Count = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaidMessagesRefunded#ac1f1fcd: field stars: %w", err)
}
m.Stars = value
}
return nil
}
// GetCount returns value of Count field.
func (m *MessageActionPaidMessagesRefunded) GetCount() (value int) {
if m == nil {
return
}
return m.Count
}
// GetStars returns value of Stars field.
func (m *MessageActionPaidMessagesRefunded) GetStars() (value int64) {
if m == nil {
return
}
return m.Stars
}
// MessageActionPaidMessagesPrice represents TL type `messageActionPaidMessagesPrice#84b88578`.
//
// See https://core.telegram.org/constructor/messageActionPaidMessagesPrice for reference.
type MessageActionPaidMessagesPrice struct {
// Flags field of MessageActionPaidMessagesPrice.
Flags bin.Fields
// BroadcastMessagesAllowed field of MessageActionPaidMessagesPrice.
BroadcastMessagesAllowed bool
// Stars field of MessageActionPaidMessagesPrice.
Stars int64
}
// MessageActionPaidMessagesPriceTypeID is TL type id of MessageActionPaidMessagesPrice.
const MessageActionPaidMessagesPriceTypeID = 0x84b88578
// construct implements constructor of MessageActionClass.
func (m MessageActionPaidMessagesPrice) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionPaidMessagesPrice.
var (
_ bin.Encoder = &MessageActionPaidMessagesPrice{}
_ bin.Decoder = &MessageActionPaidMessagesPrice{}
_ bin.BareEncoder = &MessageActionPaidMessagesPrice{}
_ bin.BareDecoder = &MessageActionPaidMessagesPrice{}
_ MessageActionClass = &MessageActionPaidMessagesPrice{}
)
func (m *MessageActionPaidMessagesPrice) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.BroadcastMessagesAllowed == false) {
return false
}
if !(m.Stars == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionPaidMessagesPrice) String() string {
if m == nil {
return "MessageActionPaidMessagesPrice(nil)"
}
type Alias MessageActionPaidMessagesPrice
return fmt.Sprintf("MessageActionPaidMessagesPrice%+v", Alias(*m))
}
// FillFrom fills MessageActionPaidMessagesPrice from given interface.
func (m *MessageActionPaidMessagesPrice) FillFrom(from interface {
GetBroadcastMessagesAllowed() (value bool)
GetStars() (value int64)
}) {
m.BroadcastMessagesAllowed = from.GetBroadcastMessagesAllowed()
m.Stars = from.GetStars()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionPaidMessagesPrice) TypeID() uint32 {
return MessageActionPaidMessagesPriceTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionPaidMessagesPrice) TypeName() string {
return "messageActionPaidMessagesPrice"
}
// TypeInfo returns info about TL type.
func (m *MessageActionPaidMessagesPrice) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionPaidMessagesPrice",
ID: MessageActionPaidMessagesPriceTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "BroadcastMessagesAllowed",
SchemaName: "broadcast_messages_allowed",
Null: !m.Flags.Has(0),
},
{
Name: "Stars",
SchemaName: "stars",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionPaidMessagesPrice) SetFlags() {
if !(m.BroadcastMessagesAllowed == false) {
m.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionPaidMessagesPrice) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaidMessagesPrice#84b88578 as nil")
}
b.PutID(MessageActionPaidMessagesPriceTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionPaidMessagesPrice) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionPaidMessagesPrice#84b88578 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionPaidMessagesPrice#84b88578: field flags: %w", err)
}
b.PutLong(m.Stars)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionPaidMessagesPrice) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaidMessagesPrice#84b88578 to nil")
}
if err := b.ConsumeID(MessageActionPaidMessagesPriceTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionPaidMessagesPrice#84b88578: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionPaidMessagesPrice) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionPaidMessagesPrice#84b88578 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionPaidMessagesPrice#84b88578: field flags: %w", err)
}
}
m.BroadcastMessagesAllowed = m.Flags.Has(0)
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionPaidMessagesPrice#84b88578: field stars: %w", err)
}
m.Stars = value
}
return nil
}
// SetBroadcastMessagesAllowed sets value of BroadcastMessagesAllowed conditional field.
func (m *MessageActionPaidMessagesPrice) SetBroadcastMessagesAllowed(value bool) {
if value {
m.Flags.Set(0)
m.BroadcastMessagesAllowed = true
} else {
m.Flags.Unset(0)
m.BroadcastMessagesAllowed = false
}
}
// GetBroadcastMessagesAllowed returns value of BroadcastMessagesAllowed conditional field.
func (m *MessageActionPaidMessagesPrice) GetBroadcastMessagesAllowed() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// GetStars returns value of Stars field.
func (m *MessageActionPaidMessagesPrice) GetStars() (value int64) {
if m == nil {
return
}
return m.Stars
}
// MessageActionConferenceCall represents TL type `messageActionConferenceCall#2ffe2f7a`.
//
// See https://core.telegram.org/constructor/messageActionConferenceCall for reference.
type MessageActionConferenceCall struct {
// Flags field of MessageActionConferenceCall.
Flags bin.Fields
// Missed field of MessageActionConferenceCall.
Missed bool
// Active field of MessageActionConferenceCall.
Active bool
// Video field of MessageActionConferenceCall.
Video bool
// CallID field of MessageActionConferenceCall.
CallID int64
// Duration field of MessageActionConferenceCall.
//
// Use SetDuration and GetDuration helpers.
Duration int
// OtherParticipants field of MessageActionConferenceCall.
//
// Use SetOtherParticipants and GetOtherParticipants helpers.
OtherParticipants []PeerClass
}
// MessageActionConferenceCallTypeID is TL type id of MessageActionConferenceCall.
const MessageActionConferenceCallTypeID = 0x2ffe2f7a
// construct implements constructor of MessageActionClass.
func (m MessageActionConferenceCall) construct() MessageActionClass { return &m }
// Ensuring interfaces in compile-time for MessageActionConferenceCall.
var (
_ bin.Encoder = &MessageActionConferenceCall{}
_ bin.Decoder = &MessageActionConferenceCall{}
_ bin.BareEncoder = &MessageActionConferenceCall{}
_ bin.BareDecoder = &MessageActionConferenceCall{}
_ MessageActionClass = &MessageActionConferenceCall{}
)
func (m *MessageActionConferenceCall) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Missed == false) {
return false
}
if !(m.Active == false) {
return false
}
if !(m.Video == false) {
return false
}
if !(m.CallID == 0) {
return false
}
if !(m.Duration == 0) {
return false
}
if !(m.OtherParticipants == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageActionConferenceCall) String() string {
if m == nil {
return "MessageActionConferenceCall(nil)"
}
type Alias MessageActionConferenceCall
return fmt.Sprintf("MessageActionConferenceCall%+v", Alias(*m))
}
// FillFrom fills MessageActionConferenceCall from given interface.
func (m *MessageActionConferenceCall) FillFrom(from interface {
GetMissed() (value bool)
GetActive() (value bool)
GetVideo() (value bool)
GetCallID() (value int64)
GetDuration() (value int, ok bool)
GetOtherParticipants() (value []PeerClass, ok bool)
}) {
m.Missed = from.GetMissed()
m.Active = from.GetActive()
m.Video = from.GetVideo()
m.CallID = from.GetCallID()
if val, ok := from.GetDuration(); ok {
m.Duration = val
}
if val, ok := from.GetOtherParticipants(); ok {
m.OtherParticipants = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageActionConferenceCall) TypeID() uint32 {
return MessageActionConferenceCallTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageActionConferenceCall) TypeName() string {
return "messageActionConferenceCall"
}
// TypeInfo returns info about TL type.
func (m *MessageActionConferenceCall) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageActionConferenceCall",
ID: MessageActionConferenceCallTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Missed",
SchemaName: "missed",
Null: !m.Flags.Has(0),
},
{
Name: "Active",
SchemaName: "active",
Null: !m.Flags.Has(1),
},
{
Name: "Video",
SchemaName: "video",
Null: !m.Flags.Has(4),
},
{
Name: "CallID",
SchemaName: "call_id",
},
{
Name: "Duration",
SchemaName: "duration",
Null: !m.Flags.Has(2),
},
{
Name: "OtherParticipants",
SchemaName: "other_participants",
Null: !m.Flags.Has(3),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageActionConferenceCall) SetFlags() {
if !(m.Missed == false) {
m.Flags.Set(0)
}
if !(m.Active == false) {
m.Flags.Set(1)
}
if !(m.Video == false) {
m.Flags.Set(4)
}
if !(m.Duration == 0) {
m.Flags.Set(2)
}
if !(m.OtherParticipants == nil) {
m.Flags.Set(3)
}
}
// Encode implements bin.Encoder.
func (m *MessageActionConferenceCall) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionConferenceCall#2ffe2f7a as nil")
}
b.PutID(MessageActionConferenceCallTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageActionConferenceCall) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageActionConferenceCall#2ffe2f7a as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionConferenceCall#2ffe2f7a: field flags: %w", err)
}
b.PutLong(m.CallID)
if m.Flags.Has(2) {
b.PutInt(m.Duration)
}
if m.Flags.Has(3) {
b.PutVectorHeader(len(m.OtherParticipants))
for idx, v := range m.OtherParticipants {
if v == nil {
return fmt.Errorf("unable to encode messageActionConferenceCall#2ffe2f7a: field other_participants element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageActionConferenceCall#2ffe2f7a: field other_participants element with index %d: %w", idx, err)
}
}
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageActionConferenceCall) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionConferenceCall#2ffe2f7a to nil")
}
if err := b.ConsumeID(MessageActionConferenceCallTypeID); err != nil {
return fmt.Errorf("unable to decode messageActionConferenceCall#2ffe2f7a: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageActionConferenceCall) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageActionConferenceCall#2ffe2f7a to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageActionConferenceCall#2ffe2f7a: field flags: %w", err)
}
}
m.Missed = m.Flags.Has(0)
m.Active = m.Flags.Has(1)
m.Video = m.Flags.Has(4)
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode messageActionConferenceCall#2ffe2f7a: field call_id: %w", err)
}
m.CallID = value
}
if m.Flags.Has(2) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageActionConferenceCall#2ffe2f7a: field duration: %w", err)
}
m.Duration = value
}
if m.Flags.Has(3) {
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageActionConferenceCall#2ffe2f7a: field other_participants: %w", err)
}
if headerLen > 0 {
m.OtherParticipants = make([]PeerClass, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageActionConferenceCall#2ffe2f7a: field other_participants: %w", err)
}
m.OtherParticipants = append(m.OtherParticipants, value)
}
}
return nil
}
// SetMissed sets value of Missed conditional field.
func (m *MessageActionConferenceCall) SetMissed(value bool) {
if value {
m.Flags.Set(0)
m.Missed = true
} else {
m.Flags.Unset(0)
m.Missed = false
}
}
// GetMissed returns value of Missed conditional field.
func (m *MessageActionConferenceCall) GetMissed() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// SetActive sets value of Active conditional field.
func (m *MessageActionConferenceCall) SetActive(value bool) {
if value {
m.Flags.Set(1)
m.Active = true
} else {
m.Flags.Unset(1)
m.Active = false
}
}
// GetActive returns value of Active conditional field.
func (m *MessageActionConferenceCall) GetActive() (value bool) {
if m == nil {
return
}
return m.Flags.Has(1)
}
// SetVideo sets value of Video conditional field.
func (m *MessageActionConferenceCall) SetVideo(value bool) {
if value {
m.Flags.Set(4)
m.Video = true
} else {
m.Flags.Unset(4)
m.Video = false
}
}
// GetVideo returns value of Video conditional field.
func (m *MessageActionConferenceCall) GetVideo() (value bool) {
if m == nil {
return
}
return m.Flags.Has(4)
}
// GetCallID returns value of CallID field.
func (m *MessageActionConferenceCall) GetCallID() (value int64) {
if m == nil {
return
}
return m.CallID
}
// SetDuration sets value of Duration conditional field.
func (m *MessageActionConferenceCall) SetDuration(value int) {
m.Flags.Set(2)
m.Duration = value
}
// GetDuration returns value of Duration conditional field and
// boolean which is true if field was set.
func (m *MessageActionConferenceCall) GetDuration() (value int, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(2) {
return value, false
}
return m.Duration, true
}
// SetOtherParticipants sets value of OtherParticipants conditional field.
func (m *MessageActionConferenceCall) SetOtherParticipants(value []PeerClass) {
m.Flags.Set(3)
m.OtherParticipants = value
}
// GetOtherParticipants returns value of OtherParticipants conditional field and
// boolean which is true if field was set.
func (m *MessageActionConferenceCall) GetOtherParticipants() (value []PeerClass, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(3) {
return value, false
}
return m.OtherParticipants, true
}
// MapOtherParticipants returns field OtherParticipants wrapped in PeerClassArray helper.
func (m *MessageActionConferenceCall) MapOtherParticipants() (value PeerClassArray, ok bool) {
if !m.Flags.Has(3) {
return value, false
}
return PeerClassArray(m.OtherParticipants), true
}
// MessageActionClassName is schema name of MessageActionClass.
const MessageActionClassName = "MessageAction"
// MessageActionClass represents MessageAction generic type.
//
// See https://core.telegram.org/type/MessageAction for reference.
//
// Example:
//
// g, err := tg.DecodeMessageAction(buf)
// if err != nil {
// panic(err)
// }
// switch v := g.(type) {
// case *tg.MessageActionEmpty: // messageActionEmpty#b6aef7b0
// case *tg.MessageActionChatCreate: // messageActionChatCreate#bd47cbad
// case *tg.MessageActionChatEditTitle: // messageActionChatEditTitle#b5a1ce5a
// case *tg.MessageActionChatEditPhoto: // messageActionChatEditPhoto#7fcb13a8
// case *tg.MessageActionChatDeletePhoto: // messageActionChatDeletePhoto#95e3fbef
// case *tg.MessageActionChatAddUser: // messageActionChatAddUser#15cefd00
// case *tg.MessageActionChatDeleteUser: // messageActionChatDeleteUser#a43f30cc
// case *tg.MessageActionChatJoinedByLink: // messageActionChatJoinedByLink#31224c3
// case *tg.MessageActionChannelCreate: // messageActionChannelCreate#95d2ac92
// case *tg.MessageActionChatMigrateTo: // messageActionChatMigrateTo#e1037f92
// case *tg.MessageActionChannelMigrateFrom: // messageActionChannelMigrateFrom#ea3948e9
// case *tg.MessageActionPinMessage: // messageActionPinMessage#94bd38ed
// case *tg.MessageActionHistoryClear: // messageActionHistoryClear#9fbab604
// case *tg.MessageActionGameScore: // messageActionGameScore#92a72876
// case *tg.MessageActionPaymentSentMe: // messageActionPaymentSentMe#ffa00ccc
// case *tg.MessageActionPaymentSent: // messageActionPaymentSent#c624b16e
// case *tg.MessageActionPhoneCall: // messageActionPhoneCall#80e11a7f
// case *tg.MessageActionScreenshotTaken: // messageActionScreenshotTaken#4792929b
// case *tg.MessageActionCustomAction: // messageActionCustomAction#fae69f56
// case *tg.MessageActionBotAllowed: // messageActionBotAllowed#c516d679
// case *tg.MessageActionSecureValuesSentMe: // messageActionSecureValuesSentMe#1b287353
// case *tg.MessageActionSecureValuesSent: // messageActionSecureValuesSent#d95c6154
// case *tg.MessageActionContactSignUp: // messageActionContactSignUp#f3f25f76
// case *tg.MessageActionGeoProximityReached: // messageActionGeoProximityReached#98e0d697
// case *tg.MessageActionGroupCall: // messageActionGroupCall#7a0d7f42
// case *tg.MessageActionInviteToGroupCall: // messageActionInviteToGroupCall#502f92f7
// case *tg.MessageActionSetMessagesTTL: // messageActionSetMessagesTTL#3c134d7b
// case *tg.MessageActionGroupCallScheduled: // messageActionGroupCallScheduled#b3a07661
// case *tg.MessageActionSetChatTheme: // messageActionSetChatTheme#aa786345
// case *tg.MessageActionChatJoinedByRequest: // messageActionChatJoinedByRequest#ebbca3cb
// case *tg.MessageActionWebViewDataSentMe: // messageActionWebViewDataSentMe#47dd8079
// case *tg.MessageActionWebViewDataSent: // messageActionWebViewDataSent#b4c38cb5
// case *tg.MessageActionGiftPremium: // messageActionGiftPremium#6c6274fa
// case *tg.MessageActionTopicCreate: // messageActionTopicCreate#d999256
// case *tg.MessageActionTopicEdit: // messageActionTopicEdit#c0944820
// case *tg.MessageActionSuggestProfilePhoto: // messageActionSuggestProfilePhoto#57de635e
// case *tg.MessageActionRequestedPeer: // messageActionRequestedPeer#31518e9b
// case *tg.MessageActionSetChatWallPaper: // messageActionSetChatWallPaper#5060a3f4
// case *tg.MessageActionGiftCode: // messageActionGiftCode#56d03994
// case *tg.MessageActionGiveawayLaunch: // messageActionGiveawayLaunch#a80f51e4
// case *tg.MessageActionGiveawayResults: // messageActionGiveawayResults#87e2f155
// case *tg.MessageActionBoostApply: // messageActionBoostApply#cc02aa6d
// case *tg.MessageActionRequestedPeerSentMe: // messageActionRequestedPeerSentMe#93b31848
// case *tg.MessageActionPaymentRefunded: // messageActionPaymentRefunded#41b3e202
// case *tg.MessageActionGiftStars: // messageActionGiftStars#45d5b021
// case *tg.MessageActionPrizeStars: // messageActionPrizeStars#b00c47a2
// case *tg.MessageActionStarGift: // messageActionStarGift#4717e8a4
// case *tg.MessageActionStarGiftUnique: // messageActionStarGiftUnique#2e3ae60e
// case *tg.MessageActionPaidMessagesRefunded: // messageActionPaidMessagesRefunded#ac1f1fcd
// case *tg.MessageActionPaidMessagesPrice: // messageActionPaidMessagesPrice#84b88578
// case *tg.MessageActionConferenceCall: // messageActionConferenceCall#2ffe2f7a
// default: panic(v)
// }
type MessageActionClass interface {
bin.Encoder
bin.Decoder
bin.BareEncoder
bin.BareDecoder
construct() MessageActionClass
// 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
}
// DecodeMessageAction implements binary de-serialization for MessageActionClass.
func DecodeMessageAction(buf *bin.Buffer) (MessageActionClass, error) {
id, err := buf.PeekID()
if err != nil {
return nil, err
}
switch id {
case MessageActionEmptyTypeID:
// Decoding messageActionEmpty#b6aef7b0.
v := MessageActionEmpty{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatCreateTypeID:
// Decoding messageActionChatCreate#bd47cbad.
v := MessageActionChatCreate{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatEditTitleTypeID:
// Decoding messageActionChatEditTitle#b5a1ce5a.
v := MessageActionChatEditTitle{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatEditPhotoTypeID:
// Decoding messageActionChatEditPhoto#7fcb13a8.
v := MessageActionChatEditPhoto{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatDeletePhotoTypeID:
// Decoding messageActionChatDeletePhoto#95e3fbef.
v := MessageActionChatDeletePhoto{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatAddUserTypeID:
// Decoding messageActionChatAddUser#15cefd00.
v := MessageActionChatAddUser{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatDeleteUserTypeID:
// Decoding messageActionChatDeleteUser#a43f30cc.
v := MessageActionChatDeleteUser{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatJoinedByLinkTypeID:
// Decoding messageActionChatJoinedByLink#31224c3.
v := MessageActionChatJoinedByLink{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChannelCreateTypeID:
// Decoding messageActionChannelCreate#95d2ac92.
v := MessageActionChannelCreate{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatMigrateToTypeID:
// Decoding messageActionChatMigrateTo#e1037f92.
v := MessageActionChatMigrateTo{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChannelMigrateFromTypeID:
// Decoding messageActionChannelMigrateFrom#ea3948e9.
v := MessageActionChannelMigrateFrom{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPinMessageTypeID:
// Decoding messageActionPinMessage#94bd38ed.
v := MessageActionPinMessage{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionHistoryClearTypeID:
// Decoding messageActionHistoryClear#9fbab604.
v := MessageActionHistoryClear{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGameScoreTypeID:
// Decoding messageActionGameScore#92a72876.
v := MessageActionGameScore{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPaymentSentMeTypeID:
// Decoding messageActionPaymentSentMe#ffa00ccc.
v := MessageActionPaymentSentMe{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPaymentSentTypeID:
// Decoding messageActionPaymentSent#c624b16e.
v := MessageActionPaymentSent{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPhoneCallTypeID:
// Decoding messageActionPhoneCall#80e11a7f.
v := MessageActionPhoneCall{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionScreenshotTakenTypeID:
// Decoding messageActionScreenshotTaken#4792929b.
v := MessageActionScreenshotTaken{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionCustomActionTypeID:
// Decoding messageActionCustomAction#fae69f56.
v := MessageActionCustomAction{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionBotAllowedTypeID:
// Decoding messageActionBotAllowed#c516d679.
v := MessageActionBotAllowed{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionSecureValuesSentMeTypeID:
// Decoding messageActionSecureValuesSentMe#1b287353.
v := MessageActionSecureValuesSentMe{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionSecureValuesSentTypeID:
// Decoding messageActionSecureValuesSent#d95c6154.
v := MessageActionSecureValuesSent{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionContactSignUpTypeID:
// Decoding messageActionContactSignUp#f3f25f76.
v := MessageActionContactSignUp{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGeoProximityReachedTypeID:
// Decoding messageActionGeoProximityReached#98e0d697.
v := MessageActionGeoProximityReached{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGroupCallTypeID:
// Decoding messageActionGroupCall#7a0d7f42.
v := MessageActionGroupCall{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionInviteToGroupCallTypeID:
// Decoding messageActionInviteToGroupCall#502f92f7.
v := MessageActionInviteToGroupCall{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionSetMessagesTTLTypeID:
// Decoding messageActionSetMessagesTTL#3c134d7b.
v := MessageActionSetMessagesTTL{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGroupCallScheduledTypeID:
// Decoding messageActionGroupCallScheduled#b3a07661.
v := MessageActionGroupCallScheduled{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionSetChatThemeTypeID:
// Decoding messageActionSetChatTheme#aa786345.
v := MessageActionSetChatTheme{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionChatJoinedByRequestTypeID:
// Decoding messageActionChatJoinedByRequest#ebbca3cb.
v := MessageActionChatJoinedByRequest{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionWebViewDataSentMeTypeID:
// Decoding messageActionWebViewDataSentMe#47dd8079.
v := MessageActionWebViewDataSentMe{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionWebViewDataSentTypeID:
// Decoding messageActionWebViewDataSent#b4c38cb5.
v := MessageActionWebViewDataSent{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGiftPremiumTypeID:
// Decoding messageActionGiftPremium#6c6274fa.
v := MessageActionGiftPremium{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionTopicCreateTypeID:
// Decoding messageActionTopicCreate#d999256.
v := MessageActionTopicCreate{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionTopicEditTypeID:
// Decoding messageActionTopicEdit#c0944820.
v := MessageActionTopicEdit{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionSuggestProfilePhotoTypeID:
// Decoding messageActionSuggestProfilePhoto#57de635e.
v := MessageActionSuggestProfilePhoto{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionRequestedPeerTypeID:
// Decoding messageActionRequestedPeer#31518e9b.
v := MessageActionRequestedPeer{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionSetChatWallPaperTypeID:
// Decoding messageActionSetChatWallPaper#5060a3f4.
v := MessageActionSetChatWallPaper{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGiftCodeTypeID:
// Decoding messageActionGiftCode#56d03994.
v := MessageActionGiftCode{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGiveawayLaunchTypeID:
// Decoding messageActionGiveawayLaunch#a80f51e4.
v := MessageActionGiveawayLaunch{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGiveawayResultsTypeID:
// Decoding messageActionGiveawayResults#87e2f155.
v := MessageActionGiveawayResults{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionBoostApplyTypeID:
// Decoding messageActionBoostApply#cc02aa6d.
v := MessageActionBoostApply{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionRequestedPeerSentMeTypeID:
// Decoding messageActionRequestedPeerSentMe#93b31848.
v := MessageActionRequestedPeerSentMe{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPaymentRefundedTypeID:
// Decoding messageActionPaymentRefunded#41b3e202.
v := MessageActionPaymentRefunded{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionGiftStarsTypeID:
// Decoding messageActionGiftStars#45d5b021.
v := MessageActionGiftStars{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPrizeStarsTypeID:
// Decoding messageActionPrizeStars#b00c47a2.
v := MessageActionPrizeStars{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionStarGiftTypeID:
// Decoding messageActionStarGift#4717e8a4.
v := MessageActionStarGift{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionStarGiftUniqueTypeID:
// Decoding messageActionStarGiftUnique#2e3ae60e.
v := MessageActionStarGiftUnique{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPaidMessagesRefundedTypeID:
// Decoding messageActionPaidMessagesRefunded#ac1f1fcd.
v := MessageActionPaidMessagesRefunded{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionPaidMessagesPriceTypeID:
// Decoding messageActionPaidMessagesPrice#84b88578.
v := MessageActionPaidMessagesPrice{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
case MessageActionConferenceCallTypeID:
// Decoding messageActionConferenceCall#2ffe2f7a.
v := MessageActionConferenceCall{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode MessageActionClass: %w", bin.NewUnexpectedID(id))
}
}
// MessageAction boxes the MessageActionClass providing a helper.
type MessageActionBox struct {
MessageAction MessageActionClass
}
// Decode implements bin.Decoder for MessageActionBox.
func (b *MessageActionBox) Decode(buf *bin.Buffer) error {
if b == nil {
return fmt.Errorf("unable to decode MessageActionBox to nil")
}
v, err := DecodeMessageAction(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.MessageAction = v
return nil
}
// Encode implements bin.Encode for MessageActionBox.
func (b *MessageActionBox) Encode(buf *bin.Buffer) error {
if b == nil || b.MessageAction == nil {
return fmt.Errorf("unable to encode MessageActionClass as nil")
}
return b.MessageAction.Encode(buf)
}