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

2222 lines
60 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{}
)
// InputInvoiceMessage represents TL type `inputInvoiceMessage#c5b56859`.
// An invoice contained in a messageMediaInvoice¹ message or paid media »².
//
// Links:
// 1. https://core.telegram.org/constructor/messageMediaInvoice
// 2. https://core.telegram.org/api/paid-media
//
// See https://core.telegram.org/constructor/inputInvoiceMessage for reference.
type InputInvoiceMessage struct {
// Chat where the invoice/paid media was sent
Peer InputPeerClass
// Message ID
MsgID int
}
// InputInvoiceMessageTypeID is TL type id of InputInvoiceMessage.
const InputInvoiceMessageTypeID = 0xc5b56859
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceMessage) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceMessage.
var (
_ bin.Encoder = &InputInvoiceMessage{}
_ bin.Decoder = &InputInvoiceMessage{}
_ bin.BareEncoder = &InputInvoiceMessage{}
_ bin.BareDecoder = &InputInvoiceMessage{}
_ InputInvoiceClass = &InputInvoiceMessage{}
)
func (i *InputInvoiceMessage) Zero() bool {
if i == nil {
return true
}
if !(i.Peer == nil) {
return false
}
if !(i.MsgID == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceMessage) String() string {
if i == nil {
return "InputInvoiceMessage(nil)"
}
type Alias InputInvoiceMessage
return fmt.Sprintf("InputInvoiceMessage%+v", Alias(*i))
}
// FillFrom fills InputInvoiceMessage from given interface.
func (i *InputInvoiceMessage) FillFrom(from interface {
GetPeer() (value InputPeerClass)
GetMsgID() (value int)
}) {
i.Peer = from.GetPeer()
i.MsgID = from.GetMsgID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceMessage) TypeID() uint32 {
return InputInvoiceMessageTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceMessage) TypeName() string {
return "inputInvoiceMessage"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceMessage) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceMessage",
ID: InputInvoiceMessageTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Peer",
SchemaName: "peer",
},
{
Name: "MsgID",
SchemaName: "msg_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputInvoiceMessage) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceMessage#c5b56859 as nil")
}
b.PutID(InputInvoiceMessageTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceMessage) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceMessage#c5b56859 as nil")
}
if i.Peer == nil {
return fmt.Errorf("unable to encode inputInvoiceMessage#c5b56859: field peer is nil")
}
if err := i.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceMessage#c5b56859: field peer: %w", err)
}
b.PutInt(i.MsgID)
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceMessage) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceMessage#c5b56859 to nil")
}
if err := b.ConsumeID(InputInvoiceMessageTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceMessage#c5b56859: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceMessage) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceMessage#c5b56859 to nil")
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceMessage#c5b56859: field peer: %w", err)
}
i.Peer = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceMessage#c5b56859: field msg_id: %w", err)
}
i.MsgID = value
}
return nil
}
// GetPeer returns value of Peer field.
func (i *InputInvoiceMessage) GetPeer() (value InputPeerClass) {
if i == nil {
return
}
return i.Peer
}
// GetMsgID returns value of MsgID field.
func (i *InputInvoiceMessage) GetMsgID() (value int) {
if i == nil {
return
}
return i.MsgID
}
// InputInvoiceSlug represents TL type `inputInvoiceSlug#c326caef`.
// 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
//
// See https://core.telegram.org/constructor/inputInvoiceSlug for reference.
type InputInvoiceSlug struct {
// The invoice slug
Slug string
}
// InputInvoiceSlugTypeID is TL type id of InputInvoiceSlug.
const InputInvoiceSlugTypeID = 0xc326caef
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceSlug) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceSlug.
var (
_ bin.Encoder = &InputInvoiceSlug{}
_ bin.Decoder = &InputInvoiceSlug{}
_ bin.BareEncoder = &InputInvoiceSlug{}
_ bin.BareDecoder = &InputInvoiceSlug{}
_ InputInvoiceClass = &InputInvoiceSlug{}
)
func (i *InputInvoiceSlug) Zero() bool {
if i == nil {
return true
}
if !(i.Slug == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceSlug) String() string {
if i == nil {
return "InputInvoiceSlug(nil)"
}
type Alias InputInvoiceSlug
return fmt.Sprintf("InputInvoiceSlug%+v", Alias(*i))
}
// FillFrom fills InputInvoiceSlug from given interface.
func (i *InputInvoiceSlug) FillFrom(from interface {
GetSlug() (value string)
}) {
i.Slug = from.GetSlug()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceSlug) TypeID() uint32 {
return InputInvoiceSlugTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceSlug) TypeName() string {
return "inputInvoiceSlug"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceSlug) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceSlug",
ID: InputInvoiceSlugTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Slug",
SchemaName: "slug",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputInvoiceSlug) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceSlug#c326caef as nil")
}
b.PutID(InputInvoiceSlugTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceSlug) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceSlug#c326caef as nil")
}
b.PutString(i.Slug)
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceSlug) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceSlug#c326caef to nil")
}
if err := b.ConsumeID(InputInvoiceSlugTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceSlug#c326caef: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceSlug) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceSlug#c326caef to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceSlug#c326caef: field slug: %w", err)
}
i.Slug = value
}
return nil
}
// GetSlug returns value of Slug field.
func (i *InputInvoiceSlug) GetSlug() (value string) {
if i == nil {
return
}
return i.Slug
}
// InputInvoicePremiumGiftCode represents TL type `inputInvoicePremiumGiftCode#98986c0d`.
// Used if the user wishes to start a channel/supergroup giveaway¹ or send some
// giftcodes² to members of a channel/supergroup, in exchange for boosts³.
//
// Links:
// 1. https://core.telegram.org/api/giveaways
// 2. https://core.telegram.org/api/giveaways
// 3. https://core.telegram.org/api/boost
//
// See https://core.telegram.org/constructor/inputInvoicePremiumGiftCode for reference.
type InputInvoicePremiumGiftCode struct {
// Should be populated with inputStorePaymentPremiumGiveaway¹ for giveaways² and
// inputStorePaymentPremiumGiftCode³ for gifts⁴.
//
// Links:
// 1) https://core.telegram.org/constructor/inputStorePaymentPremiumGiveaway
// 2) https://core.telegram.org/api/giveaways
// 3) https://core.telegram.org/constructor/inputStorePaymentPremiumGiftCode
// 4) https://core.telegram.org/api/giveaways
Purpose InputStorePaymentPurposeClass
// Should be populated with one of the giveaway options returned by payments
// getPremiumGiftCodeOptions¹, see the giveaways »² documentation for more info.
//
// Links:
// 1) https://core.telegram.org/method/payments.getPremiumGiftCodeOptions
// 2) https://core.telegram.org/api/giveaways
Option PremiumGiftCodeOption
}
// InputInvoicePremiumGiftCodeTypeID is TL type id of InputInvoicePremiumGiftCode.
const InputInvoicePremiumGiftCodeTypeID = 0x98986c0d
// construct implements constructor of InputInvoiceClass.
func (i InputInvoicePremiumGiftCode) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoicePremiumGiftCode.
var (
_ bin.Encoder = &InputInvoicePremiumGiftCode{}
_ bin.Decoder = &InputInvoicePremiumGiftCode{}
_ bin.BareEncoder = &InputInvoicePremiumGiftCode{}
_ bin.BareDecoder = &InputInvoicePremiumGiftCode{}
_ InputInvoiceClass = &InputInvoicePremiumGiftCode{}
)
func (i *InputInvoicePremiumGiftCode) Zero() bool {
if i == nil {
return true
}
if !(i.Purpose == nil) {
return false
}
if !(i.Option.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoicePremiumGiftCode) String() string {
if i == nil {
return "InputInvoicePremiumGiftCode(nil)"
}
type Alias InputInvoicePremiumGiftCode
return fmt.Sprintf("InputInvoicePremiumGiftCode%+v", Alias(*i))
}
// FillFrom fills InputInvoicePremiumGiftCode from given interface.
func (i *InputInvoicePremiumGiftCode) FillFrom(from interface {
GetPurpose() (value InputStorePaymentPurposeClass)
GetOption() (value PremiumGiftCodeOption)
}) {
i.Purpose = from.GetPurpose()
i.Option = from.GetOption()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoicePremiumGiftCode) TypeID() uint32 {
return InputInvoicePremiumGiftCodeTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoicePremiumGiftCode) TypeName() string {
return "inputInvoicePremiumGiftCode"
}
// TypeInfo returns info about TL type.
func (i *InputInvoicePremiumGiftCode) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoicePremiumGiftCode",
ID: InputInvoicePremiumGiftCodeTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Purpose",
SchemaName: "purpose",
},
{
Name: "Option",
SchemaName: "option",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputInvoicePremiumGiftCode) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoicePremiumGiftCode#98986c0d as nil")
}
b.PutID(InputInvoicePremiumGiftCodeTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoicePremiumGiftCode) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoicePremiumGiftCode#98986c0d as nil")
}
if i.Purpose == nil {
return fmt.Errorf("unable to encode inputInvoicePremiumGiftCode#98986c0d: field purpose is nil")
}
if err := i.Purpose.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoicePremiumGiftCode#98986c0d: field purpose: %w", err)
}
if err := i.Option.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoicePremiumGiftCode#98986c0d: field option: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoicePremiumGiftCode) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoicePremiumGiftCode#98986c0d to nil")
}
if err := b.ConsumeID(InputInvoicePremiumGiftCodeTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoicePremiumGiftCode#98986c0d: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoicePremiumGiftCode) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoicePremiumGiftCode#98986c0d to nil")
}
{
value, err := DecodeInputStorePaymentPurpose(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoicePremiumGiftCode#98986c0d: field purpose: %w", err)
}
i.Purpose = value
}
{
if err := i.Option.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputInvoicePremiumGiftCode#98986c0d: field option: %w", err)
}
}
return nil
}
// GetPurpose returns value of Purpose field.
func (i *InputInvoicePremiumGiftCode) GetPurpose() (value InputStorePaymentPurposeClass) {
if i == nil {
return
}
return i.Purpose
}
// GetOption returns value of Option field.
func (i *InputInvoicePremiumGiftCode) GetOption() (value PremiumGiftCodeOption) {
if i == nil {
return
}
return i.Option
}
// InputInvoiceStars represents TL type `inputInvoiceStars#65f00ce3`.
// Used to top up the Telegram Stars¹ balance of the current account or someone else's
// account, or to start 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/inputInvoiceStars for reference.
type InputInvoiceStars struct {
// An inputStorePaymentStarsGiveaway¹, inputStorePaymentStarsTopup² or
// inputStorePaymentStarsGift³.
//
// Links:
// 1) https://core.telegram.org/constructor/inputStorePaymentStarsGiveaway
// 2) https://core.telegram.org/constructor/inputStorePaymentStarsTopup
// 3) https://core.telegram.org/constructor/inputStorePaymentStarsGift
Purpose InputStorePaymentPurposeClass
}
// InputInvoiceStarsTypeID is TL type id of InputInvoiceStars.
const InputInvoiceStarsTypeID = 0x65f00ce3
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceStars) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceStars.
var (
_ bin.Encoder = &InputInvoiceStars{}
_ bin.Decoder = &InputInvoiceStars{}
_ bin.BareEncoder = &InputInvoiceStars{}
_ bin.BareDecoder = &InputInvoiceStars{}
_ InputInvoiceClass = &InputInvoiceStars{}
)
func (i *InputInvoiceStars) Zero() bool {
if i == nil {
return true
}
if !(i.Purpose == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceStars) String() string {
if i == nil {
return "InputInvoiceStars(nil)"
}
type Alias InputInvoiceStars
return fmt.Sprintf("InputInvoiceStars%+v", Alias(*i))
}
// FillFrom fills InputInvoiceStars from given interface.
func (i *InputInvoiceStars) FillFrom(from interface {
GetPurpose() (value InputStorePaymentPurposeClass)
}) {
i.Purpose = from.GetPurpose()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceStars) TypeID() uint32 {
return InputInvoiceStarsTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceStars) TypeName() string {
return "inputInvoiceStars"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceStars) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceStars",
ID: InputInvoiceStarsTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Purpose",
SchemaName: "purpose",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputInvoiceStars) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStars#65f00ce3 as nil")
}
b.PutID(InputInvoiceStarsTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceStars) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStars#65f00ce3 as nil")
}
if i.Purpose == nil {
return fmt.Errorf("unable to encode inputInvoiceStars#65f00ce3: field purpose is nil")
}
if err := i.Purpose.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStars#65f00ce3: field purpose: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceStars) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStars#65f00ce3 to nil")
}
if err := b.ConsumeID(InputInvoiceStarsTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceStars#65f00ce3: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceStars) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStars#65f00ce3 to nil")
}
{
value, err := DecodeInputStorePaymentPurpose(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceStars#65f00ce3: field purpose: %w", err)
}
i.Purpose = value
}
return nil
}
// GetPurpose returns value of Purpose field.
func (i *InputInvoiceStars) GetPurpose() (value InputStorePaymentPurposeClass) {
if i == nil {
return
}
return i.Purpose
}
// InputInvoiceChatInviteSubscription represents TL type `inputInvoiceChatInviteSubscription#34e793f1`.
// Used to pay for a Telegram Star subscription »¹.
//
// Links:
// 1. https://core.telegram.org/api/stars#star-subscriptions
//
// See https://core.telegram.org/constructor/inputInvoiceChatInviteSubscription for reference.
type InputInvoiceChatInviteSubscription struct {
// The invitation link of the Telegram Star subscription »¹
//
// Links:
// 1) https://core.telegram.org/api/stars#star-subscriptions
Hash string
}
// InputInvoiceChatInviteSubscriptionTypeID is TL type id of InputInvoiceChatInviteSubscription.
const InputInvoiceChatInviteSubscriptionTypeID = 0x34e793f1
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceChatInviteSubscription) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceChatInviteSubscription.
var (
_ bin.Encoder = &InputInvoiceChatInviteSubscription{}
_ bin.Decoder = &InputInvoiceChatInviteSubscription{}
_ bin.BareEncoder = &InputInvoiceChatInviteSubscription{}
_ bin.BareDecoder = &InputInvoiceChatInviteSubscription{}
_ InputInvoiceClass = &InputInvoiceChatInviteSubscription{}
)
func (i *InputInvoiceChatInviteSubscription) Zero() bool {
if i == nil {
return true
}
if !(i.Hash == "") {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceChatInviteSubscription) String() string {
if i == nil {
return "InputInvoiceChatInviteSubscription(nil)"
}
type Alias InputInvoiceChatInviteSubscription
return fmt.Sprintf("InputInvoiceChatInviteSubscription%+v", Alias(*i))
}
// FillFrom fills InputInvoiceChatInviteSubscription from given interface.
func (i *InputInvoiceChatInviteSubscription) FillFrom(from interface {
GetHash() (value string)
}) {
i.Hash = from.GetHash()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceChatInviteSubscription) TypeID() uint32 {
return InputInvoiceChatInviteSubscriptionTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceChatInviteSubscription) TypeName() string {
return "inputInvoiceChatInviteSubscription"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceChatInviteSubscription) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceChatInviteSubscription",
ID: InputInvoiceChatInviteSubscriptionTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Hash",
SchemaName: "hash",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputInvoiceChatInviteSubscription) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceChatInviteSubscription#34e793f1 as nil")
}
b.PutID(InputInvoiceChatInviteSubscriptionTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceChatInviteSubscription) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceChatInviteSubscription#34e793f1 as nil")
}
b.PutString(i.Hash)
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceChatInviteSubscription) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceChatInviteSubscription#34e793f1 to nil")
}
if err := b.ConsumeID(InputInvoiceChatInviteSubscriptionTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceChatInviteSubscription#34e793f1: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceChatInviteSubscription) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceChatInviteSubscription#34e793f1 to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceChatInviteSubscription#34e793f1: field hash: %w", err)
}
i.Hash = value
}
return nil
}
// GetHash returns value of Hash field.
func (i *InputInvoiceChatInviteSubscription) GetHash() (value string) {
if i == nil {
return
}
return i.Hash
}
// InputInvoiceStarGift represents TL type `inputInvoiceStarGift#e8625e92`.
// Used to buy a Telegram Star Gift, see here »¹ for more info.
//
// Links:
// 1. https://core.telegram.org/api/gifts
//
// See https://core.telegram.org/constructor/inputInvoiceStarGift for reference.
type InputInvoiceStarGift struct {
// Flags, see TL conditional fields¹
//
// Links:
// 1) https://core.telegram.org/mtproto/TL-combinators#conditional-fields
Flags bin.Fields
// If set, your name will be hidden if the destination user decides to display the gift
// on their profile (they will still see that you sent the gift)
HideName bool
// IncludeUpgrade field of InputInvoiceStarGift.
IncludeUpgrade bool
// Peer field of InputInvoiceStarGift.
Peer InputPeerClass
// Identifier of the gift, from starGift¹.id
//
// Links:
// 1) https://core.telegram.org/constructor/starGift
GiftID int64
// Optional message, attached with the gift
//
// Use SetMessage and GetMessage helpers.
Message TextWithEntities
}
// InputInvoiceStarGiftTypeID is TL type id of InputInvoiceStarGift.
const InputInvoiceStarGiftTypeID = 0xe8625e92
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceStarGift) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceStarGift.
var (
_ bin.Encoder = &InputInvoiceStarGift{}
_ bin.Decoder = &InputInvoiceStarGift{}
_ bin.BareEncoder = &InputInvoiceStarGift{}
_ bin.BareDecoder = &InputInvoiceStarGift{}
_ InputInvoiceClass = &InputInvoiceStarGift{}
)
func (i *InputInvoiceStarGift) Zero() bool {
if i == nil {
return true
}
if !(i.Flags.Zero()) {
return false
}
if !(i.HideName == false) {
return false
}
if !(i.IncludeUpgrade == false) {
return false
}
if !(i.Peer == nil) {
return false
}
if !(i.GiftID == 0) {
return false
}
if !(i.Message.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceStarGift) String() string {
if i == nil {
return "InputInvoiceStarGift(nil)"
}
type Alias InputInvoiceStarGift
return fmt.Sprintf("InputInvoiceStarGift%+v", Alias(*i))
}
// FillFrom fills InputInvoiceStarGift from given interface.
func (i *InputInvoiceStarGift) FillFrom(from interface {
GetHideName() (value bool)
GetIncludeUpgrade() (value bool)
GetPeer() (value InputPeerClass)
GetGiftID() (value int64)
GetMessage() (value TextWithEntities, ok bool)
}) {
i.HideName = from.GetHideName()
i.IncludeUpgrade = from.GetIncludeUpgrade()
i.Peer = from.GetPeer()
i.GiftID = from.GetGiftID()
if val, ok := from.GetMessage(); ok {
i.Message = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceStarGift) TypeID() uint32 {
return InputInvoiceStarGiftTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceStarGift) TypeName() string {
return "inputInvoiceStarGift"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceStarGift) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceStarGift",
ID: InputInvoiceStarGiftTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "HideName",
SchemaName: "hide_name",
Null: !i.Flags.Has(0),
},
{
Name: "IncludeUpgrade",
SchemaName: "include_upgrade",
Null: !i.Flags.Has(2),
},
{
Name: "Peer",
SchemaName: "peer",
},
{
Name: "GiftID",
SchemaName: "gift_id",
},
{
Name: "Message",
SchemaName: "message",
Null: !i.Flags.Has(1),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (i *InputInvoiceStarGift) SetFlags() {
if !(i.HideName == false) {
i.Flags.Set(0)
}
if !(i.IncludeUpgrade == false) {
i.Flags.Set(2)
}
if !(i.Message.Zero()) {
i.Flags.Set(1)
}
}
// Encode implements bin.Encoder.
func (i *InputInvoiceStarGift) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStarGift#e8625e92 as nil")
}
b.PutID(InputInvoiceStarGiftTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceStarGift) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStarGift#e8625e92 as nil")
}
i.SetFlags()
if err := i.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStarGift#e8625e92: field flags: %w", err)
}
if i.Peer == nil {
return fmt.Errorf("unable to encode inputInvoiceStarGift#e8625e92: field peer is nil")
}
if err := i.Peer.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStarGift#e8625e92: field peer: %w", err)
}
b.PutLong(i.GiftID)
if i.Flags.Has(1) {
if err := i.Message.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStarGift#e8625e92: field message: %w", err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceStarGift) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStarGift#e8625e92 to nil")
}
if err := b.ConsumeID(InputInvoiceStarGiftTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGift#e8625e92: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceStarGift) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStarGift#e8625e92 to nil")
}
{
if err := i.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGift#e8625e92: field flags: %w", err)
}
}
i.HideName = i.Flags.Has(0)
i.IncludeUpgrade = i.Flags.Has(2)
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGift#e8625e92: field peer: %w", err)
}
i.Peer = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGift#e8625e92: field gift_id: %w", err)
}
i.GiftID = value
}
if i.Flags.Has(1) {
if err := i.Message.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGift#e8625e92: field message: %w", err)
}
}
return nil
}
// SetHideName sets value of HideName conditional field.
func (i *InputInvoiceStarGift) SetHideName(value bool) {
if value {
i.Flags.Set(0)
i.HideName = true
} else {
i.Flags.Unset(0)
i.HideName = false
}
}
// GetHideName returns value of HideName conditional field.
func (i *InputInvoiceStarGift) GetHideName() (value bool) {
if i == nil {
return
}
return i.Flags.Has(0)
}
// SetIncludeUpgrade sets value of IncludeUpgrade conditional field.
func (i *InputInvoiceStarGift) SetIncludeUpgrade(value bool) {
if value {
i.Flags.Set(2)
i.IncludeUpgrade = true
} else {
i.Flags.Unset(2)
i.IncludeUpgrade = false
}
}
// GetIncludeUpgrade returns value of IncludeUpgrade conditional field.
func (i *InputInvoiceStarGift) GetIncludeUpgrade() (value bool) {
if i == nil {
return
}
return i.Flags.Has(2)
}
// GetPeer returns value of Peer field.
func (i *InputInvoiceStarGift) GetPeer() (value InputPeerClass) {
if i == nil {
return
}
return i.Peer
}
// GetGiftID returns value of GiftID field.
func (i *InputInvoiceStarGift) GetGiftID() (value int64) {
if i == nil {
return
}
return i.GiftID
}
// SetMessage sets value of Message conditional field.
func (i *InputInvoiceStarGift) SetMessage(value TextWithEntities) {
i.Flags.Set(1)
i.Message = value
}
// GetMessage returns value of Message conditional field and
// boolean which is true if field was set.
func (i *InputInvoiceStarGift) GetMessage() (value TextWithEntities, ok bool) {
if i == nil {
return
}
if !i.Flags.Has(1) {
return value, false
}
return i.Message, true
}
// InputInvoiceStarGiftUpgrade represents TL type `inputInvoiceStarGiftUpgrade#4d818d5d`.
//
// See https://core.telegram.org/constructor/inputInvoiceStarGiftUpgrade for reference.
type InputInvoiceStarGiftUpgrade struct {
// Flags field of InputInvoiceStarGiftUpgrade.
Flags bin.Fields
// KeepOriginalDetails field of InputInvoiceStarGiftUpgrade.
KeepOriginalDetails bool
// Stargift field of InputInvoiceStarGiftUpgrade.
Stargift InputSavedStarGiftClass
}
// InputInvoiceStarGiftUpgradeTypeID is TL type id of InputInvoiceStarGiftUpgrade.
const InputInvoiceStarGiftUpgradeTypeID = 0x4d818d5d
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceStarGiftUpgrade) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceStarGiftUpgrade.
var (
_ bin.Encoder = &InputInvoiceStarGiftUpgrade{}
_ bin.Decoder = &InputInvoiceStarGiftUpgrade{}
_ bin.BareEncoder = &InputInvoiceStarGiftUpgrade{}
_ bin.BareDecoder = &InputInvoiceStarGiftUpgrade{}
_ InputInvoiceClass = &InputInvoiceStarGiftUpgrade{}
)
func (i *InputInvoiceStarGiftUpgrade) Zero() bool {
if i == nil {
return true
}
if !(i.Flags.Zero()) {
return false
}
if !(i.KeepOriginalDetails == false) {
return false
}
if !(i.Stargift == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceStarGiftUpgrade) String() string {
if i == nil {
return "InputInvoiceStarGiftUpgrade(nil)"
}
type Alias InputInvoiceStarGiftUpgrade
return fmt.Sprintf("InputInvoiceStarGiftUpgrade%+v", Alias(*i))
}
// FillFrom fills InputInvoiceStarGiftUpgrade from given interface.
func (i *InputInvoiceStarGiftUpgrade) FillFrom(from interface {
GetKeepOriginalDetails() (value bool)
GetStargift() (value InputSavedStarGiftClass)
}) {
i.KeepOriginalDetails = from.GetKeepOriginalDetails()
i.Stargift = from.GetStargift()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceStarGiftUpgrade) TypeID() uint32 {
return InputInvoiceStarGiftUpgradeTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceStarGiftUpgrade) TypeName() string {
return "inputInvoiceStarGiftUpgrade"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceStarGiftUpgrade) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceStarGiftUpgrade",
ID: InputInvoiceStarGiftUpgradeTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "KeepOriginalDetails",
SchemaName: "keep_original_details",
Null: !i.Flags.Has(0),
},
{
Name: "Stargift",
SchemaName: "stargift",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (i *InputInvoiceStarGiftUpgrade) SetFlags() {
if !(i.KeepOriginalDetails == false) {
i.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (i *InputInvoiceStarGiftUpgrade) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStarGiftUpgrade#4d818d5d as nil")
}
b.PutID(InputInvoiceStarGiftUpgradeTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceStarGiftUpgrade) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStarGiftUpgrade#4d818d5d as nil")
}
i.SetFlags()
if err := i.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftUpgrade#4d818d5d: field flags: %w", err)
}
if i.Stargift == nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftUpgrade#4d818d5d: field stargift is nil")
}
if err := i.Stargift.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftUpgrade#4d818d5d: field stargift: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceStarGiftUpgrade) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStarGiftUpgrade#4d818d5d to nil")
}
if err := b.ConsumeID(InputInvoiceStarGiftUpgradeTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftUpgrade#4d818d5d: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceStarGiftUpgrade) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStarGiftUpgrade#4d818d5d to nil")
}
{
if err := i.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftUpgrade#4d818d5d: field flags: %w", err)
}
}
i.KeepOriginalDetails = i.Flags.Has(0)
{
value, err := DecodeInputSavedStarGift(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftUpgrade#4d818d5d: field stargift: %w", err)
}
i.Stargift = value
}
return nil
}
// SetKeepOriginalDetails sets value of KeepOriginalDetails conditional field.
func (i *InputInvoiceStarGiftUpgrade) SetKeepOriginalDetails(value bool) {
if value {
i.Flags.Set(0)
i.KeepOriginalDetails = true
} else {
i.Flags.Unset(0)
i.KeepOriginalDetails = false
}
}
// GetKeepOriginalDetails returns value of KeepOriginalDetails conditional field.
func (i *InputInvoiceStarGiftUpgrade) GetKeepOriginalDetails() (value bool) {
if i == nil {
return
}
return i.Flags.Has(0)
}
// GetStargift returns value of Stargift field.
func (i *InputInvoiceStarGiftUpgrade) GetStargift() (value InputSavedStarGiftClass) {
if i == nil {
return
}
return i.Stargift
}
// InputInvoiceStarGiftTransfer represents TL type `inputInvoiceStarGiftTransfer#4a5f5bd9`.
//
// See https://core.telegram.org/constructor/inputInvoiceStarGiftTransfer for reference.
type InputInvoiceStarGiftTransfer struct {
// Stargift field of InputInvoiceStarGiftTransfer.
Stargift InputSavedStarGiftClass
// ToID field of InputInvoiceStarGiftTransfer.
ToID InputPeerClass
}
// InputInvoiceStarGiftTransferTypeID is TL type id of InputInvoiceStarGiftTransfer.
const InputInvoiceStarGiftTransferTypeID = 0x4a5f5bd9
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceStarGiftTransfer) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceStarGiftTransfer.
var (
_ bin.Encoder = &InputInvoiceStarGiftTransfer{}
_ bin.Decoder = &InputInvoiceStarGiftTransfer{}
_ bin.BareEncoder = &InputInvoiceStarGiftTransfer{}
_ bin.BareDecoder = &InputInvoiceStarGiftTransfer{}
_ InputInvoiceClass = &InputInvoiceStarGiftTransfer{}
)
func (i *InputInvoiceStarGiftTransfer) Zero() bool {
if i == nil {
return true
}
if !(i.Stargift == nil) {
return false
}
if !(i.ToID == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceStarGiftTransfer) String() string {
if i == nil {
return "InputInvoiceStarGiftTransfer(nil)"
}
type Alias InputInvoiceStarGiftTransfer
return fmt.Sprintf("InputInvoiceStarGiftTransfer%+v", Alias(*i))
}
// FillFrom fills InputInvoiceStarGiftTransfer from given interface.
func (i *InputInvoiceStarGiftTransfer) FillFrom(from interface {
GetStargift() (value InputSavedStarGiftClass)
GetToID() (value InputPeerClass)
}) {
i.Stargift = from.GetStargift()
i.ToID = from.GetToID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceStarGiftTransfer) TypeID() uint32 {
return InputInvoiceStarGiftTransferTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceStarGiftTransfer) TypeName() string {
return "inputInvoiceStarGiftTransfer"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceStarGiftTransfer) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceStarGiftTransfer",
ID: InputInvoiceStarGiftTransferTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Stargift",
SchemaName: "stargift",
},
{
Name: "ToID",
SchemaName: "to_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputInvoiceStarGiftTransfer) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStarGiftTransfer#4a5f5bd9 as nil")
}
b.PutID(InputInvoiceStarGiftTransferTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceStarGiftTransfer) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStarGiftTransfer#4a5f5bd9 as nil")
}
if i.Stargift == nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftTransfer#4a5f5bd9: field stargift is nil")
}
if err := i.Stargift.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftTransfer#4a5f5bd9: field stargift: %w", err)
}
if i.ToID == nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftTransfer#4a5f5bd9: field to_id is nil")
}
if err := i.ToID.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftTransfer#4a5f5bd9: field to_id: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceStarGiftTransfer) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStarGiftTransfer#4a5f5bd9 to nil")
}
if err := b.ConsumeID(InputInvoiceStarGiftTransferTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftTransfer#4a5f5bd9: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceStarGiftTransfer) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStarGiftTransfer#4a5f5bd9 to nil")
}
{
value, err := DecodeInputSavedStarGift(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftTransfer#4a5f5bd9: field stargift: %w", err)
}
i.Stargift = value
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftTransfer#4a5f5bd9: field to_id: %w", err)
}
i.ToID = value
}
return nil
}
// GetStargift returns value of Stargift field.
func (i *InputInvoiceStarGiftTransfer) GetStargift() (value InputSavedStarGiftClass) {
if i == nil {
return
}
return i.Stargift
}
// GetToID returns value of ToID field.
func (i *InputInvoiceStarGiftTransfer) GetToID() (value InputPeerClass) {
if i == nil {
return
}
return i.ToID
}
// InputInvoicePremiumGiftStars represents TL type `inputInvoicePremiumGiftStars#dabab2ef`.
//
// See https://core.telegram.org/constructor/inputInvoicePremiumGiftStars for reference.
type InputInvoicePremiumGiftStars struct {
// Flags field of InputInvoicePremiumGiftStars.
Flags bin.Fields
// UserID field of InputInvoicePremiumGiftStars.
UserID InputUserClass
// Months field of InputInvoicePremiumGiftStars.
Months int
// Message field of InputInvoicePremiumGiftStars.
//
// Use SetMessage and GetMessage helpers.
Message TextWithEntities
}
// InputInvoicePremiumGiftStarsTypeID is TL type id of InputInvoicePremiumGiftStars.
const InputInvoicePremiumGiftStarsTypeID = 0xdabab2ef
// construct implements constructor of InputInvoiceClass.
func (i InputInvoicePremiumGiftStars) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoicePremiumGiftStars.
var (
_ bin.Encoder = &InputInvoicePremiumGiftStars{}
_ bin.Decoder = &InputInvoicePremiumGiftStars{}
_ bin.BareEncoder = &InputInvoicePremiumGiftStars{}
_ bin.BareDecoder = &InputInvoicePremiumGiftStars{}
_ InputInvoiceClass = &InputInvoicePremiumGiftStars{}
)
func (i *InputInvoicePremiumGiftStars) Zero() bool {
if i == nil {
return true
}
if !(i.Flags.Zero()) {
return false
}
if !(i.UserID == nil) {
return false
}
if !(i.Months == 0) {
return false
}
if !(i.Message.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoicePremiumGiftStars) String() string {
if i == nil {
return "InputInvoicePremiumGiftStars(nil)"
}
type Alias InputInvoicePremiumGiftStars
return fmt.Sprintf("InputInvoicePremiumGiftStars%+v", Alias(*i))
}
// FillFrom fills InputInvoicePremiumGiftStars from given interface.
func (i *InputInvoicePremiumGiftStars) FillFrom(from interface {
GetUserID() (value InputUserClass)
GetMonths() (value int)
GetMessage() (value TextWithEntities, ok bool)
}) {
i.UserID = from.GetUserID()
i.Months = from.GetMonths()
if val, ok := from.GetMessage(); ok {
i.Message = val
}
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoicePremiumGiftStars) TypeID() uint32 {
return InputInvoicePremiumGiftStarsTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoicePremiumGiftStars) TypeName() string {
return "inputInvoicePremiumGiftStars"
}
// TypeInfo returns info about TL type.
func (i *InputInvoicePremiumGiftStars) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoicePremiumGiftStars",
ID: InputInvoicePremiumGiftStarsTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "UserID",
SchemaName: "user_id",
},
{
Name: "Months",
SchemaName: "months",
},
{
Name: "Message",
SchemaName: "message",
Null: !i.Flags.Has(0),
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (i *InputInvoicePremiumGiftStars) SetFlags() {
if !(i.Message.Zero()) {
i.Flags.Set(0)
}
}
// Encode implements bin.Encoder.
func (i *InputInvoicePremiumGiftStars) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoicePremiumGiftStars#dabab2ef as nil")
}
b.PutID(InputInvoicePremiumGiftStarsTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoicePremiumGiftStars) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoicePremiumGiftStars#dabab2ef as nil")
}
i.SetFlags()
if err := i.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoicePremiumGiftStars#dabab2ef: field flags: %w", err)
}
if i.UserID == nil {
return fmt.Errorf("unable to encode inputInvoicePremiumGiftStars#dabab2ef: field user_id is nil")
}
if err := i.UserID.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoicePremiumGiftStars#dabab2ef: field user_id: %w", err)
}
b.PutInt(i.Months)
if i.Flags.Has(0) {
if err := i.Message.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoicePremiumGiftStars#dabab2ef: field message: %w", err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoicePremiumGiftStars) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoicePremiumGiftStars#dabab2ef to nil")
}
if err := b.ConsumeID(InputInvoicePremiumGiftStarsTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoicePremiumGiftStars#dabab2ef: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoicePremiumGiftStars) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoicePremiumGiftStars#dabab2ef to nil")
}
{
if err := i.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputInvoicePremiumGiftStars#dabab2ef: field flags: %w", err)
}
}
{
value, err := DecodeInputUser(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoicePremiumGiftStars#dabab2ef: field user_id: %w", err)
}
i.UserID = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode inputInvoicePremiumGiftStars#dabab2ef: field months: %w", err)
}
i.Months = value
}
if i.Flags.Has(0) {
if err := i.Message.Decode(b); err != nil {
return fmt.Errorf("unable to decode inputInvoicePremiumGiftStars#dabab2ef: field message: %w", err)
}
}
return nil
}
// GetUserID returns value of UserID field.
func (i *InputInvoicePremiumGiftStars) GetUserID() (value InputUserClass) {
if i == nil {
return
}
return i.UserID
}
// GetMonths returns value of Months field.
func (i *InputInvoicePremiumGiftStars) GetMonths() (value int) {
if i == nil {
return
}
return i.Months
}
// SetMessage sets value of Message conditional field.
func (i *InputInvoicePremiumGiftStars) SetMessage(value TextWithEntities) {
i.Flags.Set(0)
i.Message = value
}
// GetMessage returns value of Message conditional field and
// boolean which is true if field was set.
func (i *InputInvoicePremiumGiftStars) GetMessage() (value TextWithEntities, ok bool) {
if i == nil {
return
}
if !i.Flags.Has(0) {
return value, false
}
return i.Message, true
}
// InputInvoiceBusinessBotTransferStars represents TL type `inputInvoiceBusinessBotTransferStars#f4997e42`.
//
// See https://core.telegram.org/constructor/inputInvoiceBusinessBotTransferStars for reference.
type InputInvoiceBusinessBotTransferStars struct {
// Bot field of InputInvoiceBusinessBotTransferStars.
Bot InputUserClass
// Stars field of InputInvoiceBusinessBotTransferStars.
Stars int64
}
// InputInvoiceBusinessBotTransferStarsTypeID is TL type id of InputInvoiceBusinessBotTransferStars.
const InputInvoiceBusinessBotTransferStarsTypeID = 0xf4997e42
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceBusinessBotTransferStars) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceBusinessBotTransferStars.
var (
_ bin.Encoder = &InputInvoiceBusinessBotTransferStars{}
_ bin.Decoder = &InputInvoiceBusinessBotTransferStars{}
_ bin.BareEncoder = &InputInvoiceBusinessBotTransferStars{}
_ bin.BareDecoder = &InputInvoiceBusinessBotTransferStars{}
_ InputInvoiceClass = &InputInvoiceBusinessBotTransferStars{}
)
func (i *InputInvoiceBusinessBotTransferStars) Zero() bool {
if i == nil {
return true
}
if !(i.Bot == nil) {
return false
}
if !(i.Stars == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceBusinessBotTransferStars) String() string {
if i == nil {
return "InputInvoiceBusinessBotTransferStars(nil)"
}
type Alias InputInvoiceBusinessBotTransferStars
return fmt.Sprintf("InputInvoiceBusinessBotTransferStars%+v", Alias(*i))
}
// FillFrom fills InputInvoiceBusinessBotTransferStars from given interface.
func (i *InputInvoiceBusinessBotTransferStars) FillFrom(from interface {
GetBot() (value InputUserClass)
GetStars() (value int64)
}) {
i.Bot = from.GetBot()
i.Stars = from.GetStars()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceBusinessBotTransferStars) TypeID() uint32 {
return InputInvoiceBusinessBotTransferStarsTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceBusinessBotTransferStars) TypeName() string {
return "inputInvoiceBusinessBotTransferStars"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceBusinessBotTransferStars) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceBusinessBotTransferStars",
ID: InputInvoiceBusinessBotTransferStarsTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Bot",
SchemaName: "bot",
},
{
Name: "Stars",
SchemaName: "stars",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputInvoiceBusinessBotTransferStars) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceBusinessBotTransferStars#f4997e42 as nil")
}
b.PutID(InputInvoiceBusinessBotTransferStarsTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceBusinessBotTransferStars) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceBusinessBotTransferStars#f4997e42 as nil")
}
if i.Bot == nil {
return fmt.Errorf("unable to encode inputInvoiceBusinessBotTransferStars#f4997e42: field bot is nil")
}
if err := i.Bot.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceBusinessBotTransferStars#f4997e42: field bot: %w", err)
}
b.PutLong(i.Stars)
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceBusinessBotTransferStars) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceBusinessBotTransferStars#f4997e42 to nil")
}
if err := b.ConsumeID(InputInvoiceBusinessBotTransferStarsTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceBusinessBotTransferStars#f4997e42: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceBusinessBotTransferStars) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceBusinessBotTransferStars#f4997e42 to nil")
}
{
value, err := DecodeInputUser(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceBusinessBotTransferStars#f4997e42: field bot: %w", err)
}
i.Bot = value
}
{
value, err := b.Long()
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceBusinessBotTransferStars#f4997e42: field stars: %w", err)
}
i.Stars = value
}
return nil
}
// GetBot returns value of Bot field.
func (i *InputInvoiceBusinessBotTransferStars) GetBot() (value InputUserClass) {
if i == nil {
return
}
return i.Bot
}
// GetStars returns value of Stars field.
func (i *InputInvoiceBusinessBotTransferStars) GetStars() (value int64) {
if i == nil {
return
}
return i.Stars
}
// InputInvoiceStarGiftResale represents TL type `inputInvoiceStarGiftResale#63cbc38c`.
//
// See https://core.telegram.org/constructor/inputInvoiceStarGiftResale for reference.
type InputInvoiceStarGiftResale struct {
// Slug field of InputInvoiceStarGiftResale.
Slug string
// ToID field of InputInvoiceStarGiftResale.
ToID InputPeerClass
}
// InputInvoiceStarGiftResaleTypeID is TL type id of InputInvoiceStarGiftResale.
const InputInvoiceStarGiftResaleTypeID = 0x63cbc38c
// construct implements constructor of InputInvoiceClass.
func (i InputInvoiceStarGiftResale) construct() InputInvoiceClass { return &i }
// Ensuring interfaces in compile-time for InputInvoiceStarGiftResale.
var (
_ bin.Encoder = &InputInvoiceStarGiftResale{}
_ bin.Decoder = &InputInvoiceStarGiftResale{}
_ bin.BareEncoder = &InputInvoiceStarGiftResale{}
_ bin.BareDecoder = &InputInvoiceStarGiftResale{}
_ InputInvoiceClass = &InputInvoiceStarGiftResale{}
)
func (i *InputInvoiceStarGiftResale) Zero() bool {
if i == nil {
return true
}
if !(i.Slug == "") {
return false
}
if !(i.ToID == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (i *InputInvoiceStarGiftResale) String() string {
if i == nil {
return "InputInvoiceStarGiftResale(nil)"
}
type Alias InputInvoiceStarGiftResale
return fmt.Sprintf("InputInvoiceStarGiftResale%+v", Alias(*i))
}
// FillFrom fills InputInvoiceStarGiftResale from given interface.
func (i *InputInvoiceStarGiftResale) FillFrom(from interface {
GetSlug() (value string)
GetToID() (value InputPeerClass)
}) {
i.Slug = from.GetSlug()
i.ToID = from.GetToID()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*InputInvoiceStarGiftResale) TypeID() uint32 {
return InputInvoiceStarGiftResaleTypeID
}
// TypeName returns name of type in TL schema.
func (*InputInvoiceStarGiftResale) TypeName() string {
return "inputInvoiceStarGiftResale"
}
// TypeInfo returns info about TL type.
func (i *InputInvoiceStarGiftResale) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "inputInvoiceStarGiftResale",
ID: InputInvoiceStarGiftResaleTypeID,
}
if i == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Slug",
SchemaName: "slug",
},
{
Name: "ToID",
SchemaName: "to_id",
},
}
return typ
}
// Encode implements bin.Encoder.
func (i *InputInvoiceStarGiftResale) Encode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStarGiftResale#63cbc38c as nil")
}
b.PutID(InputInvoiceStarGiftResaleTypeID)
return i.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (i *InputInvoiceStarGiftResale) EncodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't encode inputInvoiceStarGiftResale#63cbc38c as nil")
}
b.PutString(i.Slug)
if i.ToID == nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftResale#63cbc38c: field to_id is nil")
}
if err := i.ToID.Encode(b); err != nil {
return fmt.Errorf("unable to encode inputInvoiceStarGiftResale#63cbc38c: field to_id: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (i *InputInvoiceStarGiftResale) Decode(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStarGiftResale#63cbc38c to nil")
}
if err := b.ConsumeID(InputInvoiceStarGiftResaleTypeID); err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftResale#63cbc38c: %w", err)
}
return i.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (i *InputInvoiceStarGiftResale) DecodeBare(b *bin.Buffer) error {
if i == nil {
return fmt.Errorf("can't decode inputInvoiceStarGiftResale#63cbc38c to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftResale#63cbc38c: field slug: %w", err)
}
i.Slug = value
}
{
value, err := DecodeInputPeer(b)
if err != nil {
return fmt.Errorf("unable to decode inputInvoiceStarGiftResale#63cbc38c: field to_id: %w", err)
}
i.ToID = value
}
return nil
}
// GetSlug returns value of Slug field.
func (i *InputInvoiceStarGiftResale) GetSlug() (value string) {
if i == nil {
return
}
return i.Slug
}
// GetToID returns value of ToID field.
func (i *InputInvoiceStarGiftResale) GetToID() (value InputPeerClass) {
if i == nil {
return
}
return i.ToID
}
// InputInvoiceClassName is schema name of InputInvoiceClass.
const InputInvoiceClassName = "InputInvoice"
// InputInvoiceClass represents InputInvoice generic type.
//
// See https://core.telegram.org/type/InputInvoice for reference.
//
// Example:
//
// g, err := tg.DecodeInputInvoice(buf)
// if err != nil {
// panic(err)
// }
// switch v := g.(type) {
// case *tg.InputInvoiceMessage: // inputInvoiceMessage#c5b56859
// case *tg.InputInvoiceSlug: // inputInvoiceSlug#c326caef
// case *tg.InputInvoicePremiumGiftCode: // inputInvoicePremiumGiftCode#98986c0d
// case *tg.InputInvoiceStars: // inputInvoiceStars#65f00ce3
// case *tg.InputInvoiceChatInviteSubscription: // inputInvoiceChatInviteSubscription#34e793f1
// case *tg.InputInvoiceStarGift: // inputInvoiceStarGift#e8625e92
// case *tg.InputInvoiceStarGiftUpgrade: // inputInvoiceStarGiftUpgrade#4d818d5d
// case *tg.InputInvoiceStarGiftTransfer: // inputInvoiceStarGiftTransfer#4a5f5bd9
// case *tg.InputInvoicePremiumGiftStars: // inputInvoicePremiumGiftStars#dabab2ef
// case *tg.InputInvoiceBusinessBotTransferStars: // inputInvoiceBusinessBotTransferStars#f4997e42
// case *tg.InputInvoiceStarGiftResale: // inputInvoiceStarGiftResale#63cbc38c
// default: panic(v)
// }
type InputInvoiceClass interface {
bin.Encoder
bin.Decoder
bin.BareEncoder
bin.BareDecoder
construct() InputInvoiceClass
// 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
}
// DecodeInputInvoice implements binary de-serialization for InputInvoiceClass.
func DecodeInputInvoice(buf *bin.Buffer) (InputInvoiceClass, error) {
id, err := buf.PeekID()
if err != nil {
return nil, err
}
switch id {
case InputInvoiceMessageTypeID:
// Decoding inputInvoiceMessage#c5b56859.
v := InputInvoiceMessage{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoiceSlugTypeID:
// Decoding inputInvoiceSlug#c326caef.
v := InputInvoiceSlug{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoicePremiumGiftCodeTypeID:
// Decoding inputInvoicePremiumGiftCode#98986c0d.
v := InputInvoicePremiumGiftCode{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoiceStarsTypeID:
// Decoding inputInvoiceStars#65f00ce3.
v := InputInvoiceStars{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoiceChatInviteSubscriptionTypeID:
// Decoding inputInvoiceChatInviteSubscription#34e793f1.
v := InputInvoiceChatInviteSubscription{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoiceStarGiftTypeID:
// Decoding inputInvoiceStarGift#e8625e92.
v := InputInvoiceStarGift{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoiceStarGiftUpgradeTypeID:
// Decoding inputInvoiceStarGiftUpgrade#4d818d5d.
v := InputInvoiceStarGiftUpgrade{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoiceStarGiftTransferTypeID:
// Decoding inputInvoiceStarGiftTransfer#4a5f5bd9.
v := InputInvoiceStarGiftTransfer{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoicePremiumGiftStarsTypeID:
// Decoding inputInvoicePremiumGiftStars#dabab2ef.
v := InputInvoicePremiumGiftStars{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoiceBusinessBotTransferStarsTypeID:
// Decoding inputInvoiceBusinessBotTransferStars#f4997e42.
v := InputInvoiceBusinessBotTransferStars{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
case InputInvoiceStarGiftResaleTypeID:
// Decoding inputInvoiceStarGiftResale#63cbc38c.
v := InputInvoiceStarGiftResale{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode InputInvoiceClass: %w", bin.NewUnexpectedID(id))
}
}
// InputInvoice boxes the InputInvoiceClass providing a helper.
type InputInvoiceBox struct {
InputInvoice InputInvoiceClass
}
// Decode implements bin.Decoder for InputInvoiceBox.
func (b *InputInvoiceBox) Decode(buf *bin.Buffer) error {
if b == nil {
return fmt.Errorf("unable to decode InputInvoiceBox to nil")
}
v, err := DecodeInputInvoice(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.InputInvoice = v
return nil
}
// Encode implements bin.Encode for InputInvoiceBox.
func (b *InputInvoiceBox) Encode(buf *bin.Buffer) error {
if b == nil || b.InputInvoice == nil {
return fmt.Errorf("unable to encode InputInvoiceClass as nil")
}
return b.InputInvoice.Encode(buf)
}