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

903 lines
24 KiB
Go
Generated

// 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{}
)
// StickerSetCovered represents TL type `stickerSetCovered#6410a5d2`.
// Stickerset with a single sticker as preview
//
// See https://core.telegram.org/constructor/stickerSetCovered for reference.
type StickerSetCovered struct {
// Stickerset
Set StickerSet
// Preview
Cover DocumentClass
}
// StickerSetCoveredTypeID is TL type id of StickerSetCovered.
const StickerSetCoveredTypeID = 0x6410a5d2
// construct implements constructor of StickerSetCoveredClass.
func (s StickerSetCovered) construct() StickerSetCoveredClass { return &s }
// Ensuring interfaces in compile-time for StickerSetCovered.
var (
_ bin.Encoder = &StickerSetCovered{}
_ bin.Decoder = &StickerSetCovered{}
_ bin.BareEncoder = &StickerSetCovered{}
_ bin.BareDecoder = &StickerSetCovered{}
_ StickerSetCoveredClass = &StickerSetCovered{}
)
func (s *StickerSetCovered) Zero() bool {
if s == nil {
return true
}
if !(s.Set.Zero()) {
return false
}
if !(s.Cover == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (s *StickerSetCovered) String() string {
if s == nil {
return "StickerSetCovered(nil)"
}
type Alias StickerSetCovered
return fmt.Sprintf("StickerSetCovered%+v", Alias(*s))
}
// FillFrom fills StickerSetCovered from given interface.
func (s *StickerSetCovered) FillFrom(from interface {
GetSet() (value StickerSet)
GetCover() (value DocumentClass)
}) {
s.Set = from.GetSet()
s.Cover = from.GetCover()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*StickerSetCovered) TypeID() uint32 {
return StickerSetCoveredTypeID
}
// TypeName returns name of type in TL schema.
func (*StickerSetCovered) TypeName() string {
return "stickerSetCovered"
}
// TypeInfo returns info about TL type.
func (s *StickerSetCovered) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "stickerSetCovered",
ID: StickerSetCoveredTypeID,
}
if s == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Set",
SchemaName: "set",
},
{
Name: "Cover",
SchemaName: "cover",
},
}
return typ
}
// Encode implements bin.Encoder.
func (s *StickerSetCovered) Encode(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't encode stickerSetCovered#6410a5d2 as nil")
}
b.PutID(StickerSetCoveredTypeID)
return s.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (s *StickerSetCovered) EncodeBare(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't encode stickerSetCovered#6410a5d2 as nil")
}
if err := s.Set.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetCovered#6410a5d2: field set: %w", err)
}
if s.Cover == nil {
return fmt.Errorf("unable to encode stickerSetCovered#6410a5d2: field cover is nil")
}
if err := s.Cover.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetCovered#6410a5d2: field cover: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (s *StickerSetCovered) Decode(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't decode stickerSetCovered#6410a5d2 to nil")
}
if err := b.ConsumeID(StickerSetCoveredTypeID); err != nil {
return fmt.Errorf("unable to decode stickerSetCovered#6410a5d2: %w", err)
}
return s.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (s *StickerSetCovered) DecodeBare(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't decode stickerSetCovered#6410a5d2 to nil")
}
{
if err := s.Set.Decode(b); err != nil {
return fmt.Errorf("unable to decode stickerSetCovered#6410a5d2: field set: %w", err)
}
}
{
value, err := DecodeDocument(b)
if err != nil {
return fmt.Errorf("unable to decode stickerSetCovered#6410a5d2: field cover: %w", err)
}
s.Cover = value
}
return nil
}
// GetSet returns value of Set field.
func (s *StickerSetCovered) GetSet() (value StickerSet) {
if s == nil {
return
}
return s.Set
}
// GetCover returns value of Cover field.
func (s *StickerSetCovered) GetCover() (value DocumentClass) {
if s == nil {
return
}
return s.Cover
}
// StickerSetMultiCovered represents TL type `stickerSetMultiCovered#3407e51b`.
// Stickerset, with multiple stickers as preview
//
// See https://core.telegram.org/constructor/stickerSetMultiCovered for reference.
type StickerSetMultiCovered struct {
// Stickerset
Set StickerSet
// Preview stickers
Covers []DocumentClass
}
// StickerSetMultiCoveredTypeID is TL type id of StickerSetMultiCovered.
const StickerSetMultiCoveredTypeID = 0x3407e51b
// construct implements constructor of StickerSetCoveredClass.
func (s StickerSetMultiCovered) construct() StickerSetCoveredClass { return &s }
// Ensuring interfaces in compile-time for StickerSetMultiCovered.
var (
_ bin.Encoder = &StickerSetMultiCovered{}
_ bin.Decoder = &StickerSetMultiCovered{}
_ bin.BareEncoder = &StickerSetMultiCovered{}
_ bin.BareDecoder = &StickerSetMultiCovered{}
_ StickerSetCoveredClass = &StickerSetMultiCovered{}
)
func (s *StickerSetMultiCovered) Zero() bool {
if s == nil {
return true
}
if !(s.Set.Zero()) {
return false
}
if !(s.Covers == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (s *StickerSetMultiCovered) String() string {
if s == nil {
return "StickerSetMultiCovered(nil)"
}
type Alias StickerSetMultiCovered
return fmt.Sprintf("StickerSetMultiCovered%+v", Alias(*s))
}
// FillFrom fills StickerSetMultiCovered from given interface.
func (s *StickerSetMultiCovered) FillFrom(from interface {
GetSet() (value StickerSet)
GetCovers() (value []DocumentClass)
}) {
s.Set = from.GetSet()
s.Covers = from.GetCovers()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*StickerSetMultiCovered) TypeID() uint32 {
return StickerSetMultiCoveredTypeID
}
// TypeName returns name of type in TL schema.
func (*StickerSetMultiCovered) TypeName() string {
return "stickerSetMultiCovered"
}
// TypeInfo returns info about TL type.
func (s *StickerSetMultiCovered) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "stickerSetMultiCovered",
ID: StickerSetMultiCoveredTypeID,
}
if s == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Set",
SchemaName: "set",
},
{
Name: "Covers",
SchemaName: "covers",
},
}
return typ
}
// Encode implements bin.Encoder.
func (s *StickerSetMultiCovered) Encode(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't encode stickerSetMultiCovered#3407e51b as nil")
}
b.PutID(StickerSetMultiCoveredTypeID)
return s.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (s *StickerSetMultiCovered) EncodeBare(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't encode stickerSetMultiCovered#3407e51b as nil")
}
if err := s.Set.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetMultiCovered#3407e51b: field set: %w", err)
}
b.PutVectorHeader(len(s.Covers))
for idx, v := range s.Covers {
if v == nil {
return fmt.Errorf("unable to encode stickerSetMultiCovered#3407e51b: field covers element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetMultiCovered#3407e51b: field covers element with index %d: %w", idx, err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (s *StickerSetMultiCovered) Decode(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't decode stickerSetMultiCovered#3407e51b to nil")
}
if err := b.ConsumeID(StickerSetMultiCoveredTypeID); err != nil {
return fmt.Errorf("unable to decode stickerSetMultiCovered#3407e51b: %w", err)
}
return s.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (s *StickerSetMultiCovered) DecodeBare(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't decode stickerSetMultiCovered#3407e51b to nil")
}
{
if err := s.Set.Decode(b); err != nil {
return fmt.Errorf("unable to decode stickerSetMultiCovered#3407e51b: field set: %w", err)
}
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode stickerSetMultiCovered#3407e51b: field covers: %w", err)
}
if headerLen > 0 {
s.Covers = make([]DocumentClass, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := DecodeDocument(b)
if err != nil {
return fmt.Errorf("unable to decode stickerSetMultiCovered#3407e51b: field covers: %w", err)
}
s.Covers = append(s.Covers, value)
}
}
return nil
}
// GetSet returns value of Set field.
func (s *StickerSetMultiCovered) GetSet() (value StickerSet) {
if s == nil {
return
}
return s.Set
}
// GetCovers returns value of Covers field.
func (s *StickerSetMultiCovered) GetCovers() (value []DocumentClass) {
if s == nil {
return
}
return s.Covers
}
// MapCovers returns field Covers wrapped in DocumentClassArray helper.
func (s *StickerSetMultiCovered) MapCovers() (value DocumentClassArray) {
return DocumentClassArray(s.Covers)
}
// StickerSetFullCovered represents TL type `stickerSetFullCovered#40d13c0e`.
// Stickerset preview with all stickers of the stickerset included.
// Currently used only for custom emoji stickersets¹, to avoid a further call to
// messages.getStickerSet².
//
// Links:
// 1. https://core.telegram.org/api/custom-emoji
// 2. https://core.telegram.org/method/messages.getStickerSet
//
// See https://core.telegram.org/constructor/stickerSetFullCovered for reference.
type StickerSetFullCovered struct {
// Stickerset
Set StickerSet
// Emoji information about every sticker in the stickerset
Packs []StickerPack
// Keywords for some or every sticker in the stickerset.
Keywords []StickerKeyword
// Stickers
Documents []DocumentClass
}
// StickerSetFullCoveredTypeID is TL type id of StickerSetFullCovered.
const StickerSetFullCoveredTypeID = 0x40d13c0e
// construct implements constructor of StickerSetCoveredClass.
func (s StickerSetFullCovered) construct() StickerSetCoveredClass { return &s }
// Ensuring interfaces in compile-time for StickerSetFullCovered.
var (
_ bin.Encoder = &StickerSetFullCovered{}
_ bin.Decoder = &StickerSetFullCovered{}
_ bin.BareEncoder = &StickerSetFullCovered{}
_ bin.BareDecoder = &StickerSetFullCovered{}
_ StickerSetCoveredClass = &StickerSetFullCovered{}
)
func (s *StickerSetFullCovered) Zero() bool {
if s == nil {
return true
}
if !(s.Set.Zero()) {
return false
}
if !(s.Packs == nil) {
return false
}
if !(s.Keywords == nil) {
return false
}
if !(s.Documents == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (s *StickerSetFullCovered) String() string {
if s == nil {
return "StickerSetFullCovered(nil)"
}
type Alias StickerSetFullCovered
return fmt.Sprintf("StickerSetFullCovered%+v", Alias(*s))
}
// FillFrom fills StickerSetFullCovered from given interface.
func (s *StickerSetFullCovered) FillFrom(from interface {
GetSet() (value StickerSet)
GetPacks() (value []StickerPack)
GetKeywords() (value []StickerKeyword)
GetDocuments() (value []DocumentClass)
}) {
s.Set = from.GetSet()
s.Packs = from.GetPacks()
s.Keywords = from.GetKeywords()
s.Documents = from.GetDocuments()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*StickerSetFullCovered) TypeID() uint32 {
return StickerSetFullCoveredTypeID
}
// TypeName returns name of type in TL schema.
func (*StickerSetFullCovered) TypeName() string {
return "stickerSetFullCovered"
}
// TypeInfo returns info about TL type.
func (s *StickerSetFullCovered) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "stickerSetFullCovered",
ID: StickerSetFullCoveredTypeID,
}
if s == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Set",
SchemaName: "set",
},
{
Name: "Packs",
SchemaName: "packs",
},
{
Name: "Keywords",
SchemaName: "keywords",
},
{
Name: "Documents",
SchemaName: "documents",
},
}
return typ
}
// Encode implements bin.Encoder.
func (s *StickerSetFullCovered) Encode(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't encode stickerSetFullCovered#40d13c0e as nil")
}
b.PutID(StickerSetFullCoveredTypeID)
return s.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (s *StickerSetFullCovered) EncodeBare(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't encode stickerSetFullCovered#40d13c0e as nil")
}
if err := s.Set.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetFullCovered#40d13c0e: field set: %w", err)
}
b.PutVectorHeader(len(s.Packs))
for idx, v := range s.Packs {
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetFullCovered#40d13c0e: field packs element with index %d: %w", idx, err)
}
}
b.PutVectorHeader(len(s.Keywords))
for idx, v := range s.Keywords {
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetFullCovered#40d13c0e: field keywords element with index %d: %w", idx, err)
}
}
b.PutVectorHeader(len(s.Documents))
for idx, v := range s.Documents {
if v == nil {
return fmt.Errorf("unable to encode stickerSetFullCovered#40d13c0e: field documents element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetFullCovered#40d13c0e: field documents element with index %d: %w", idx, err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (s *StickerSetFullCovered) Decode(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't decode stickerSetFullCovered#40d13c0e to nil")
}
if err := b.ConsumeID(StickerSetFullCoveredTypeID); err != nil {
return fmt.Errorf("unable to decode stickerSetFullCovered#40d13c0e: %w", err)
}
return s.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (s *StickerSetFullCovered) DecodeBare(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't decode stickerSetFullCovered#40d13c0e to nil")
}
{
if err := s.Set.Decode(b); err != nil {
return fmt.Errorf("unable to decode stickerSetFullCovered#40d13c0e: field set: %w", err)
}
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode stickerSetFullCovered#40d13c0e: field packs: %w", err)
}
if headerLen > 0 {
s.Packs = make([]StickerPack, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
var value StickerPack
if err := value.Decode(b); err != nil {
return fmt.Errorf("unable to decode stickerSetFullCovered#40d13c0e: field packs: %w", err)
}
s.Packs = append(s.Packs, value)
}
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode stickerSetFullCovered#40d13c0e: field keywords: %w", err)
}
if headerLen > 0 {
s.Keywords = make([]StickerKeyword, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
var value StickerKeyword
if err := value.Decode(b); err != nil {
return fmt.Errorf("unable to decode stickerSetFullCovered#40d13c0e: field keywords: %w", err)
}
s.Keywords = append(s.Keywords, value)
}
}
{
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode stickerSetFullCovered#40d13c0e: field documents: %w", err)
}
if headerLen > 0 {
s.Documents = make([]DocumentClass, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
value, err := DecodeDocument(b)
if err != nil {
return fmt.Errorf("unable to decode stickerSetFullCovered#40d13c0e: field documents: %w", err)
}
s.Documents = append(s.Documents, value)
}
}
return nil
}
// GetSet returns value of Set field.
func (s *StickerSetFullCovered) GetSet() (value StickerSet) {
if s == nil {
return
}
return s.Set
}
// GetPacks returns value of Packs field.
func (s *StickerSetFullCovered) GetPacks() (value []StickerPack) {
if s == nil {
return
}
return s.Packs
}
// GetKeywords returns value of Keywords field.
func (s *StickerSetFullCovered) GetKeywords() (value []StickerKeyword) {
if s == nil {
return
}
return s.Keywords
}
// GetDocuments returns value of Documents field.
func (s *StickerSetFullCovered) GetDocuments() (value []DocumentClass) {
if s == nil {
return
}
return s.Documents
}
// MapDocuments returns field Documents wrapped in DocumentClassArray helper.
func (s *StickerSetFullCovered) MapDocuments() (value DocumentClassArray) {
return DocumentClassArray(s.Documents)
}
// StickerSetNoCovered represents TL type `stickerSetNoCovered#77b15d1c`.
// Just the stickerset information, with no previews.
//
// See https://core.telegram.org/constructor/stickerSetNoCovered for reference.
type StickerSetNoCovered struct {
// Stickerset information.
Set StickerSet
}
// StickerSetNoCoveredTypeID is TL type id of StickerSetNoCovered.
const StickerSetNoCoveredTypeID = 0x77b15d1c
// construct implements constructor of StickerSetCoveredClass.
func (s StickerSetNoCovered) construct() StickerSetCoveredClass { return &s }
// Ensuring interfaces in compile-time for StickerSetNoCovered.
var (
_ bin.Encoder = &StickerSetNoCovered{}
_ bin.Decoder = &StickerSetNoCovered{}
_ bin.BareEncoder = &StickerSetNoCovered{}
_ bin.BareDecoder = &StickerSetNoCovered{}
_ StickerSetCoveredClass = &StickerSetNoCovered{}
)
func (s *StickerSetNoCovered) Zero() bool {
if s == nil {
return true
}
if !(s.Set.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (s *StickerSetNoCovered) String() string {
if s == nil {
return "StickerSetNoCovered(nil)"
}
type Alias StickerSetNoCovered
return fmt.Sprintf("StickerSetNoCovered%+v", Alias(*s))
}
// FillFrom fills StickerSetNoCovered from given interface.
func (s *StickerSetNoCovered) FillFrom(from interface {
GetSet() (value StickerSet)
}) {
s.Set = from.GetSet()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*StickerSetNoCovered) TypeID() uint32 {
return StickerSetNoCoveredTypeID
}
// TypeName returns name of type in TL schema.
func (*StickerSetNoCovered) TypeName() string {
return "stickerSetNoCovered"
}
// TypeInfo returns info about TL type.
func (s *StickerSetNoCovered) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "stickerSetNoCovered",
ID: StickerSetNoCoveredTypeID,
}
if s == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Set",
SchemaName: "set",
},
}
return typ
}
// Encode implements bin.Encoder.
func (s *StickerSetNoCovered) Encode(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't encode stickerSetNoCovered#77b15d1c as nil")
}
b.PutID(StickerSetNoCoveredTypeID)
return s.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (s *StickerSetNoCovered) EncodeBare(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't encode stickerSetNoCovered#77b15d1c as nil")
}
if err := s.Set.Encode(b); err != nil {
return fmt.Errorf("unable to encode stickerSetNoCovered#77b15d1c: field set: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (s *StickerSetNoCovered) Decode(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't decode stickerSetNoCovered#77b15d1c to nil")
}
if err := b.ConsumeID(StickerSetNoCoveredTypeID); err != nil {
return fmt.Errorf("unable to decode stickerSetNoCovered#77b15d1c: %w", err)
}
return s.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (s *StickerSetNoCovered) DecodeBare(b *bin.Buffer) error {
if s == nil {
return fmt.Errorf("can't decode stickerSetNoCovered#77b15d1c to nil")
}
{
if err := s.Set.Decode(b); err != nil {
return fmt.Errorf("unable to decode stickerSetNoCovered#77b15d1c: field set: %w", err)
}
}
return nil
}
// GetSet returns value of Set field.
func (s *StickerSetNoCovered) GetSet() (value StickerSet) {
if s == nil {
return
}
return s.Set
}
// StickerSetCoveredClassName is schema name of StickerSetCoveredClass.
const StickerSetCoveredClassName = "StickerSetCovered"
// StickerSetCoveredClass represents StickerSetCovered generic type.
//
// See https://core.telegram.org/type/StickerSetCovered for reference.
//
// Example:
//
// g, err := tg.DecodeStickerSetCovered(buf)
// if err != nil {
// panic(err)
// }
// switch v := g.(type) {
// case *tg.StickerSetCovered: // stickerSetCovered#6410a5d2
// case *tg.StickerSetMultiCovered: // stickerSetMultiCovered#3407e51b
// case *tg.StickerSetFullCovered: // stickerSetFullCovered#40d13c0e
// case *tg.StickerSetNoCovered: // stickerSetNoCovered#77b15d1c
// default: panic(v)
// }
type StickerSetCoveredClass interface {
bin.Encoder
bin.Decoder
bin.BareEncoder
bin.BareDecoder
construct() StickerSetCoveredClass
// 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
// Stickerset
GetSet() (value StickerSet)
}
// DecodeStickerSetCovered implements binary de-serialization for StickerSetCoveredClass.
func DecodeStickerSetCovered(buf *bin.Buffer) (StickerSetCoveredClass, error) {
id, err := buf.PeekID()
if err != nil {
return nil, err
}
switch id {
case StickerSetCoveredTypeID:
// Decoding stickerSetCovered#6410a5d2.
v := StickerSetCovered{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode StickerSetCoveredClass: %w", err)
}
return &v, nil
case StickerSetMultiCoveredTypeID:
// Decoding stickerSetMultiCovered#3407e51b.
v := StickerSetMultiCovered{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode StickerSetCoveredClass: %w", err)
}
return &v, nil
case StickerSetFullCoveredTypeID:
// Decoding stickerSetFullCovered#40d13c0e.
v := StickerSetFullCovered{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode StickerSetCoveredClass: %w", err)
}
return &v, nil
case StickerSetNoCoveredTypeID:
// Decoding stickerSetNoCovered#77b15d1c.
v := StickerSetNoCovered{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode StickerSetCoveredClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode StickerSetCoveredClass: %w", bin.NewUnexpectedID(id))
}
}
// StickerSetCovered boxes the StickerSetCoveredClass providing a helper.
type StickerSetCoveredBox struct {
StickerSetCovered StickerSetCoveredClass
}
// Decode implements bin.Decoder for StickerSetCoveredBox.
func (b *StickerSetCoveredBox) Decode(buf *bin.Buffer) error {
if b == nil {
return fmt.Errorf("unable to decode StickerSetCoveredBox to nil")
}
v, err := DecodeStickerSetCovered(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.StickerSetCovered = v
return nil
}
// Encode implements bin.Encode for StickerSetCoveredBox.
func (b *StickerSetCoveredBox) Encode(buf *bin.Buffer) error {
if b == nil || b.StickerSetCovered == nil {
return fmt.Errorf("unable to encode StickerSetCoveredClass as nil")
}
return b.StickerSetCovered.Encode(buf)
}