// Code generated by gotdgen, DO NOT EDIT. package tdapi import ( "context" "errors" "fmt" "sort" "strings" "go.uber.org/multierr" "go.mau.fi/mautrix-telegram/pkg/gotd/bin" "go.mau.fi/mautrix-telegram/pkg/gotd/tdjson" "go.mau.fi/mautrix-telegram/pkg/gotd/tdp" "go.mau.fi/mautrix-telegram/pkg/gotd/tgerr" ) // No-op definition for keeping imports. var ( _ = bin.Buffer{} _ = context.Background() _ = fmt.Stringer(nil) _ = strings.Builder{} _ = errors.Is _ = multierr.AppendInto _ = sort.Ints _ = tdp.Format _ = tgerr.Error{} _ = tdjson.Encoder{} ) // PageBlockTitle represents TL type `pageBlockTitle#6122b610`. type PageBlockTitle struct { // Title Title RichTextClass } // PageBlockTitleTypeID is TL type id of PageBlockTitle. const PageBlockTitleTypeID = 0x6122b610 // construct implements constructor of PageBlockClass. func (p PageBlockTitle) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockTitle. var ( _ bin.Encoder = &PageBlockTitle{} _ bin.Decoder = &PageBlockTitle{} _ bin.BareEncoder = &PageBlockTitle{} _ bin.BareDecoder = &PageBlockTitle{} _ PageBlockClass = &PageBlockTitle{} ) func (p *PageBlockTitle) Zero() bool { if p == nil { return true } if !(p.Title == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockTitle) String() string { if p == nil { return "PageBlockTitle(nil)" } type Alias PageBlockTitle return fmt.Sprintf("PageBlockTitle%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockTitle) TypeID() uint32 { return PageBlockTitleTypeID } // TypeName returns name of type in TL schema. func (*PageBlockTitle) TypeName() string { return "pageBlockTitle" } // TypeInfo returns info about TL type. func (p *PageBlockTitle) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockTitle", ID: PageBlockTitleTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Title", SchemaName: "title", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockTitle) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockTitle#6122b610 as nil") } b.PutID(PageBlockTitleTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockTitle) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockTitle#6122b610 as nil") } if p.Title == nil { return fmt.Errorf("unable to encode pageBlockTitle#6122b610: field title is nil") } if err := p.Title.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockTitle#6122b610: field title: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockTitle) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockTitle#6122b610 to nil") } if err := b.ConsumeID(PageBlockTitleTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockTitle#6122b610: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockTitle) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockTitle#6122b610 to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockTitle#6122b610: field title: %w", err) } p.Title = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockTitle) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockTitle#6122b610 as nil") } b.ObjStart() b.PutID("pageBlockTitle") b.Comma() b.FieldStart("title") if p.Title == nil { return fmt.Errorf("unable to encode pageBlockTitle#6122b610: field title is nil") } if err := p.Title.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockTitle#6122b610: field title: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockTitle) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockTitle#6122b610 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockTitle"); err != nil { return fmt.Errorf("unable to decode pageBlockTitle#6122b610: %w", err) } case "title": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockTitle#6122b610: field title: %w", err) } p.Title = value default: return b.Skip() } return nil }) } // GetTitle returns value of Title field. func (p *PageBlockTitle) GetTitle() (value RichTextClass) { if p == nil { return } return p.Title } // PageBlockSubtitle represents TL type `pageBlockSubtitle#fc451e7`. type PageBlockSubtitle struct { // Subtitle Subtitle RichTextClass } // PageBlockSubtitleTypeID is TL type id of PageBlockSubtitle. const PageBlockSubtitleTypeID = 0xfc451e7 // construct implements constructor of PageBlockClass. func (p PageBlockSubtitle) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockSubtitle. var ( _ bin.Encoder = &PageBlockSubtitle{} _ bin.Decoder = &PageBlockSubtitle{} _ bin.BareEncoder = &PageBlockSubtitle{} _ bin.BareDecoder = &PageBlockSubtitle{} _ PageBlockClass = &PageBlockSubtitle{} ) func (p *PageBlockSubtitle) Zero() bool { if p == nil { return true } if !(p.Subtitle == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockSubtitle) String() string { if p == nil { return "PageBlockSubtitle(nil)" } type Alias PageBlockSubtitle return fmt.Sprintf("PageBlockSubtitle%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockSubtitle) TypeID() uint32 { return PageBlockSubtitleTypeID } // TypeName returns name of type in TL schema. func (*PageBlockSubtitle) TypeName() string { return "pageBlockSubtitle" } // TypeInfo returns info about TL type. func (p *PageBlockSubtitle) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockSubtitle", ID: PageBlockSubtitleTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Subtitle", SchemaName: "subtitle", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockSubtitle) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockSubtitle#fc451e7 as nil") } b.PutID(PageBlockSubtitleTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockSubtitle) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockSubtitle#fc451e7 as nil") } if p.Subtitle == nil { return fmt.Errorf("unable to encode pageBlockSubtitle#fc451e7: field subtitle is nil") } if err := p.Subtitle.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockSubtitle#fc451e7: field subtitle: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockSubtitle) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockSubtitle#fc451e7 to nil") } if err := b.ConsumeID(PageBlockSubtitleTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockSubtitle#fc451e7: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockSubtitle) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockSubtitle#fc451e7 to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockSubtitle#fc451e7: field subtitle: %w", err) } p.Subtitle = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockSubtitle) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockSubtitle#fc451e7 as nil") } b.ObjStart() b.PutID("pageBlockSubtitle") b.Comma() b.FieldStart("subtitle") if p.Subtitle == nil { return fmt.Errorf("unable to encode pageBlockSubtitle#fc451e7: field subtitle is nil") } if err := p.Subtitle.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockSubtitle#fc451e7: field subtitle: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockSubtitle) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockSubtitle#fc451e7 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockSubtitle"); err != nil { return fmt.Errorf("unable to decode pageBlockSubtitle#fc451e7: %w", err) } case "subtitle": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockSubtitle#fc451e7: field subtitle: %w", err) } p.Subtitle = value default: return b.Skip() } return nil }) } // GetSubtitle returns value of Subtitle field. func (p *PageBlockSubtitle) GetSubtitle() (value RichTextClass) { if p == nil { return } return p.Subtitle } // PageBlockAuthorDate represents TL type `pageBlockAuthorDate#4d7ff410`. type PageBlockAuthorDate struct { // Author Author RichTextClass // Point in time (Unix timestamp) when the article was published; 0 if unknown PublishDate int32 } // PageBlockAuthorDateTypeID is TL type id of PageBlockAuthorDate. const PageBlockAuthorDateTypeID = 0x4d7ff410 // construct implements constructor of PageBlockClass. func (p PageBlockAuthorDate) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockAuthorDate. var ( _ bin.Encoder = &PageBlockAuthorDate{} _ bin.Decoder = &PageBlockAuthorDate{} _ bin.BareEncoder = &PageBlockAuthorDate{} _ bin.BareDecoder = &PageBlockAuthorDate{} _ PageBlockClass = &PageBlockAuthorDate{} ) func (p *PageBlockAuthorDate) Zero() bool { if p == nil { return true } if !(p.Author == nil) { return false } if !(p.PublishDate == 0) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockAuthorDate) String() string { if p == nil { return "PageBlockAuthorDate(nil)" } type Alias PageBlockAuthorDate return fmt.Sprintf("PageBlockAuthorDate%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockAuthorDate) TypeID() uint32 { return PageBlockAuthorDateTypeID } // TypeName returns name of type in TL schema. func (*PageBlockAuthorDate) TypeName() string { return "pageBlockAuthorDate" } // TypeInfo returns info about TL type. func (p *PageBlockAuthorDate) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockAuthorDate", ID: PageBlockAuthorDateTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Author", SchemaName: "author", }, { Name: "PublishDate", SchemaName: "publish_date", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockAuthorDate) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockAuthorDate#4d7ff410 as nil") } b.PutID(PageBlockAuthorDateTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockAuthorDate) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockAuthorDate#4d7ff410 as nil") } if p.Author == nil { return fmt.Errorf("unable to encode pageBlockAuthorDate#4d7ff410: field author is nil") } if err := p.Author.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockAuthorDate#4d7ff410: field author: %w", err) } b.PutInt32(p.PublishDate) return nil } // Decode implements bin.Decoder. func (p *PageBlockAuthorDate) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockAuthorDate#4d7ff410 to nil") } if err := b.ConsumeID(PageBlockAuthorDateTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockAuthorDate#4d7ff410: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockAuthorDate) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockAuthorDate#4d7ff410 to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockAuthorDate#4d7ff410: field author: %w", err) } p.Author = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockAuthorDate#4d7ff410: field publish_date: %w", err) } p.PublishDate = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockAuthorDate) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockAuthorDate#4d7ff410 as nil") } b.ObjStart() b.PutID("pageBlockAuthorDate") b.Comma() b.FieldStart("author") if p.Author == nil { return fmt.Errorf("unable to encode pageBlockAuthorDate#4d7ff410: field author is nil") } if err := p.Author.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockAuthorDate#4d7ff410: field author: %w", err) } b.Comma() b.FieldStart("publish_date") b.PutInt32(p.PublishDate) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockAuthorDate) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockAuthorDate#4d7ff410 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockAuthorDate"); err != nil { return fmt.Errorf("unable to decode pageBlockAuthorDate#4d7ff410: %w", err) } case "author": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockAuthorDate#4d7ff410: field author: %w", err) } p.Author = value case "publish_date": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockAuthorDate#4d7ff410: field publish_date: %w", err) } p.PublishDate = value default: return b.Skip() } return nil }) } // GetAuthor returns value of Author field. func (p *PageBlockAuthorDate) GetAuthor() (value RichTextClass) { if p == nil { return } return p.Author } // GetPublishDate returns value of PublishDate field. func (p *PageBlockAuthorDate) GetPublishDate() (value int32) { if p == nil { return } return p.PublishDate } // PageBlockHeader represents TL type `pageBlockHeader#539ddd9b`. type PageBlockHeader struct { // Header Header RichTextClass } // PageBlockHeaderTypeID is TL type id of PageBlockHeader. const PageBlockHeaderTypeID = 0x539ddd9b // construct implements constructor of PageBlockClass. func (p PageBlockHeader) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockHeader. var ( _ bin.Encoder = &PageBlockHeader{} _ bin.Decoder = &PageBlockHeader{} _ bin.BareEncoder = &PageBlockHeader{} _ bin.BareDecoder = &PageBlockHeader{} _ PageBlockClass = &PageBlockHeader{} ) func (p *PageBlockHeader) Zero() bool { if p == nil { return true } if !(p.Header == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockHeader) String() string { if p == nil { return "PageBlockHeader(nil)" } type Alias PageBlockHeader return fmt.Sprintf("PageBlockHeader%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockHeader) TypeID() uint32 { return PageBlockHeaderTypeID } // TypeName returns name of type in TL schema. func (*PageBlockHeader) TypeName() string { return "pageBlockHeader" } // TypeInfo returns info about TL type. func (p *PageBlockHeader) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockHeader", ID: PageBlockHeaderTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Header", SchemaName: "header", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockHeader) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockHeader#539ddd9b as nil") } b.PutID(PageBlockHeaderTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockHeader) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockHeader#539ddd9b as nil") } if p.Header == nil { return fmt.Errorf("unable to encode pageBlockHeader#539ddd9b: field header is nil") } if err := p.Header.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockHeader#539ddd9b: field header: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockHeader) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockHeader#539ddd9b to nil") } if err := b.ConsumeID(PageBlockHeaderTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockHeader#539ddd9b: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockHeader) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockHeader#539ddd9b to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockHeader#539ddd9b: field header: %w", err) } p.Header = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockHeader) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockHeader#539ddd9b as nil") } b.ObjStart() b.PutID("pageBlockHeader") b.Comma() b.FieldStart("header") if p.Header == nil { return fmt.Errorf("unable to encode pageBlockHeader#539ddd9b: field header is nil") } if err := p.Header.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockHeader#539ddd9b: field header: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockHeader) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockHeader#539ddd9b to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockHeader"); err != nil { return fmt.Errorf("unable to decode pageBlockHeader#539ddd9b: %w", err) } case "header": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockHeader#539ddd9b: field header: %w", err) } p.Header = value default: return b.Skip() } return nil }) } // GetHeader returns value of Header field. func (p *PageBlockHeader) GetHeader() (value RichTextClass) { if p == nil { return } return p.Header } // PageBlockSubheader represents TL type `pageBlockSubheader#4b567326`. type PageBlockSubheader struct { // Subheader Subheader RichTextClass } // PageBlockSubheaderTypeID is TL type id of PageBlockSubheader. const PageBlockSubheaderTypeID = 0x4b567326 // construct implements constructor of PageBlockClass. func (p PageBlockSubheader) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockSubheader. var ( _ bin.Encoder = &PageBlockSubheader{} _ bin.Decoder = &PageBlockSubheader{} _ bin.BareEncoder = &PageBlockSubheader{} _ bin.BareDecoder = &PageBlockSubheader{} _ PageBlockClass = &PageBlockSubheader{} ) func (p *PageBlockSubheader) Zero() bool { if p == nil { return true } if !(p.Subheader == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockSubheader) String() string { if p == nil { return "PageBlockSubheader(nil)" } type Alias PageBlockSubheader return fmt.Sprintf("PageBlockSubheader%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockSubheader) TypeID() uint32 { return PageBlockSubheaderTypeID } // TypeName returns name of type in TL schema. func (*PageBlockSubheader) TypeName() string { return "pageBlockSubheader" } // TypeInfo returns info about TL type. func (p *PageBlockSubheader) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockSubheader", ID: PageBlockSubheaderTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Subheader", SchemaName: "subheader", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockSubheader) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockSubheader#4b567326 as nil") } b.PutID(PageBlockSubheaderTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockSubheader) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockSubheader#4b567326 as nil") } if p.Subheader == nil { return fmt.Errorf("unable to encode pageBlockSubheader#4b567326: field subheader is nil") } if err := p.Subheader.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockSubheader#4b567326: field subheader: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockSubheader) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockSubheader#4b567326 to nil") } if err := b.ConsumeID(PageBlockSubheaderTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockSubheader#4b567326: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockSubheader) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockSubheader#4b567326 to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockSubheader#4b567326: field subheader: %w", err) } p.Subheader = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockSubheader) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockSubheader#4b567326 as nil") } b.ObjStart() b.PutID("pageBlockSubheader") b.Comma() b.FieldStart("subheader") if p.Subheader == nil { return fmt.Errorf("unable to encode pageBlockSubheader#4b567326: field subheader is nil") } if err := p.Subheader.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockSubheader#4b567326: field subheader: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockSubheader) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockSubheader#4b567326 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockSubheader"); err != nil { return fmt.Errorf("unable to decode pageBlockSubheader#4b567326: %w", err) } case "subheader": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockSubheader#4b567326: field subheader: %w", err) } p.Subheader = value default: return b.Skip() } return nil }) } // GetSubheader returns value of Subheader field. func (p *PageBlockSubheader) GetSubheader() (value RichTextClass) { if p == nil { return } return p.Subheader } // PageBlockKicker represents TL type `pageBlockKicker#5123864b`. type PageBlockKicker struct { // Kicker Kicker RichTextClass } // PageBlockKickerTypeID is TL type id of PageBlockKicker. const PageBlockKickerTypeID = 0x5123864b // construct implements constructor of PageBlockClass. func (p PageBlockKicker) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockKicker. var ( _ bin.Encoder = &PageBlockKicker{} _ bin.Decoder = &PageBlockKicker{} _ bin.BareEncoder = &PageBlockKicker{} _ bin.BareDecoder = &PageBlockKicker{} _ PageBlockClass = &PageBlockKicker{} ) func (p *PageBlockKicker) Zero() bool { if p == nil { return true } if !(p.Kicker == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockKicker) String() string { if p == nil { return "PageBlockKicker(nil)" } type Alias PageBlockKicker return fmt.Sprintf("PageBlockKicker%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockKicker) TypeID() uint32 { return PageBlockKickerTypeID } // TypeName returns name of type in TL schema. func (*PageBlockKicker) TypeName() string { return "pageBlockKicker" } // TypeInfo returns info about TL type. func (p *PageBlockKicker) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockKicker", ID: PageBlockKickerTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Kicker", SchemaName: "kicker", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockKicker) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockKicker#5123864b as nil") } b.PutID(PageBlockKickerTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockKicker) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockKicker#5123864b as nil") } if p.Kicker == nil { return fmt.Errorf("unable to encode pageBlockKicker#5123864b: field kicker is nil") } if err := p.Kicker.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockKicker#5123864b: field kicker: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockKicker) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockKicker#5123864b to nil") } if err := b.ConsumeID(PageBlockKickerTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockKicker#5123864b: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockKicker) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockKicker#5123864b to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockKicker#5123864b: field kicker: %w", err) } p.Kicker = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockKicker) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockKicker#5123864b as nil") } b.ObjStart() b.PutID("pageBlockKicker") b.Comma() b.FieldStart("kicker") if p.Kicker == nil { return fmt.Errorf("unable to encode pageBlockKicker#5123864b: field kicker is nil") } if err := p.Kicker.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockKicker#5123864b: field kicker: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockKicker) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockKicker#5123864b to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockKicker"); err != nil { return fmt.Errorf("unable to decode pageBlockKicker#5123864b: %w", err) } case "kicker": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockKicker#5123864b: field kicker: %w", err) } p.Kicker = value default: return b.Skip() } return nil }) } // GetKicker returns value of Kicker field. func (p *PageBlockKicker) GetKicker() (value RichTextClass) { if p == nil { return } return p.Kicker } // PageBlockParagraph represents TL type `pageBlockParagraph#467a0766`. type PageBlockParagraph struct { // Paragraph text Text RichTextClass } // PageBlockParagraphTypeID is TL type id of PageBlockParagraph. const PageBlockParagraphTypeID = 0x467a0766 // construct implements constructor of PageBlockClass. func (p PageBlockParagraph) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockParagraph. var ( _ bin.Encoder = &PageBlockParagraph{} _ bin.Decoder = &PageBlockParagraph{} _ bin.BareEncoder = &PageBlockParagraph{} _ bin.BareDecoder = &PageBlockParagraph{} _ PageBlockClass = &PageBlockParagraph{} ) func (p *PageBlockParagraph) Zero() bool { if p == nil { return true } if !(p.Text == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockParagraph) String() string { if p == nil { return "PageBlockParagraph(nil)" } type Alias PageBlockParagraph return fmt.Sprintf("PageBlockParagraph%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockParagraph) TypeID() uint32 { return PageBlockParagraphTypeID } // TypeName returns name of type in TL schema. func (*PageBlockParagraph) TypeName() string { return "pageBlockParagraph" } // TypeInfo returns info about TL type. func (p *PageBlockParagraph) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockParagraph", ID: PageBlockParagraphTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Text", SchemaName: "text", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockParagraph) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockParagraph#467a0766 as nil") } b.PutID(PageBlockParagraphTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockParagraph) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockParagraph#467a0766 as nil") } if p.Text == nil { return fmt.Errorf("unable to encode pageBlockParagraph#467a0766: field text is nil") } if err := p.Text.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockParagraph#467a0766: field text: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockParagraph) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockParagraph#467a0766 to nil") } if err := b.ConsumeID(PageBlockParagraphTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockParagraph#467a0766: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockParagraph) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockParagraph#467a0766 to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockParagraph#467a0766: field text: %w", err) } p.Text = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockParagraph) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockParagraph#467a0766 as nil") } b.ObjStart() b.PutID("pageBlockParagraph") b.Comma() b.FieldStart("text") if p.Text == nil { return fmt.Errorf("unable to encode pageBlockParagraph#467a0766: field text is nil") } if err := p.Text.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockParagraph#467a0766: field text: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockParagraph) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockParagraph#467a0766 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockParagraph"); err != nil { return fmt.Errorf("unable to decode pageBlockParagraph#467a0766: %w", err) } case "text": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockParagraph#467a0766: field text: %w", err) } p.Text = value default: return b.Skip() } return nil }) } // GetText returns value of Text field. func (p *PageBlockParagraph) GetText() (value RichTextClass) { if p == nil { return } return p.Text } // PageBlockPreformatted represents TL type `pageBlockPreformatted#c070d93e`. type PageBlockPreformatted struct { // Paragraph text Text RichTextClass // Programming language for which the text needs to be formatted Language string } // PageBlockPreformattedTypeID is TL type id of PageBlockPreformatted. const PageBlockPreformattedTypeID = 0xc070d93e // construct implements constructor of PageBlockClass. func (p PageBlockPreformatted) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockPreformatted. var ( _ bin.Encoder = &PageBlockPreformatted{} _ bin.Decoder = &PageBlockPreformatted{} _ bin.BareEncoder = &PageBlockPreformatted{} _ bin.BareDecoder = &PageBlockPreformatted{} _ PageBlockClass = &PageBlockPreformatted{} ) func (p *PageBlockPreformatted) Zero() bool { if p == nil { return true } if !(p.Text == nil) { return false } if !(p.Language == "") { return false } return true } // String implements fmt.Stringer. func (p *PageBlockPreformatted) String() string { if p == nil { return "PageBlockPreformatted(nil)" } type Alias PageBlockPreformatted return fmt.Sprintf("PageBlockPreformatted%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockPreformatted) TypeID() uint32 { return PageBlockPreformattedTypeID } // TypeName returns name of type in TL schema. func (*PageBlockPreformatted) TypeName() string { return "pageBlockPreformatted" } // TypeInfo returns info about TL type. func (p *PageBlockPreformatted) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockPreformatted", ID: PageBlockPreformattedTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Text", SchemaName: "text", }, { Name: "Language", SchemaName: "language", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockPreformatted) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockPreformatted#c070d93e as nil") } b.PutID(PageBlockPreformattedTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockPreformatted) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockPreformatted#c070d93e as nil") } if p.Text == nil { return fmt.Errorf("unable to encode pageBlockPreformatted#c070d93e: field text is nil") } if err := p.Text.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockPreformatted#c070d93e: field text: %w", err) } b.PutString(p.Language) return nil } // Decode implements bin.Decoder. func (p *PageBlockPreformatted) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockPreformatted#c070d93e to nil") } if err := b.ConsumeID(PageBlockPreformattedTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockPreformatted#c070d93e: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockPreformatted) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockPreformatted#c070d93e to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockPreformatted#c070d93e: field text: %w", err) } p.Text = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockPreformatted#c070d93e: field language: %w", err) } p.Language = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockPreformatted) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockPreformatted#c070d93e as nil") } b.ObjStart() b.PutID("pageBlockPreformatted") b.Comma() b.FieldStart("text") if p.Text == nil { return fmt.Errorf("unable to encode pageBlockPreformatted#c070d93e: field text is nil") } if err := p.Text.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockPreformatted#c070d93e: field text: %w", err) } b.Comma() b.FieldStart("language") b.PutString(p.Language) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockPreformatted) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockPreformatted#c070d93e to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockPreformatted"); err != nil { return fmt.Errorf("unable to decode pageBlockPreformatted#c070d93e: %w", err) } case "text": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockPreformatted#c070d93e: field text: %w", err) } p.Text = value case "language": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockPreformatted#c070d93e: field language: %w", err) } p.Language = value default: return b.Skip() } return nil }) } // GetText returns value of Text field. func (p *PageBlockPreformatted) GetText() (value RichTextClass) { if p == nil { return } return p.Text } // GetLanguage returns value of Language field. func (p *PageBlockPreformatted) GetLanguage() (value string) { if p == nil { return } return p.Language } // PageBlockFooter represents TL type `pageBlockFooter#34d5d728`. type PageBlockFooter struct { // Footer Footer RichTextClass } // PageBlockFooterTypeID is TL type id of PageBlockFooter. const PageBlockFooterTypeID = 0x34d5d728 // construct implements constructor of PageBlockClass. func (p PageBlockFooter) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockFooter. var ( _ bin.Encoder = &PageBlockFooter{} _ bin.Decoder = &PageBlockFooter{} _ bin.BareEncoder = &PageBlockFooter{} _ bin.BareDecoder = &PageBlockFooter{} _ PageBlockClass = &PageBlockFooter{} ) func (p *PageBlockFooter) Zero() bool { if p == nil { return true } if !(p.Footer == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockFooter) String() string { if p == nil { return "PageBlockFooter(nil)" } type Alias PageBlockFooter return fmt.Sprintf("PageBlockFooter%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockFooter) TypeID() uint32 { return PageBlockFooterTypeID } // TypeName returns name of type in TL schema. func (*PageBlockFooter) TypeName() string { return "pageBlockFooter" } // TypeInfo returns info about TL type. func (p *PageBlockFooter) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockFooter", ID: PageBlockFooterTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Footer", SchemaName: "footer", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockFooter) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockFooter#34d5d728 as nil") } b.PutID(PageBlockFooterTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockFooter) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockFooter#34d5d728 as nil") } if p.Footer == nil { return fmt.Errorf("unable to encode pageBlockFooter#34d5d728: field footer is nil") } if err := p.Footer.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockFooter#34d5d728: field footer: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockFooter) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockFooter#34d5d728 to nil") } if err := b.ConsumeID(PageBlockFooterTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockFooter#34d5d728: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockFooter) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockFooter#34d5d728 to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockFooter#34d5d728: field footer: %w", err) } p.Footer = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockFooter) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockFooter#34d5d728 as nil") } b.ObjStart() b.PutID("pageBlockFooter") b.Comma() b.FieldStart("footer") if p.Footer == nil { return fmt.Errorf("unable to encode pageBlockFooter#34d5d728: field footer is nil") } if err := p.Footer.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockFooter#34d5d728: field footer: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockFooter) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockFooter#34d5d728 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockFooter"); err != nil { return fmt.Errorf("unable to decode pageBlockFooter#34d5d728: %w", err) } case "footer": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockFooter#34d5d728: field footer: %w", err) } p.Footer = value default: return b.Skip() } return nil }) } // GetFooter returns value of Footer field. func (p *PageBlockFooter) GetFooter() (value RichTextClass) { if p == nil { return } return p.Footer } // PageBlockDivider represents TL type `pageBlockDivider#db20b188`. type PageBlockDivider struct { } // PageBlockDividerTypeID is TL type id of PageBlockDivider. const PageBlockDividerTypeID = 0xdb20b188 // construct implements constructor of PageBlockClass. func (p PageBlockDivider) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockDivider. var ( _ bin.Encoder = &PageBlockDivider{} _ bin.Decoder = &PageBlockDivider{} _ bin.BareEncoder = &PageBlockDivider{} _ bin.BareDecoder = &PageBlockDivider{} _ PageBlockClass = &PageBlockDivider{} ) func (p *PageBlockDivider) Zero() bool { if p == nil { return true } return true } // String implements fmt.Stringer. func (p *PageBlockDivider) String() string { if p == nil { return "PageBlockDivider(nil)" } type Alias PageBlockDivider return fmt.Sprintf("PageBlockDivider%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockDivider) TypeID() uint32 { return PageBlockDividerTypeID } // TypeName returns name of type in TL schema. func (*PageBlockDivider) TypeName() string { return "pageBlockDivider" } // TypeInfo returns info about TL type. func (p *PageBlockDivider) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockDivider", ID: PageBlockDividerTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{} return typ } // Encode implements bin.Encoder. func (p *PageBlockDivider) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockDivider#db20b188 as nil") } b.PutID(PageBlockDividerTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockDivider) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockDivider#db20b188 as nil") } return nil } // Decode implements bin.Decoder. func (p *PageBlockDivider) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockDivider#db20b188 to nil") } if err := b.ConsumeID(PageBlockDividerTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockDivider#db20b188: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockDivider) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockDivider#db20b188 to nil") } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockDivider) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockDivider#db20b188 as nil") } b.ObjStart() b.PutID("pageBlockDivider") b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockDivider) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockDivider#db20b188 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockDivider"); err != nil { return fmt.Errorf("unable to decode pageBlockDivider#db20b188: %w", err) } default: return b.Skip() } return nil }) } // PageBlockAnchor represents TL type `pageBlockAnchor#ce0d37b0`. type PageBlockAnchor struct { // Name of the anchor Name string } // PageBlockAnchorTypeID is TL type id of PageBlockAnchor. const PageBlockAnchorTypeID = 0xce0d37b0 // construct implements constructor of PageBlockClass. func (p PageBlockAnchor) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockAnchor. var ( _ bin.Encoder = &PageBlockAnchor{} _ bin.Decoder = &PageBlockAnchor{} _ bin.BareEncoder = &PageBlockAnchor{} _ bin.BareDecoder = &PageBlockAnchor{} _ PageBlockClass = &PageBlockAnchor{} ) func (p *PageBlockAnchor) Zero() bool { if p == nil { return true } if !(p.Name == "") { return false } return true } // String implements fmt.Stringer. func (p *PageBlockAnchor) String() string { if p == nil { return "PageBlockAnchor(nil)" } type Alias PageBlockAnchor return fmt.Sprintf("PageBlockAnchor%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockAnchor) TypeID() uint32 { return PageBlockAnchorTypeID } // TypeName returns name of type in TL schema. func (*PageBlockAnchor) TypeName() string { return "pageBlockAnchor" } // TypeInfo returns info about TL type. func (p *PageBlockAnchor) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockAnchor", ID: PageBlockAnchorTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Name", SchemaName: "name", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockAnchor) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockAnchor#ce0d37b0 as nil") } b.PutID(PageBlockAnchorTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockAnchor) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockAnchor#ce0d37b0 as nil") } b.PutString(p.Name) return nil } // Decode implements bin.Decoder. func (p *PageBlockAnchor) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockAnchor#ce0d37b0 to nil") } if err := b.ConsumeID(PageBlockAnchorTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockAnchor#ce0d37b0: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockAnchor) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockAnchor#ce0d37b0 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockAnchor#ce0d37b0: field name: %w", err) } p.Name = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockAnchor) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockAnchor#ce0d37b0 as nil") } b.ObjStart() b.PutID("pageBlockAnchor") b.Comma() b.FieldStart("name") b.PutString(p.Name) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockAnchor) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockAnchor#ce0d37b0 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockAnchor"); err != nil { return fmt.Errorf("unable to decode pageBlockAnchor#ce0d37b0: %w", err) } case "name": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockAnchor#ce0d37b0: field name: %w", err) } p.Name = value default: return b.Skip() } return nil }) } // GetName returns value of Name field. func (p *PageBlockAnchor) GetName() (value string) { if p == nil { return } return p.Name } // PageBlockList represents TL type `pageBlockList#584af35a`. type PageBlockList struct { // The items of the list Items []PageBlockListItem } // PageBlockListTypeID is TL type id of PageBlockList. const PageBlockListTypeID = 0x584af35a // construct implements constructor of PageBlockClass. func (p PageBlockList) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockList. var ( _ bin.Encoder = &PageBlockList{} _ bin.Decoder = &PageBlockList{} _ bin.BareEncoder = &PageBlockList{} _ bin.BareDecoder = &PageBlockList{} _ PageBlockClass = &PageBlockList{} ) func (p *PageBlockList) Zero() bool { if p == nil { return true } if !(p.Items == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockList) String() string { if p == nil { return "PageBlockList(nil)" } type Alias PageBlockList return fmt.Sprintf("PageBlockList%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockList) TypeID() uint32 { return PageBlockListTypeID } // TypeName returns name of type in TL schema. func (*PageBlockList) TypeName() string { return "pageBlockList" } // TypeInfo returns info about TL type. func (p *PageBlockList) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockList", ID: PageBlockListTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Items", SchemaName: "items", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockList) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockList#584af35a as nil") } b.PutID(PageBlockListTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockList) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockList#584af35a as nil") } b.PutInt(len(p.Items)) for idx, v := range p.Items { if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare pageBlockList#584af35a: field items element with index %d: %w", idx, err) } } return nil } // Decode implements bin.Decoder. func (p *PageBlockList) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockList#584af35a to nil") } if err := b.ConsumeID(PageBlockListTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockList#584af35a: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockList) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockList#584af35a to nil") } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode pageBlockList#584af35a: field items: %w", err) } if headerLen > 0 { p.Items = make([]PageBlockListItem, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { var value PageBlockListItem if err := value.DecodeBare(b); err != nil { return fmt.Errorf("unable to decode bare pageBlockList#584af35a: field items: %w", err) } p.Items = append(p.Items, value) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockList) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockList#584af35a as nil") } b.ObjStart() b.PutID("pageBlockList") b.Comma() b.FieldStart("items") b.ArrStart() for idx, v := range p.Items { if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockList#584af35a: field items element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockList) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockList#584af35a to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockList"); err != nil { return fmt.Errorf("unable to decode pageBlockList#584af35a: %w", err) } case "items": if err := b.Arr(func(b tdjson.Decoder) error { var value PageBlockListItem if err := value.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockList#584af35a: field items: %w", err) } p.Items = append(p.Items, value) return nil }); err != nil { return fmt.Errorf("unable to decode pageBlockList#584af35a: field items: %w", err) } default: return b.Skip() } return nil }) } // GetItems returns value of Items field. func (p *PageBlockList) GetItems() (value []PageBlockListItem) { if p == nil { return } return p.Items } // PageBlockBlockQuote represents TL type `pageBlockBlockQuote#62d08a9e`. type PageBlockBlockQuote struct { // Quote text Text RichTextClass // Quote credit Credit RichTextClass } // PageBlockBlockQuoteTypeID is TL type id of PageBlockBlockQuote. const PageBlockBlockQuoteTypeID = 0x62d08a9e // construct implements constructor of PageBlockClass. func (p PageBlockBlockQuote) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockBlockQuote. var ( _ bin.Encoder = &PageBlockBlockQuote{} _ bin.Decoder = &PageBlockBlockQuote{} _ bin.BareEncoder = &PageBlockBlockQuote{} _ bin.BareDecoder = &PageBlockBlockQuote{} _ PageBlockClass = &PageBlockBlockQuote{} ) func (p *PageBlockBlockQuote) Zero() bool { if p == nil { return true } if !(p.Text == nil) { return false } if !(p.Credit == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockBlockQuote) String() string { if p == nil { return "PageBlockBlockQuote(nil)" } type Alias PageBlockBlockQuote return fmt.Sprintf("PageBlockBlockQuote%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockBlockQuote) TypeID() uint32 { return PageBlockBlockQuoteTypeID } // TypeName returns name of type in TL schema. func (*PageBlockBlockQuote) TypeName() string { return "pageBlockBlockQuote" } // TypeInfo returns info about TL type. func (p *PageBlockBlockQuote) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockBlockQuote", ID: PageBlockBlockQuoteTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Text", SchemaName: "text", }, { Name: "Credit", SchemaName: "credit", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockBlockQuote) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockBlockQuote#62d08a9e as nil") } b.PutID(PageBlockBlockQuoteTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockBlockQuote) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockBlockQuote#62d08a9e as nil") } if p.Text == nil { return fmt.Errorf("unable to encode pageBlockBlockQuote#62d08a9e: field text is nil") } if err := p.Text.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockBlockQuote#62d08a9e: field text: %w", err) } if p.Credit == nil { return fmt.Errorf("unable to encode pageBlockBlockQuote#62d08a9e: field credit is nil") } if err := p.Credit.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockBlockQuote#62d08a9e: field credit: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockBlockQuote) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockBlockQuote#62d08a9e to nil") } if err := b.ConsumeID(PageBlockBlockQuoteTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockBlockQuote#62d08a9e: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockBlockQuote) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockBlockQuote#62d08a9e to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockBlockQuote#62d08a9e: field text: %w", err) } p.Text = value } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockBlockQuote#62d08a9e: field credit: %w", err) } p.Credit = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockBlockQuote) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockBlockQuote#62d08a9e as nil") } b.ObjStart() b.PutID("pageBlockBlockQuote") b.Comma() b.FieldStart("text") if p.Text == nil { return fmt.Errorf("unable to encode pageBlockBlockQuote#62d08a9e: field text is nil") } if err := p.Text.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockBlockQuote#62d08a9e: field text: %w", err) } b.Comma() b.FieldStart("credit") if p.Credit == nil { return fmt.Errorf("unable to encode pageBlockBlockQuote#62d08a9e: field credit is nil") } if err := p.Credit.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockBlockQuote#62d08a9e: field credit: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockBlockQuote) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockBlockQuote#62d08a9e to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockBlockQuote"); err != nil { return fmt.Errorf("unable to decode pageBlockBlockQuote#62d08a9e: %w", err) } case "text": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockBlockQuote#62d08a9e: field text: %w", err) } p.Text = value case "credit": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockBlockQuote#62d08a9e: field credit: %w", err) } p.Credit = value default: return b.Skip() } return nil }) } // GetText returns value of Text field. func (p *PageBlockBlockQuote) GetText() (value RichTextClass) { if p == nil { return } return p.Text } // GetCredit returns value of Credit field. func (p *PageBlockBlockQuote) GetCredit() (value RichTextClass) { if p == nil { return } return p.Credit } // PageBlockPullQuote represents TL type `pageBlockPullQuote#1d38810d`. type PageBlockPullQuote struct { // Quote text Text RichTextClass // Quote credit Credit RichTextClass } // PageBlockPullQuoteTypeID is TL type id of PageBlockPullQuote. const PageBlockPullQuoteTypeID = 0x1d38810d // construct implements constructor of PageBlockClass. func (p PageBlockPullQuote) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockPullQuote. var ( _ bin.Encoder = &PageBlockPullQuote{} _ bin.Decoder = &PageBlockPullQuote{} _ bin.BareEncoder = &PageBlockPullQuote{} _ bin.BareDecoder = &PageBlockPullQuote{} _ PageBlockClass = &PageBlockPullQuote{} ) func (p *PageBlockPullQuote) Zero() bool { if p == nil { return true } if !(p.Text == nil) { return false } if !(p.Credit == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockPullQuote) String() string { if p == nil { return "PageBlockPullQuote(nil)" } type Alias PageBlockPullQuote return fmt.Sprintf("PageBlockPullQuote%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockPullQuote) TypeID() uint32 { return PageBlockPullQuoteTypeID } // TypeName returns name of type in TL schema. func (*PageBlockPullQuote) TypeName() string { return "pageBlockPullQuote" } // TypeInfo returns info about TL type. func (p *PageBlockPullQuote) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockPullQuote", ID: PageBlockPullQuoteTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Text", SchemaName: "text", }, { Name: "Credit", SchemaName: "credit", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockPullQuote) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockPullQuote#1d38810d as nil") } b.PutID(PageBlockPullQuoteTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockPullQuote) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockPullQuote#1d38810d as nil") } if p.Text == nil { return fmt.Errorf("unable to encode pageBlockPullQuote#1d38810d: field text is nil") } if err := p.Text.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockPullQuote#1d38810d: field text: %w", err) } if p.Credit == nil { return fmt.Errorf("unable to encode pageBlockPullQuote#1d38810d: field credit is nil") } if err := p.Credit.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockPullQuote#1d38810d: field credit: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockPullQuote) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockPullQuote#1d38810d to nil") } if err := b.ConsumeID(PageBlockPullQuoteTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockPullQuote#1d38810d: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockPullQuote) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockPullQuote#1d38810d to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockPullQuote#1d38810d: field text: %w", err) } p.Text = value } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockPullQuote#1d38810d: field credit: %w", err) } p.Credit = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockPullQuote) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockPullQuote#1d38810d as nil") } b.ObjStart() b.PutID("pageBlockPullQuote") b.Comma() b.FieldStart("text") if p.Text == nil { return fmt.Errorf("unable to encode pageBlockPullQuote#1d38810d: field text is nil") } if err := p.Text.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockPullQuote#1d38810d: field text: %w", err) } b.Comma() b.FieldStart("credit") if p.Credit == nil { return fmt.Errorf("unable to encode pageBlockPullQuote#1d38810d: field credit is nil") } if err := p.Credit.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockPullQuote#1d38810d: field credit: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockPullQuote) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockPullQuote#1d38810d to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockPullQuote"); err != nil { return fmt.Errorf("unable to decode pageBlockPullQuote#1d38810d: %w", err) } case "text": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockPullQuote#1d38810d: field text: %w", err) } p.Text = value case "credit": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockPullQuote#1d38810d: field credit: %w", err) } p.Credit = value default: return b.Skip() } return nil }) } // GetText returns value of Text field. func (p *PageBlockPullQuote) GetText() (value RichTextClass) { if p == nil { return } return p.Text } // GetCredit returns value of Credit field. func (p *PageBlockPullQuote) GetCredit() (value RichTextClass) { if p == nil { return } return p.Credit } // PageBlockAnimation represents TL type `pageBlockAnimation#50cde009`. type PageBlockAnimation struct { // Animation file; may be null Animation Animation // Animation caption Caption PageBlockCaption // True, if the animation must be played automatically NeedAutoplay bool } // PageBlockAnimationTypeID is TL type id of PageBlockAnimation. const PageBlockAnimationTypeID = 0x50cde009 // construct implements constructor of PageBlockClass. func (p PageBlockAnimation) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockAnimation. var ( _ bin.Encoder = &PageBlockAnimation{} _ bin.Decoder = &PageBlockAnimation{} _ bin.BareEncoder = &PageBlockAnimation{} _ bin.BareDecoder = &PageBlockAnimation{} _ PageBlockClass = &PageBlockAnimation{} ) func (p *PageBlockAnimation) Zero() bool { if p == nil { return true } if !(p.Animation.Zero()) { return false } if !(p.Caption.Zero()) { return false } if !(p.NeedAutoplay == false) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockAnimation) String() string { if p == nil { return "PageBlockAnimation(nil)" } type Alias PageBlockAnimation return fmt.Sprintf("PageBlockAnimation%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockAnimation) TypeID() uint32 { return PageBlockAnimationTypeID } // TypeName returns name of type in TL schema. func (*PageBlockAnimation) TypeName() string { return "pageBlockAnimation" } // TypeInfo returns info about TL type. func (p *PageBlockAnimation) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockAnimation", ID: PageBlockAnimationTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Animation", SchemaName: "animation", }, { Name: "Caption", SchemaName: "caption", }, { Name: "NeedAutoplay", SchemaName: "need_autoplay", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockAnimation) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockAnimation#50cde009 as nil") } b.PutID(PageBlockAnimationTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockAnimation) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockAnimation#50cde009 as nil") } if err := p.Animation.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockAnimation#50cde009: field animation: %w", err) } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockAnimation#50cde009: field caption: %w", err) } b.PutBool(p.NeedAutoplay) return nil } // Decode implements bin.Decoder. func (p *PageBlockAnimation) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockAnimation#50cde009 to nil") } if err := b.ConsumeID(PageBlockAnimationTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockAnimation#50cde009: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockAnimation) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockAnimation#50cde009 to nil") } { if err := p.Animation.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockAnimation#50cde009: field animation: %w", err) } } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockAnimation#50cde009: field caption: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockAnimation#50cde009: field need_autoplay: %w", err) } p.NeedAutoplay = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockAnimation) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockAnimation#50cde009 as nil") } b.ObjStart() b.PutID("pageBlockAnimation") b.Comma() b.FieldStart("animation") if err := p.Animation.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockAnimation#50cde009: field animation: %w", err) } b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockAnimation#50cde009: field caption: %w", err) } b.Comma() b.FieldStart("need_autoplay") b.PutBool(p.NeedAutoplay) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockAnimation) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockAnimation#50cde009 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockAnimation"); err != nil { return fmt.Errorf("unable to decode pageBlockAnimation#50cde009: %w", err) } case "animation": if err := p.Animation.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockAnimation#50cde009: field animation: %w", err) } case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockAnimation#50cde009: field caption: %w", err) } case "need_autoplay": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockAnimation#50cde009: field need_autoplay: %w", err) } p.NeedAutoplay = value default: return b.Skip() } return nil }) } // GetAnimation returns value of Animation field. func (p *PageBlockAnimation) GetAnimation() (value Animation) { if p == nil { return } return p.Animation } // GetCaption returns value of Caption field. func (p *PageBlockAnimation) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // GetNeedAutoplay returns value of NeedAutoplay field. func (p *PageBlockAnimation) GetNeedAutoplay() (value bool) { if p == nil { return } return p.NeedAutoplay } // PageBlockAudio represents TL type `pageBlockAudio#fc390813`. type PageBlockAudio struct { // Audio file; may be null Audio Audio // Audio file caption Caption PageBlockCaption } // PageBlockAudioTypeID is TL type id of PageBlockAudio. const PageBlockAudioTypeID = 0xfc390813 // construct implements constructor of PageBlockClass. func (p PageBlockAudio) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockAudio. var ( _ bin.Encoder = &PageBlockAudio{} _ bin.Decoder = &PageBlockAudio{} _ bin.BareEncoder = &PageBlockAudio{} _ bin.BareDecoder = &PageBlockAudio{} _ PageBlockClass = &PageBlockAudio{} ) func (p *PageBlockAudio) Zero() bool { if p == nil { return true } if !(p.Audio.Zero()) { return false } if !(p.Caption.Zero()) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockAudio) String() string { if p == nil { return "PageBlockAudio(nil)" } type Alias PageBlockAudio return fmt.Sprintf("PageBlockAudio%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockAudio) TypeID() uint32 { return PageBlockAudioTypeID } // TypeName returns name of type in TL schema. func (*PageBlockAudio) TypeName() string { return "pageBlockAudio" } // TypeInfo returns info about TL type. func (p *PageBlockAudio) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockAudio", ID: PageBlockAudioTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Audio", SchemaName: "audio", }, { Name: "Caption", SchemaName: "caption", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockAudio) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockAudio#fc390813 as nil") } b.PutID(PageBlockAudioTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockAudio) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockAudio#fc390813 as nil") } if err := p.Audio.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockAudio#fc390813: field audio: %w", err) } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockAudio#fc390813: field caption: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockAudio) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockAudio#fc390813 to nil") } if err := b.ConsumeID(PageBlockAudioTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockAudio#fc390813: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockAudio) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockAudio#fc390813 to nil") } { if err := p.Audio.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockAudio#fc390813: field audio: %w", err) } } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockAudio#fc390813: field caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockAudio) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockAudio#fc390813 as nil") } b.ObjStart() b.PutID("pageBlockAudio") b.Comma() b.FieldStart("audio") if err := p.Audio.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockAudio#fc390813: field audio: %w", err) } b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockAudio#fc390813: field caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockAudio) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockAudio#fc390813 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockAudio"); err != nil { return fmt.Errorf("unable to decode pageBlockAudio#fc390813: %w", err) } case "audio": if err := p.Audio.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockAudio#fc390813: field audio: %w", err) } case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockAudio#fc390813: field caption: %w", err) } default: return b.Skip() } return nil }) } // GetAudio returns value of Audio field. func (p *PageBlockAudio) GetAudio() (value Audio) { if p == nil { return } return p.Audio } // GetCaption returns value of Caption field. func (p *PageBlockAudio) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // PageBlockPhoto represents TL type `pageBlockPhoto#18e41684`. type PageBlockPhoto struct { // Photo file; may be null Photo Photo // Photo caption Caption PageBlockCaption // URL that needs to be opened when the photo is clicked URL string } // PageBlockPhotoTypeID is TL type id of PageBlockPhoto. const PageBlockPhotoTypeID = 0x18e41684 // construct implements constructor of PageBlockClass. func (p PageBlockPhoto) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockPhoto. var ( _ bin.Encoder = &PageBlockPhoto{} _ bin.Decoder = &PageBlockPhoto{} _ bin.BareEncoder = &PageBlockPhoto{} _ bin.BareDecoder = &PageBlockPhoto{} _ PageBlockClass = &PageBlockPhoto{} ) func (p *PageBlockPhoto) Zero() bool { if p == nil { return true } if !(p.Photo.Zero()) { return false } if !(p.Caption.Zero()) { return false } if !(p.URL == "") { return false } return true } // String implements fmt.Stringer. func (p *PageBlockPhoto) String() string { if p == nil { return "PageBlockPhoto(nil)" } type Alias PageBlockPhoto return fmt.Sprintf("PageBlockPhoto%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockPhoto) TypeID() uint32 { return PageBlockPhotoTypeID } // TypeName returns name of type in TL schema. func (*PageBlockPhoto) TypeName() string { return "pageBlockPhoto" } // TypeInfo returns info about TL type. func (p *PageBlockPhoto) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockPhoto", ID: PageBlockPhotoTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Photo", SchemaName: "photo", }, { Name: "Caption", SchemaName: "caption", }, { Name: "URL", SchemaName: "url", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockPhoto) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockPhoto#18e41684 as nil") } b.PutID(PageBlockPhotoTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockPhoto) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockPhoto#18e41684 as nil") } if err := p.Photo.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockPhoto#18e41684: field photo: %w", err) } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockPhoto#18e41684: field caption: %w", err) } b.PutString(p.URL) return nil } // Decode implements bin.Decoder. func (p *PageBlockPhoto) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockPhoto#18e41684 to nil") } if err := b.ConsumeID(PageBlockPhotoTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockPhoto#18e41684: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockPhoto) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockPhoto#18e41684 to nil") } { if err := p.Photo.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockPhoto#18e41684: field photo: %w", err) } } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockPhoto#18e41684: field caption: %w", err) } } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockPhoto#18e41684: field url: %w", err) } p.URL = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockPhoto) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockPhoto#18e41684 as nil") } b.ObjStart() b.PutID("pageBlockPhoto") b.Comma() b.FieldStart("photo") if err := p.Photo.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockPhoto#18e41684: field photo: %w", err) } b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockPhoto#18e41684: field caption: %w", err) } b.Comma() b.FieldStart("url") b.PutString(p.URL) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockPhoto) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockPhoto#18e41684 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockPhoto"); err != nil { return fmt.Errorf("unable to decode pageBlockPhoto#18e41684: %w", err) } case "photo": if err := p.Photo.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockPhoto#18e41684: field photo: %w", err) } case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockPhoto#18e41684: field caption: %w", err) } case "url": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockPhoto#18e41684: field url: %w", err) } p.URL = value default: return b.Skip() } return nil }) } // GetPhoto returns value of Photo field. func (p *PageBlockPhoto) GetPhoto() (value Photo) { if p == nil { return } return p.Photo } // GetCaption returns value of Caption field. func (p *PageBlockPhoto) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // GetURL returns value of URL field. func (p *PageBlockPhoto) GetURL() (value string) { if p == nil { return } return p.URL } // PageBlockVideo represents TL type `pageBlockVideo#1e669d32`. type PageBlockVideo struct { // Video file; may be null Video Video // Video caption Caption PageBlockCaption // True, if the video must be played automatically NeedAutoplay bool // True, if the video must be looped IsLooped bool } // PageBlockVideoTypeID is TL type id of PageBlockVideo. const PageBlockVideoTypeID = 0x1e669d32 // construct implements constructor of PageBlockClass. func (p PageBlockVideo) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockVideo. var ( _ bin.Encoder = &PageBlockVideo{} _ bin.Decoder = &PageBlockVideo{} _ bin.BareEncoder = &PageBlockVideo{} _ bin.BareDecoder = &PageBlockVideo{} _ PageBlockClass = &PageBlockVideo{} ) func (p *PageBlockVideo) Zero() bool { if p == nil { return true } if !(p.Video.Zero()) { return false } if !(p.Caption.Zero()) { return false } if !(p.NeedAutoplay == false) { return false } if !(p.IsLooped == false) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockVideo) String() string { if p == nil { return "PageBlockVideo(nil)" } type Alias PageBlockVideo return fmt.Sprintf("PageBlockVideo%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockVideo) TypeID() uint32 { return PageBlockVideoTypeID } // TypeName returns name of type in TL schema. func (*PageBlockVideo) TypeName() string { return "pageBlockVideo" } // TypeInfo returns info about TL type. func (p *PageBlockVideo) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockVideo", ID: PageBlockVideoTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Video", SchemaName: "video", }, { Name: "Caption", SchemaName: "caption", }, { Name: "NeedAutoplay", SchemaName: "need_autoplay", }, { Name: "IsLooped", SchemaName: "is_looped", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockVideo) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockVideo#1e669d32 as nil") } b.PutID(PageBlockVideoTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockVideo) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockVideo#1e669d32 as nil") } if err := p.Video.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockVideo#1e669d32: field video: %w", err) } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockVideo#1e669d32: field caption: %w", err) } b.PutBool(p.NeedAutoplay) b.PutBool(p.IsLooped) return nil } // Decode implements bin.Decoder. func (p *PageBlockVideo) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockVideo#1e669d32 to nil") } if err := b.ConsumeID(PageBlockVideoTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockVideo) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockVideo#1e669d32 to nil") } { if err := p.Video.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: field video: %w", err) } } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: field caption: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: field need_autoplay: %w", err) } p.NeedAutoplay = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: field is_looped: %w", err) } p.IsLooped = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockVideo) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockVideo#1e669d32 as nil") } b.ObjStart() b.PutID("pageBlockVideo") b.Comma() b.FieldStart("video") if err := p.Video.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockVideo#1e669d32: field video: %w", err) } b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockVideo#1e669d32: field caption: %w", err) } b.Comma() b.FieldStart("need_autoplay") b.PutBool(p.NeedAutoplay) b.Comma() b.FieldStart("is_looped") b.PutBool(p.IsLooped) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockVideo) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockVideo#1e669d32 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockVideo"); err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: %w", err) } case "video": if err := p.Video.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: field video: %w", err) } case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: field caption: %w", err) } case "need_autoplay": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: field need_autoplay: %w", err) } p.NeedAutoplay = value case "is_looped": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockVideo#1e669d32: field is_looped: %w", err) } p.IsLooped = value default: return b.Skip() } return nil }) } // GetVideo returns value of Video field. func (p *PageBlockVideo) GetVideo() (value Video) { if p == nil { return } return p.Video } // GetCaption returns value of Caption field. func (p *PageBlockVideo) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // GetNeedAutoplay returns value of NeedAutoplay field. func (p *PageBlockVideo) GetNeedAutoplay() (value bool) { if p == nil { return } return p.NeedAutoplay } // GetIsLooped returns value of IsLooped field. func (p *PageBlockVideo) GetIsLooped() (value bool) { if p == nil { return } return p.IsLooped } // PageBlockVoiceNote represents TL type `pageBlockVoiceNote#6cad827f`. type PageBlockVoiceNote struct { // Voice note; may be null VoiceNote VoiceNote // Voice note caption Caption PageBlockCaption } // PageBlockVoiceNoteTypeID is TL type id of PageBlockVoiceNote. const PageBlockVoiceNoteTypeID = 0x6cad827f // construct implements constructor of PageBlockClass. func (p PageBlockVoiceNote) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockVoiceNote. var ( _ bin.Encoder = &PageBlockVoiceNote{} _ bin.Decoder = &PageBlockVoiceNote{} _ bin.BareEncoder = &PageBlockVoiceNote{} _ bin.BareDecoder = &PageBlockVoiceNote{} _ PageBlockClass = &PageBlockVoiceNote{} ) func (p *PageBlockVoiceNote) Zero() bool { if p == nil { return true } if !(p.VoiceNote.Zero()) { return false } if !(p.Caption.Zero()) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockVoiceNote) String() string { if p == nil { return "PageBlockVoiceNote(nil)" } type Alias PageBlockVoiceNote return fmt.Sprintf("PageBlockVoiceNote%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockVoiceNote) TypeID() uint32 { return PageBlockVoiceNoteTypeID } // TypeName returns name of type in TL schema. func (*PageBlockVoiceNote) TypeName() string { return "pageBlockVoiceNote" } // TypeInfo returns info about TL type. func (p *PageBlockVoiceNote) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockVoiceNote", ID: PageBlockVoiceNoteTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "VoiceNote", SchemaName: "voice_note", }, { Name: "Caption", SchemaName: "caption", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockVoiceNote) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockVoiceNote#6cad827f as nil") } b.PutID(PageBlockVoiceNoteTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockVoiceNote) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockVoiceNote#6cad827f as nil") } if err := p.VoiceNote.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockVoiceNote#6cad827f: field voice_note: %w", err) } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockVoiceNote#6cad827f: field caption: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockVoiceNote) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockVoiceNote#6cad827f to nil") } if err := b.ConsumeID(PageBlockVoiceNoteTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockVoiceNote#6cad827f: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockVoiceNote) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockVoiceNote#6cad827f to nil") } { if err := p.VoiceNote.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockVoiceNote#6cad827f: field voice_note: %w", err) } } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockVoiceNote#6cad827f: field caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockVoiceNote) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockVoiceNote#6cad827f as nil") } b.ObjStart() b.PutID("pageBlockVoiceNote") b.Comma() b.FieldStart("voice_note") if err := p.VoiceNote.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockVoiceNote#6cad827f: field voice_note: %w", err) } b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockVoiceNote#6cad827f: field caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockVoiceNote) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockVoiceNote#6cad827f to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockVoiceNote"); err != nil { return fmt.Errorf("unable to decode pageBlockVoiceNote#6cad827f: %w", err) } case "voice_note": if err := p.VoiceNote.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockVoiceNote#6cad827f: field voice_note: %w", err) } case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockVoiceNote#6cad827f: field caption: %w", err) } default: return b.Skip() } return nil }) } // GetVoiceNote returns value of VoiceNote field. func (p *PageBlockVoiceNote) GetVoiceNote() (value VoiceNote) { if p == nil { return } return p.VoiceNote } // GetCaption returns value of Caption field. func (p *PageBlockVoiceNote) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // PageBlockCover represents TL type `pageBlockCover#39f23300`. type PageBlockCover struct { // Cover Cover PageBlockClass } // PageBlockCoverTypeID is TL type id of PageBlockCover. const PageBlockCoverTypeID = 0x39f23300 // construct implements constructor of PageBlockClass. func (p PageBlockCover) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockCover. var ( _ bin.Encoder = &PageBlockCover{} _ bin.Decoder = &PageBlockCover{} _ bin.BareEncoder = &PageBlockCover{} _ bin.BareDecoder = &PageBlockCover{} _ PageBlockClass = &PageBlockCover{} ) func (p *PageBlockCover) Zero() bool { if p == nil { return true } if !(p.Cover == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockCover) String() string { if p == nil { return "PageBlockCover(nil)" } type Alias PageBlockCover return fmt.Sprintf("PageBlockCover%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockCover) TypeID() uint32 { return PageBlockCoverTypeID } // TypeName returns name of type in TL schema. func (*PageBlockCover) TypeName() string { return "pageBlockCover" } // TypeInfo returns info about TL type. func (p *PageBlockCover) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockCover", ID: PageBlockCoverTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Cover", SchemaName: "cover", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockCover) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockCover#39f23300 as nil") } b.PutID(PageBlockCoverTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockCover) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockCover#39f23300 as nil") } if p.Cover == nil { return fmt.Errorf("unable to encode pageBlockCover#39f23300: field cover is nil") } if err := p.Cover.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockCover#39f23300: field cover: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockCover) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockCover#39f23300 to nil") } if err := b.ConsumeID(PageBlockCoverTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockCover#39f23300: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockCover) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockCover#39f23300 to nil") } { value, err := DecodePageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockCover#39f23300: field cover: %w", err) } p.Cover = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockCover) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockCover#39f23300 as nil") } b.ObjStart() b.PutID("pageBlockCover") b.Comma() b.FieldStart("cover") if p.Cover == nil { return fmt.Errorf("unable to encode pageBlockCover#39f23300: field cover is nil") } if err := p.Cover.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockCover#39f23300: field cover: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockCover) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockCover#39f23300 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockCover"); err != nil { return fmt.Errorf("unable to decode pageBlockCover#39f23300: %w", err) } case "cover": value, err := DecodeTDLibJSONPageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockCover#39f23300: field cover: %w", err) } p.Cover = value default: return b.Skip() } return nil }) } // GetCover returns value of Cover field. func (p *PageBlockCover) GetCover() (value PageBlockClass) { if p == nil { return } return p.Cover } // PageBlockEmbedded represents TL type `pageBlockEmbedded#8c369d9d`. type PageBlockEmbedded struct { // URL of the embedded page, if available URL string // HTML-markup of the embedded page HTML string // Poster photo, if available; may be null PosterPhoto Photo // Block width; 0 if unknown Width int32 // Block height; 0 if unknown Height int32 // Block caption Caption PageBlockCaption // True, if the block must be full width IsFullWidth bool // True, if scrolling needs to be allowed AllowScrolling bool } // PageBlockEmbeddedTypeID is TL type id of PageBlockEmbedded. const PageBlockEmbeddedTypeID = 0x8c369d9d // construct implements constructor of PageBlockClass. func (p PageBlockEmbedded) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockEmbedded. var ( _ bin.Encoder = &PageBlockEmbedded{} _ bin.Decoder = &PageBlockEmbedded{} _ bin.BareEncoder = &PageBlockEmbedded{} _ bin.BareDecoder = &PageBlockEmbedded{} _ PageBlockClass = &PageBlockEmbedded{} ) func (p *PageBlockEmbedded) Zero() bool { if p == nil { return true } if !(p.URL == "") { return false } if !(p.HTML == "") { return false } if !(p.PosterPhoto.Zero()) { return false } if !(p.Width == 0) { return false } if !(p.Height == 0) { return false } if !(p.Caption.Zero()) { return false } if !(p.IsFullWidth == false) { return false } if !(p.AllowScrolling == false) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockEmbedded) String() string { if p == nil { return "PageBlockEmbedded(nil)" } type Alias PageBlockEmbedded return fmt.Sprintf("PageBlockEmbedded%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockEmbedded) TypeID() uint32 { return PageBlockEmbeddedTypeID } // TypeName returns name of type in TL schema. func (*PageBlockEmbedded) TypeName() string { return "pageBlockEmbedded" } // TypeInfo returns info about TL type. func (p *PageBlockEmbedded) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockEmbedded", ID: PageBlockEmbeddedTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "URL", SchemaName: "url", }, { Name: "HTML", SchemaName: "html", }, { Name: "PosterPhoto", SchemaName: "poster_photo", }, { Name: "Width", SchemaName: "width", }, { Name: "Height", SchemaName: "height", }, { Name: "Caption", SchemaName: "caption", }, { Name: "IsFullWidth", SchemaName: "is_full_width", }, { Name: "AllowScrolling", SchemaName: "allow_scrolling", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockEmbedded) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockEmbedded#8c369d9d as nil") } b.PutID(PageBlockEmbeddedTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockEmbedded) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockEmbedded#8c369d9d as nil") } b.PutString(p.URL) b.PutString(p.HTML) if err := p.PosterPhoto.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbedded#8c369d9d: field poster_photo: %w", err) } b.PutInt32(p.Width) b.PutInt32(p.Height) if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbedded#8c369d9d: field caption: %w", err) } b.PutBool(p.IsFullWidth) b.PutBool(p.AllowScrolling) return nil } // Decode implements bin.Decoder. func (p *PageBlockEmbedded) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockEmbedded#8c369d9d to nil") } if err := b.ConsumeID(PageBlockEmbeddedTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockEmbedded) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockEmbedded#8c369d9d to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field url: %w", err) } p.URL = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field html: %w", err) } p.HTML = value } { if err := p.PosterPhoto.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field poster_photo: %w", err) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field width: %w", err) } p.Width = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field height: %w", err) } p.Height = value } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field caption: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field is_full_width: %w", err) } p.IsFullWidth = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field allow_scrolling: %w", err) } p.AllowScrolling = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockEmbedded) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockEmbedded#8c369d9d as nil") } b.ObjStart() b.PutID("pageBlockEmbedded") b.Comma() b.FieldStart("url") b.PutString(p.URL) b.Comma() b.FieldStart("html") b.PutString(p.HTML) b.Comma() b.FieldStart("poster_photo") if err := p.PosterPhoto.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbedded#8c369d9d: field poster_photo: %w", err) } b.Comma() b.FieldStart("width") b.PutInt32(p.Width) b.Comma() b.FieldStart("height") b.PutInt32(p.Height) b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbedded#8c369d9d: field caption: %w", err) } b.Comma() b.FieldStart("is_full_width") b.PutBool(p.IsFullWidth) b.Comma() b.FieldStart("allow_scrolling") b.PutBool(p.AllowScrolling) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockEmbedded) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockEmbedded#8c369d9d to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockEmbedded"); err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: %w", err) } case "url": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field url: %w", err) } p.URL = value case "html": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field html: %w", err) } p.HTML = value case "poster_photo": if err := p.PosterPhoto.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field poster_photo: %w", err) } case "width": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field width: %w", err) } p.Width = value case "height": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field height: %w", err) } p.Height = value case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field caption: %w", err) } case "is_full_width": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field is_full_width: %w", err) } p.IsFullWidth = value case "allow_scrolling": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbedded#8c369d9d: field allow_scrolling: %w", err) } p.AllowScrolling = value default: return b.Skip() } return nil }) } // GetURL returns value of URL field. func (p *PageBlockEmbedded) GetURL() (value string) { if p == nil { return } return p.URL } // GetHTML returns value of HTML field. func (p *PageBlockEmbedded) GetHTML() (value string) { if p == nil { return } return p.HTML } // GetPosterPhoto returns value of PosterPhoto field. func (p *PageBlockEmbedded) GetPosterPhoto() (value Photo) { if p == nil { return } return p.PosterPhoto } // GetWidth returns value of Width field. func (p *PageBlockEmbedded) GetWidth() (value int32) { if p == nil { return } return p.Width } // GetHeight returns value of Height field. func (p *PageBlockEmbedded) GetHeight() (value int32) { if p == nil { return } return p.Height } // GetCaption returns value of Caption field. func (p *PageBlockEmbedded) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // GetIsFullWidth returns value of IsFullWidth field. func (p *PageBlockEmbedded) GetIsFullWidth() (value bool) { if p == nil { return } return p.IsFullWidth } // GetAllowScrolling returns value of AllowScrolling field. func (p *PageBlockEmbedded) GetAllowScrolling() (value bool) { if p == nil { return } return p.AllowScrolling } // PageBlockEmbeddedPost represents TL type `pageBlockEmbeddedPost#bc57cdf5`. type PageBlockEmbeddedPost struct { // URL of the embedded post URL string // Post author Author string // Post author photo; may be null AuthorPhoto Photo // Point in time (Unix timestamp) when the post was created; 0 if unknown Date int32 // Post content PageBlocks []PageBlockClass // Post caption Caption PageBlockCaption } // PageBlockEmbeddedPostTypeID is TL type id of PageBlockEmbeddedPost. const PageBlockEmbeddedPostTypeID = 0xbc57cdf5 // construct implements constructor of PageBlockClass. func (p PageBlockEmbeddedPost) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockEmbeddedPost. var ( _ bin.Encoder = &PageBlockEmbeddedPost{} _ bin.Decoder = &PageBlockEmbeddedPost{} _ bin.BareEncoder = &PageBlockEmbeddedPost{} _ bin.BareDecoder = &PageBlockEmbeddedPost{} _ PageBlockClass = &PageBlockEmbeddedPost{} ) func (p *PageBlockEmbeddedPost) Zero() bool { if p == nil { return true } if !(p.URL == "") { return false } if !(p.Author == "") { return false } if !(p.AuthorPhoto.Zero()) { return false } if !(p.Date == 0) { return false } if !(p.PageBlocks == nil) { return false } if !(p.Caption.Zero()) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockEmbeddedPost) String() string { if p == nil { return "PageBlockEmbeddedPost(nil)" } type Alias PageBlockEmbeddedPost return fmt.Sprintf("PageBlockEmbeddedPost%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockEmbeddedPost) TypeID() uint32 { return PageBlockEmbeddedPostTypeID } // TypeName returns name of type in TL schema. func (*PageBlockEmbeddedPost) TypeName() string { return "pageBlockEmbeddedPost" } // TypeInfo returns info about TL type. func (p *PageBlockEmbeddedPost) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockEmbeddedPost", ID: PageBlockEmbeddedPostTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "URL", SchemaName: "url", }, { Name: "Author", SchemaName: "author", }, { Name: "AuthorPhoto", SchemaName: "author_photo", }, { Name: "Date", SchemaName: "date", }, { Name: "PageBlocks", SchemaName: "page_blocks", }, { Name: "Caption", SchemaName: "caption", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockEmbeddedPost) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockEmbeddedPost#bc57cdf5 as nil") } b.PutID(PageBlockEmbeddedPostTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockEmbeddedPost) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockEmbeddedPost#bc57cdf5 as nil") } b.PutString(p.URL) b.PutString(p.Author) if err := p.AuthorPhoto.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbeddedPost#bc57cdf5: field author_photo: %w", err) } b.PutInt32(p.Date) b.PutInt(len(p.PageBlocks)) for idx, v := range p.PageBlocks { if v == nil { return fmt.Errorf("unable to encode pageBlockEmbeddedPost#bc57cdf5: field page_blocks element with index %d is nil", idx) } if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare pageBlockEmbeddedPost#bc57cdf5: field page_blocks element with index %d: %w", idx, err) } } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbeddedPost#bc57cdf5: field caption: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockEmbeddedPost) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockEmbeddedPost#bc57cdf5 to nil") } if err := b.ConsumeID(PageBlockEmbeddedPostTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockEmbeddedPost) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockEmbeddedPost#bc57cdf5 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field url: %w", err) } p.URL = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field author: %w", err) } p.Author = value } { if err := p.AuthorPhoto.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field author_photo: %w", err) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field date: %w", err) } p.Date = value } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field page_blocks: %w", err) } if headerLen > 0 { p.PageBlocks = make([]PageBlockClass, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { value, err := DecodePageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field page_blocks: %w", err) } p.PageBlocks = append(p.PageBlocks, value) } } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockEmbeddedPost) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockEmbeddedPost#bc57cdf5 as nil") } b.ObjStart() b.PutID("pageBlockEmbeddedPost") b.Comma() b.FieldStart("url") b.PutString(p.URL) b.Comma() b.FieldStart("author") b.PutString(p.Author) b.Comma() b.FieldStart("author_photo") if err := p.AuthorPhoto.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbeddedPost#bc57cdf5: field author_photo: %w", err) } b.Comma() b.FieldStart("date") b.PutInt32(p.Date) b.Comma() b.FieldStart("page_blocks") b.ArrStart() for idx, v := range p.PageBlocks { if v == nil { return fmt.Errorf("unable to encode pageBlockEmbeddedPost#bc57cdf5: field page_blocks element with index %d is nil", idx) } if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbeddedPost#bc57cdf5: field page_blocks element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockEmbeddedPost#bc57cdf5: field caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockEmbeddedPost) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockEmbeddedPost#bc57cdf5 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockEmbeddedPost"); err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: %w", err) } case "url": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field url: %w", err) } p.URL = value case "author": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field author: %w", err) } p.Author = value case "author_photo": if err := p.AuthorPhoto.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field author_photo: %w", err) } case "date": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field date: %w", err) } p.Date = value case "page_blocks": if err := b.Arr(func(b tdjson.Decoder) error { value, err := DecodeTDLibJSONPageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field page_blocks: %w", err) } p.PageBlocks = append(p.PageBlocks, value) return nil }); err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field page_blocks: %w", err) } case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockEmbeddedPost#bc57cdf5: field caption: %w", err) } default: return b.Skip() } return nil }) } // GetURL returns value of URL field. func (p *PageBlockEmbeddedPost) GetURL() (value string) { if p == nil { return } return p.URL } // GetAuthor returns value of Author field. func (p *PageBlockEmbeddedPost) GetAuthor() (value string) { if p == nil { return } return p.Author } // GetAuthorPhoto returns value of AuthorPhoto field. func (p *PageBlockEmbeddedPost) GetAuthorPhoto() (value Photo) { if p == nil { return } return p.AuthorPhoto } // GetDate returns value of Date field. func (p *PageBlockEmbeddedPost) GetDate() (value int32) { if p == nil { return } return p.Date } // GetPageBlocks returns value of PageBlocks field. func (p *PageBlockEmbeddedPost) GetPageBlocks() (value []PageBlockClass) { if p == nil { return } return p.PageBlocks } // GetCaption returns value of Caption field. func (p *PageBlockEmbeddedPost) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // PageBlockCollage represents TL type `pageBlockCollage#40bcaaf0`. type PageBlockCollage struct { // Collage item contents PageBlocks []PageBlockClass // Block caption Caption PageBlockCaption } // PageBlockCollageTypeID is TL type id of PageBlockCollage. const PageBlockCollageTypeID = 0x40bcaaf0 // construct implements constructor of PageBlockClass. func (p PageBlockCollage) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockCollage. var ( _ bin.Encoder = &PageBlockCollage{} _ bin.Decoder = &PageBlockCollage{} _ bin.BareEncoder = &PageBlockCollage{} _ bin.BareDecoder = &PageBlockCollage{} _ PageBlockClass = &PageBlockCollage{} ) func (p *PageBlockCollage) Zero() bool { if p == nil { return true } if !(p.PageBlocks == nil) { return false } if !(p.Caption.Zero()) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockCollage) String() string { if p == nil { return "PageBlockCollage(nil)" } type Alias PageBlockCollage return fmt.Sprintf("PageBlockCollage%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockCollage) TypeID() uint32 { return PageBlockCollageTypeID } // TypeName returns name of type in TL schema. func (*PageBlockCollage) TypeName() string { return "pageBlockCollage" } // TypeInfo returns info about TL type. func (p *PageBlockCollage) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockCollage", ID: PageBlockCollageTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "PageBlocks", SchemaName: "page_blocks", }, { Name: "Caption", SchemaName: "caption", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockCollage) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockCollage#40bcaaf0 as nil") } b.PutID(PageBlockCollageTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockCollage) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockCollage#40bcaaf0 as nil") } b.PutInt(len(p.PageBlocks)) for idx, v := range p.PageBlocks { if v == nil { return fmt.Errorf("unable to encode pageBlockCollage#40bcaaf0: field page_blocks element with index %d is nil", idx) } if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare pageBlockCollage#40bcaaf0: field page_blocks element with index %d: %w", idx, err) } } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockCollage#40bcaaf0: field caption: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockCollage) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockCollage#40bcaaf0 to nil") } if err := b.ConsumeID(PageBlockCollageTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockCollage#40bcaaf0: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockCollage) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockCollage#40bcaaf0 to nil") } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode pageBlockCollage#40bcaaf0: field page_blocks: %w", err) } if headerLen > 0 { p.PageBlocks = make([]PageBlockClass, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { value, err := DecodePageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockCollage#40bcaaf0: field page_blocks: %w", err) } p.PageBlocks = append(p.PageBlocks, value) } } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockCollage#40bcaaf0: field caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockCollage) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockCollage#40bcaaf0 as nil") } b.ObjStart() b.PutID("pageBlockCollage") b.Comma() b.FieldStart("page_blocks") b.ArrStart() for idx, v := range p.PageBlocks { if v == nil { return fmt.Errorf("unable to encode pageBlockCollage#40bcaaf0: field page_blocks element with index %d is nil", idx) } if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockCollage#40bcaaf0: field page_blocks element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockCollage#40bcaaf0: field caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockCollage) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockCollage#40bcaaf0 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockCollage"); err != nil { return fmt.Errorf("unable to decode pageBlockCollage#40bcaaf0: %w", err) } case "page_blocks": if err := b.Arr(func(b tdjson.Decoder) error { value, err := DecodeTDLibJSONPageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockCollage#40bcaaf0: field page_blocks: %w", err) } p.PageBlocks = append(p.PageBlocks, value) return nil }); err != nil { return fmt.Errorf("unable to decode pageBlockCollage#40bcaaf0: field page_blocks: %w", err) } case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockCollage#40bcaaf0: field caption: %w", err) } default: return b.Skip() } return nil }) } // GetPageBlocks returns value of PageBlocks field. func (p *PageBlockCollage) GetPageBlocks() (value []PageBlockClass) { if p == nil { return } return p.PageBlocks } // GetCaption returns value of Caption field. func (p *PageBlockCollage) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // PageBlockSlideshow represents TL type `pageBlockSlideshow#1107d496`. type PageBlockSlideshow struct { // Slideshow item contents PageBlocks []PageBlockClass // Block caption Caption PageBlockCaption } // PageBlockSlideshowTypeID is TL type id of PageBlockSlideshow. const PageBlockSlideshowTypeID = 0x1107d496 // construct implements constructor of PageBlockClass. func (p PageBlockSlideshow) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockSlideshow. var ( _ bin.Encoder = &PageBlockSlideshow{} _ bin.Decoder = &PageBlockSlideshow{} _ bin.BareEncoder = &PageBlockSlideshow{} _ bin.BareDecoder = &PageBlockSlideshow{} _ PageBlockClass = &PageBlockSlideshow{} ) func (p *PageBlockSlideshow) Zero() bool { if p == nil { return true } if !(p.PageBlocks == nil) { return false } if !(p.Caption.Zero()) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockSlideshow) String() string { if p == nil { return "PageBlockSlideshow(nil)" } type Alias PageBlockSlideshow return fmt.Sprintf("PageBlockSlideshow%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockSlideshow) TypeID() uint32 { return PageBlockSlideshowTypeID } // TypeName returns name of type in TL schema. func (*PageBlockSlideshow) TypeName() string { return "pageBlockSlideshow" } // TypeInfo returns info about TL type. func (p *PageBlockSlideshow) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockSlideshow", ID: PageBlockSlideshowTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "PageBlocks", SchemaName: "page_blocks", }, { Name: "Caption", SchemaName: "caption", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockSlideshow) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockSlideshow#1107d496 as nil") } b.PutID(PageBlockSlideshowTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockSlideshow) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockSlideshow#1107d496 as nil") } b.PutInt(len(p.PageBlocks)) for idx, v := range p.PageBlocks { if v == nil { return fmt.Errorf("unable to encode pageBlockSlideshow#1107d496: field page_blocks element with index %d is nil", idx) } if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare pageBlockSlideshow#1107d496: field page_blocks element with index %d: %w", idx, err) } } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockSlideshow#1107d496: field caption: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockSlideshow) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockSlideshow#1107d496 to nil") } if err := b.ConsumeID(PageBlockSlideshowTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockSlideshow#1107d496: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockSlideshow) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockSlideshow#1107d496 to nil") } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode pageBlockSlideshow#1107d496: field page_blocks: %w", err) } if headerLen > 0 { p.PageBlocks = make([]PageBlockClass, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { value, err := DecodePageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockSlideshow#1107d496: field page_blocks: %w", err) } p.PageBlocks = append(p.PageBlocks, value) } } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockSlideshow#1107d496: field caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockSlideshow) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockSlideshow#1107d496 as nil") } b.ObjStart() b.PutID("pageBlockSlideshow") b.Comma() b.FieldStart("page_blocks") b.ArrStart() for idx, v := range p.PageBlocks { if v == nil { return fmt.Errorf("unable to encode pageBlockSlideshow#1107d496: field page_blocks element with index %d is nil", idx) } if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockSlideshow#1107d496: field page_blocks element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockSlideshow#1107d496: field caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockSlideshow) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockSlideshow#1107d496 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockSlideshow"); err != nil { return fmt.Errorf("unable to decode pageBlockSlideshow#1107d496: %w", err) } case "page_blocks": if err := b.Arr(func(b tdjson.Decoder) error { value, err := DecodeTDLibJSONPageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockSlideshow#1107d496: field page_blocks: %w", err) } p.PageBlocks = append(p.PageBlocks, value) return nil }); err != nil { return fmt.Errorf("unable to decode pageBlockSlideshow#1107d496: field page_blocks: %w", err) } case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockSlideshow#1107d496: field caption: %w", err) } default: return b.Skip() } return nil }) } // GetPageBlocks returns value of PageBlocks field. func (p *PageBlockSlideshow) GetPageBlocks() (value []PageBlockClass) { if p == nil { return } return p.PageBlocks } // GetCaption returns value of Caption field. func (p *PageBlockSlideshow) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // PageBlockChatLink represents TL type `pageBlockChatLink#621ed8bb`. type PageBlockChatLink struct { // Chat title Title string // Chat photo; may be null Photo ChatPhotoInfo // Identifier of the accent color for chat title and background of chat photo AccentColorID int32 // Chat username by which all other information about the chat can be resolved Username string } // PageBlockChatLinkTypeID is TL type id of PageBlockChatLink. const PageBlockChatLinkTypeID = 0x621ed8bb // construct implements constructor of PageBlockClass. func (p PageBlockChatLink) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockChatLink. var ( _ bin.Encoder = &PageBlockChatLink{} _ bin.Decoder = &PageBlockChatLink{} _ bin.BareEncoder = &PageBlockChatLink{} _ bin.BareDecoder = &PageBlockChatLink{} _ PageBlockClass = &PageBlockChatLink{} ) func (p *PageBlockChatLink) Zero() bool { if p == nil { return true } if !(p.Title == "") { return false } if !(p.Photo.Zero()) { return false } if !(p.AccentColorID == 0) { return false } if !(p.Username == "") { return false } return true } // String implements fmt.Stringer. func (p *PageBlockChatLink) String() string { if p == nil { return "PageBlockChatLink(nil)" } type Alias PageBlockChatLink return fmt.Sprintf("PageBlockChatLink%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockChatLink) TypeID() uint32 { return PageBlockChatLinkTypeID } // TypeName returns name of type in TL schema. func (*PageBlockChatLink) TypeName() string { return "pageBlockChatLink" } // TypeInfo returns info about TL type. func (p *PageBlockChatLink) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockChatLink", ID: PageBlockChatLinkTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Title", SchemaName: "title", }, { Name: "Photo", SchemaName: "photo", }, { Name: "AccentColorID", SchemaName: "accent_color_id", }, { Name: "Username", SchemaName: "username", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockChatLink) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockChatLink#621ed8bb as nil") } b.PutID(PageBlockChatLinkTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockChatLink) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockChatLink#621ed8bb as nil") } b.PutString(p.Title) if err := p.Photo.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockChatLink#621ed8bb: field photo: %w", err) } b.PutInt32(p.AccentColorID) b.PutString(p.Username) return nil } // Decode implements bin.Decoder. func (p *PageBlockChatLink) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockChatLink#621ed8bb to nil") } if err := b.ConsumeID(PageBlockChatLinkTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockChatLink) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockChatLink#621ed8bb to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: field title: %w", err) } p.Title = value } { if err := p.Photo.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: field photo: %w", err) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: field accent_color_id: %w", err) } p.AccentColorID = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: field username: %w", err) } p.Username = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockChatLink) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockChatLink#621ed8bb as nil") } b.ObjStart() b.PutID("pageBlockChatLink") b.Comma() b.FieldStart("title") b.PutString(p.Title) b.Comma() b.FieldStart("photo") if err := p.Photo.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockChatLink#621ed8bb: field photo: %w", err) } b.Comma() b.FieldStart("accent_color_id") b.PutInt32(p.AccentColorID) b.Comma() b.FieldStart("username") b.PutString(p.Username) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockChatLink) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockChatLink#621ed8bb to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockChatLink"); err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: %w", err) } case "title": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: field title: %w", err) } p.Title = value case "photo": if err := p.Photo.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: field photo: %w", err) } case "accent_color_id": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: field accent_color_id: %w", err) } p.AccentColorID = value case "username": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode pageBlockChatLink#621ed8bb: field username: %w", err) } p.Username = value default: return b.Skip() } return nil }) } // GetTitle returns value of Title field. func (p *PageBlockChatLink) GetTitle() (value string) { if p == nil { return } return p.Title } // GetPhoto returns value of Photo field. func (p *PageBlockChatLink) GetPhoto() (value ChatPhotoInfo) { if p == nil { return } return p.Photo } // GetAccentColorID returns value of AccentColorID field. func (p *PageBlockChatLink) GetAccentColorID() (value int32) { if p == nil { return } return p.AccentColorID } // GetUsername returns value of Username field. func (p *PageBlockChatLink) GetUsername() (value string) { if p == nil { return } return p.Username } // PageBlockTable represents TL type `pageBlockTable#cc6352c3`. type PageBlockTable struct { // Table caption Caption RichTextClass // Table cells Cells [][]PageBlockTableCell // True, if the table is bordered IsBordered bool // True, if the table is striped IsStriped bool } // PageBlockTableTypeID is TL type id of PageBlockTable. const PageBlockTableTypeID = 0xcc6352c3 // construct implements constructor of PageBlockClass. func (p PageBlockTable) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockTable. var ( _ bin.Encoder = &PageBlockTable{} _ bin.Decoder = &PageBlockTable{} _ bin.BareEncoder = &PageBlockTable{} _ bin.BareDecoder = &PageBlockTable{} _ PageBlockClass = &PageBlockTable{} ) func (p *PageBlockTable) Zero() bool { if p == nil { return true } if !(p.Caption == nil) { return false } if !(p.Cells == nil) { return false } if !(p.IsBordered == false) { return false } if !(p.IsStriped == false) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockTable) String() string { if p == nil { return "PageBlockTable(nil)" } type Alias PageBlockTable return fmt.Sprintf("PageBlockTable%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockTable) TypeID() uint32 { return PageBlockTableTypeID } // TypeName returns name of type in TL schema. func (*PageBlockTable) TypeName() string { return "pageBlockTable" } // TypeInfo returns info about TL type. func (p *PageBlockTable) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockTable", ID: PageBlockTableTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Caption", SchemaName: "caption", }, { Name: "Cells", SchemaName: "cells", }, { Name: "IsBordered", SchemaName: "is_bordered", }, { Name: "IsStriped", SchemaName: "is_striped", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockTable) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockTable#cc6352c3 as nil") } b.PutID(PageBlockTableTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockTable) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockTable#cc6352c3 as nil") } if p.Caption == nil { return fmt.Errorf("unable to encode pageBlockTable#cc6352c3: field caption is nil") } if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockTable#cc6352c3: field caption: %w", err) } b.PutInt(len(p.Cells)) for idx, row := range p.Cells { b.PutVectorHeader(len(row)) for _, v := range row { if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare pageBlockTable#cc6352c3: field cells element with index %d: %w", idx, err) } } } b.PutBool(p.IsBordered) b.PutBool(p.IsStriped) return nil } // Decode implements bin.Decoder. func (p *PageBlockTable) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockTable#cc6352c3 to nil") } if err := b.ConsumeID(PageBlockTableTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockTable) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockTable#cc6352c3 to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field caption: %w", err) } p.Caption = value } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field cells: %w", err) } if headerLen > 0 { p.Cells = make([][]PageBlockTableCell, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { innerLen, err := b.VectorHeader() if err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field cells: %w", err) } var row []PageBlockTableCell if innerLen > 0 { row = make([]PageBlockTableCell, 0, innerLen%bin.PreallocateLimit) } for innerIndex := 0; innerIndex < innerLen; innerLen++ { var value PageBlockTableCell if err := value.DecodeBare(b); err != nil { return fmt.Errorf("unable to decode bare pageBlockTable#cc6352c3: field cells: %w", err) } row = append(row, value) } p.Cells = append(p.Cells, row) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field is_bordered: %w", err) } p.IsBordered = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field is_striped: %w", err) } p.IsStriped = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockTable) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockTable#cc6352c3 as nil") } b.ObjStart() b.PutID("pageBlockTable") b.Comma() b.FieldStart("caption") if p.Caption == nil { return fmt.Errorf("unable to encode pageBlockTable#cc6352c3: field caption is nil") } if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockTable#cc6352c3: field caption: %w", err) } b.Comma() b.FieldStart("cells") b.ArrStart() for idx, row := range p.Cells { b.ArrStart() for _, v := range row { if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockTable#cc6352c3: field cells element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("is_bordered") b.PutBool(p.IsBordered) b.Comma() b.FieldStart("is_striped") b.PutBool(p.IsStriped) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockTable) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockTable#cc6352c3 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockTable"); err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: %w", err) } case "caption": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field caption: %w", err) } p.Caption = value case "cells": if err := b.Arr(func(b tdjson.Decoder) error { var row []PageBlockTableCell if err := b.Arr(func(b tdjson.Decoder) error { var value PageBlockTableCell if err := value.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field cells: %w", err) } row = append(row, value) return nil }); err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field cells: %w", err) } p.Cells = append(p.Cells, row) return nil }); err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field cells: %w", err) } case "is_bordered": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field is_bordered: %w", err) } p.IsBordered = value case "is_striped": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockTable#cc6352c3: field is_striped: %w", err) } p.IsStriped = value default: return b.Skip() } return nil }) } // GetCaption returns value of Caption field. func (p *PageBlockTable) GetCaption() (value RichTextClass) { if p == nil { return } return p.Caption } // GetCells returns value of Cells field. func (p *PageBlockTable) GetCells() (value [][]PageBlockTableCell) { if p == nil { return } return p.Cells } // GetIsBordered returns value of IsBordered field. func (p *PageBlockTable) GetIsBordered() (value bool) { if p == nil { return } return p.IsBordered } // GetIsStriped returns value of IsStriped field. func (p *PageBlockTable) GetIsStriped() (value bool) { if p == nil { return } return p.IsStriped } // PageBlockDetails represents TL type `pageBlockDetails#990a0c0b`. type PageBlockDetails struct { // Always visible heading for the block Header RichTextClass // Block contents PageBlocks []PageBlockClass // True, if the block is open by default IsOpen bool } // PageBlockDetailsTypeID is TL type id of PageBlockDetails. const PageBlockDetailsTypeID = 0x990a0c0b // construct implements constructor of PageBlockClass. func (p PageBlockDetails) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockDetails. var ( _ bin.Encoder = &PageBlockDetails{} _ bin.Decoder = &PageBlockDetails{} _ bin.BareEncoder = &PageBlockDetails{} _ bin.BareDecoder = &PageBlockDetails{} _ PageBlockClass = &PageBlockDetails{} ) func (p *PageBlockDetails) Zero() bool { if p == nil { return true } if !(p.Header == nil) { return false } if !(p.PageBlocks == nil) { return false } if !(p.IsOpen == false) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockDetails) String() string { if p == nil { return "PageBlockDetails(nil)" } type Alias PageBlockDetails return fmt.Sprintf("PageBlockDetails%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockDetails) TypeID() uint32 { return PageBlockDetailsTypeID } // TypeName returns name of type in TL schema. func (*PageBlockDetails) TypeName() string { return "pageBlockDetails" } // TypeInfo returns info about TL type. func (p *PageBlockDetails) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockDetails", ID: PageBlockDetailsTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Header", SchemaName: "header", }, { Name: "PageBlocks", SchemaName: "page_blocks", }, { Name: "IsOpen", SchemaName: "is_open", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockDetails) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockDetails#990a0c0b as nil") } b.PutID(PageBlockDetailsTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockDetails) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockDetails#990a0c0b as nil") } if p.Header == nil { return fmt.Errorf("unable to encode pageBlockDetails#990a0c0b: field header is nil") } if err := p.Header.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockDetails#990a0c0b: field header: %w", err) } b.PutInt(len(p.PageBlocks)) for idx, v := range p.PageBlocks { if v == nil { return fmt.Errorf("unable to encode pageBlockDetails#990a0c0b: field page_blocks element with index %d is nil", idx) } if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare pageBlockDetails#990a0c0b: field page_blocks element with index %d: %w", idx, err) } } b.PutBool(p.IsOpen) return nil } // Decode implements bin.Decoder. func (p *PageBlockDetails) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockDetails#990a0c0b to nil") } if err := b.ConsumeID(PageBlockDetailsTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockDetails) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockDetails#990a0c0b to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: field header: %w", err) } p.Header = value } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: field page_blocks: %w", err) } if headerLen > 0 { p.PageBlocks = make([]PageBlockClass, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { value, err := DecodePageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: field page_blocks: %w", err) } p.PageBlocks = append(p.PageBlocks, value) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: field is_open: %w", err) } p.IsOpen = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockDetails) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockDetails#990a0c0b as nil") } b.ObjStart() b.PutID("pageBlockDetails") b.Comma() b.FieldStart("header") if p.Header == nil { return fmt.Errorf("unable to encode pageBlockDetails#990a0c0b: field header is nil") } if err := p.Header.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockDetails#990a0c0b: field header: %w", err) } b.Comma() b.FieldStart("page_blocks") b.ArrStart() for idx, v := range p.PageBlocks { if v == nil { return fmt.Errorf("unable to encode pageBlockDetails#990a0c0b: field page_blocks element with index %d is nil", idx) } if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockDetails#990a0c0b: field page_blocks element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("is_open") b.PutBool(p.IsOpen) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockDetails) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockDetails#990a0c0b to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockDetails"); err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: %w", err) } case "header": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: field header: %w", err) } p.Header = value case "page_blocks": if err := b.Arr(func(b tdjson.Decoder) error { value, err := DecodeTDLibJSONPageBlock(b) if err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: field page_blocks: %w", err) } p.PageBlocks = append(p.PageBlocks, value) return nil }); err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: field page_blocks: %w", err) } case "is_open": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode pageBlockDetails#990a0c0b: field is_open: %w", err) } p.IsOpen = value default: return b.Skip() } return nil }) } // GetHeader returns value of Header field. func (p *PageBlockDetails) GetHeader() (value RichTextClass) { if p == nil { return } return p.Header } // GetPageBlocks returns value of PageBlocks field. func (p *PageBlockDetails) GetPageBlocks() (value []PageBlockClass) { if p == nil { return } return p.PageBlocks } // GetIsOpen returns value of IsOpen field. func (p *PageBlockDetails) GetIsOpen() (value bool) { if p == nil { return } return p.IsOpen } // PageBlockRelatedArticles represents TL type `pageBlockRelatedArticles#936d81e6`. type PageBlockRelatedArticles struct { // Block header Header RichTextClass // List of related articles Articles []PageBlockRelatedArticle } // PageBlockRelatedArticlesTypeID is TL type id of PageBlockRelatedArticles. const PageBlockRelatedArticlesTypeID = 0x936d81e6 // construct implements constructor of PageBlockClass. func (p PageBlockRelatedArticles) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockRelatedArticles. var ( _ bin.Encoder = &PageBlockRelatedArticles{} _ bin.Decoder = &PageBlockRelatedArticles{} _ bin.BareEncoder = &PageBlockRelatedArticles{} _ bin.BareDecoder = &PageBlockRelatedArticles{} _ PageBlockClass = &PageBlockRelatedArticles{} ) func (p *PageBlockRelatedArticles) Zero() bool { if p == nil { return true } if !(p.Header == nil) { return false } if !(p.Articles == nil) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockRelatedArticles) String() string { if p == nil { return "PageBlockRelatedArticles(nil)" } type Alias PageBlockRelatedArticles return fmt.Sprintf("PageBlockRelatedArticles%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockRelatedArticles) TypeID() uint32 { return PageBlockRelatedArticlesTypeID } // TypeName returns name of type in TL schema. func (*PageBlockRelatedArticles) TypeName() string { return "pageBlockRelatedArticles" } // TypeInfo returns info about TL type. func (p *PageBlockRelatedArticles) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockRelatedArticles", ID: PageBlockRelatedArticlesTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Header", SchemaName: "header", }, { Name: "Articles", SchemaName: "articles", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockRelatedArticles) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockRelatedArticles#936d81e6 as nil") } b.PutID(PageBlockRelatedArticlesTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockRelatedArticles) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockRelatedArticles#936d81e6 as nil") } if p.Header == nil { return fmt.Errorf("unable to encode pageBlockRelatedArticles#936d81e6: field header is nil") } if err := p.Header.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockRelatedArticles#936d81e6: field header: %w", err) } b.PutInt(len(p.Articles)) for idx, v := range p.Articles { if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare pageBlockRelatedArticles#936d81e6: field articles element with index %d: %w", idx, err) } } return nil } // Decode implements bin.Decoder. func (p *PageBlockRelatedArticles) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockRelatedArticles#936d81e6 to nil") } if err := b.ConsumeID(PageBlockRelatedArticlesTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockRelatedArticles#936d81e6: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockRelatedArticles) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockRelatedArticles#936d81e6 to nil") } { value, err := DecodeRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockRelatedArticles#936d81e6: field header: %w", err) } p.Header = value } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode pageBlockRelatedArticles#936d81e6: field articles: %w", err) } if headerLen > 0 { p.Articles = make([]PageBlockRelatedArticle, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { var value PageBlockRelatedArticle if err := value.DecodeBare(b); err != nil { return fmt.Errorf("unable to decode bare pageBlockRelatedArticles#936d81e6: field articles: %w", err) } p.Articles = append(p.Articles, value) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockRelatedArticles) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockRelatedArticles#936d81e6 as nil") } b.ObjStart() b.PutID("pageBlockRelatedArticles") b.Comma() b.FieldStart("header") if p.Header == nil { return fmt.Errorf("unable to encode pageBlockRelatedArticles#936d81e6: field header is nil") } if err := p.Header.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockRelatedArticles#936d81e6: field header: %w", err) } b.Comma() b.FieldStart("articles") b.ArrStart() for idx, v := range p.Articles { if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockRelatedArticles#936d81e6: field articles element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockRelatedArticles) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockRelatedArticles#936d81e6 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockRelatedArticles"); err != nil { return fmt.Errorf("unable to decode pageBlockRelatedArticles#936d81e6: %w", err) } case "header": value, err := DecodeTDLibJSONRichText(b) if err != nil { return fmt.Errorf("unable to decode pageBlockRelatedArticles#936d81e6: field header: %w", err) } p.Header = value case "articles": if err := b.Arr(func(b tdjson.Decoder) error { var value PageBlockRelatedArticle if err := value.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockRelatedArticles#936d81e6: field articles: %w", err) } p.Articles = append(p.Articles, value) return nil }); err != nil { return fmt.Errorf("unable to decode pageBlockRelatedArticles#936d81e6: field articles: %w", err) } default: return b.Skip() } return nil }) } // GetHeader returns value of Header field. func (p *PageBlockRelatedArticles) GetHeader() (value RichTextClass) { if p == nil { return } return p.Header } // GetArticles returns value of Articles field. func (p *PageBlockRelatedArticles) GetArticles() (value []PageBlockRelatedArticle) { if p == nil { return } return p.Articles } // PageBlockMap represents TL type `pageBlockMap#5a0f7013`. type PageBlockMap struct { // Location of the map center Location Location // Map zoom level Zoom int32 // Map width Width int32 // Map height Height int32 // Block caption Caption PageBlockCaption } // PageBlockMapTypeID is TL type id of PageBlockMap. const PageBlockMapTypeID = 0x5a0f7013 // construct implements constructor of PageBlockClass. func (p PageBlockMap) construct() PageBlockClass { return &p } // Ensuring interfaces in compile-time for PageBlockMap. var ( _ bin.Encoder = &PageBlockMap{} _ bin.Decoder = &PageBlockMap{} _ bin.BareEncoder = &PageBlockMap{} _ bin.BareDecoder = &PageBlockMap{} _ PageBlockClass = &PageBlockMap{} ) func (p *PageBlockMap) Zero() bool { if p == nil { return true } if !(p.Location.Zero()) { return false } if !(p.Zoom == 0) { return false } if !(p.Width == 0) { return false } if !(p.Height == 0) { return false } if !(p.Caption.Zero()) { return false } return true } // String implements fmt.Stringer. func (p *PageBlockMap) String() string { if p == nil { return "PageBlockMap(nil)" } type Alias PageBlockMap return fmt.Sprintf("PageBlockMap%+v", Alias(*p)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*PageBlockMap) TypeID() uint32 { return PageBlockMapTypeID } // TypeName returns name of type in TL schema. func (*PageBlockMap) TypeName() string { return "pageBlockMap" } // TypeInfo returns info about TL type. func (p *PageBlockMap) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "pageBlockMap", ID: PageBlockMapTypeID, } if p == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Location", SchemaName: "location", }, { Name: "Zoom", SchemaName: "zoom", }, { Name: "Width", SchemaName: "width", }, { Name: "Height", SchemaName: "height", }, { Name: "Caption", SchemaName: "caption", }, } return typ } // Encode implements bin.Encoder. func (p *PageBlockMap) Encode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockMap#5a0f7013 as nil") } b.PutID(PageBlockMapTypeID) return p.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (p *PageBlockMap) EncodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't encode pageBlockMap#5a0f7013 as nil") } if err := p.Location.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockMap#5a0f7013: field location: %w", err) } b.PutInt32(p.Zoom) b.PutInt32(p.Width) b.PutInt32(p.Height) if err := p.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode pageBlockMap#5a0f7013: field caption: %w", err) } return nil } // Decode implements bin.Decoder. func (p *PageBlockMap) Decode(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockMap#5a0f7013 to nil") } if err := b.ConsumeID(PageBlockMapTypeID); err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: %w", err) } return p.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (p *PageBlockMap) DecodeBare(b *bin.Buffer) error { if p == nil { return fmt.Errorf("can't decode pageBlockMap#5a0f7013 to nil") } { if err := p.Location.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field location: %w", err) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field zoom: %w", err) } p.Zoom = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field width: %w", err) } p.Width = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field height: %w", err) } p.Height = value } { if err := p.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (p *PageBlockMap) EncodeTDLibJSON(b tdjson.Encoder) error { if p == nil { return fmt.Errorf("can't encode pageBlockMap#5a0f7013 as nil") } b.ObjStart() b.PutID("pageBlockMap") b.Comma() b.FieldStart("location") if err := p.Location.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockMap#5a0f7013: field location: %w", err) } b.Comma() b.FieldStart("zoom") b.PutInt32(p.Zoom) b.Comma() b.FieldStart("width") b.PutInt32(p.Width) b.Comma() b.FieldStart("height") b.PutInt32(p.Height) b.Comma() b.FieldStart("caption") if err := p.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode pageBlockMap#5a0f7013: field caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (p *PageBlockMap) DecodeTDLibJSON(b tdjson.Decoder) error { if p == nil { return fmt.Errorf("can't decode pageBlockMap#5a0f7013 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("pageBlockMap"); err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: %w", err) } case "location": if err := p.Location.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field location: %w", err) } case "zoom": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field zoom: %w", err) } p.Zoom = value case "width": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field width: %w", err) } p.Width = value case "height": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field height: %w", err) } p.Height = value case "caption": if err := p.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode pageBlockMap#5a0f7013: field caption: %w", err) } default: return b.Skip() } return nil }) } // GetLocation returns value of Location field. func (p *PageBlockMap) GetLocation() (value Location) { if p == nil { return } return p.Location } // GetZoom returns value of Zoom field. func (p *PageBlockMap) GetZoom() (value int32) { if p == nil { return } return p.Zoom } // GetWidth returns value of Width field. func (p *PageBlockMap) GetWidth() (value int32) { if p == nil { return } return p.Width } // GetHeight returns value of Height field. func (p *PageBlockMap) GetHeight() (value int32) { if p == nil { return } return p.Height } // GetCaption returns value of Caption field. func (p *PageBlockMap) GetCaption() (value PageBlockCaption) { if p == nil { return } return p.Caption } // PageBlockClassName is schema name of PageBlockClass. const PageBlockClassName = "PageBlock" // PageBlockClass represents PageBlock generic type. // // Example: // // g, err := tdapi.DecodePageBlock(buf) // if err != nil { // panic(err) // } // switch v := g.(type) { // case *tdapi.PageBlockTitle: // pageBlockTitle#6122b610 // case *tdapi.PageBlockSubtitle: // pageBlockSubtitle#fc451e7 // case *tdapi.PageBlockAuthorDate: // pageBlockAuthorDate#4d7ff410 // case *tdapi.PageBlockHeader: // pageBlockHeader#539ddd9b // case *tdapi.PageBlockSubheader: // pageBlockSubheader#4b567326 // case *tdapi.PageBlockKicker: // pageBlockKicker#5123864b // case *tdapi.PageBlockParagraph: // pageBlockParagraph#467a0766 // case *tdapi.PageBlockPreformatted: // pageBlockPreformatted#c070d93e // case *tdapi.PageBlockFooter: // pageBlockFooter#34d5d728 // case *tdapi.PageBlockDivider: // pageBlockDivider#db20b188 // case *tdapi.PageBlockAnchor: // pageBlockAnchor#ce0d37b0 // case *tdapi.PageBlockList: // pageBlockList#584af35a // case *tdapi.PageBlockBlockQuote: // pageBlockBlockQuote#62d08a9e // case *tdapi.PageBlockPullQuote: // pageBlockPullQuote#1d38810d // case *tdapi.PageBlockAnimation: // pageBlockAnimation#50cde009 // case *tdapi.PageBlockAudio: // pageBlockAudio#fc390813 // case *tdapi.PageBlockPhoto: // pageBlockPhoto#18e41684 // case *tdapi.PageBlockVideo: // pageBlockVideo#1e669d32 // case *tdapi.PageBlockVoiceNote: // pageBlockVoiceNote#6cad827f // case *tdapi.PageBlockCover: // pageBlockCover#39f23300 // case *tdapi.PageBlockEmbedded: // pageBlockEmbedded#8c369d9d // case *tdapi.PageBlockEmbeddedPost: // pageBlockEmbeddedPost#bc57cdf5 // case *tdapi.PageBlockCollage: // pageBlockCollage#40bcaaf0 // case *tdapi.PageBlockSlideshow: // pageBlockSlideshow#1107d496 // case *tdapi.PageBlockChatLink: // pageBlockChatLink#621ed8bb // case *tdapi.PageBlockTable: // pageBlockTable#cc6352c3 // case *tdapi.PageBlockDetails: // pageBlockDetails#990a0c0b // case *tdapi.PageBlockRelatedArticles: // pageBlockRelatedArticles#936d81e6 // case *tdapi.PageBlockMap: // pageBlockMap#5a0f7013 // default: panic(v) // } type PageBlockClass interface { bin.Encoder bin.Decoder bin.BareEncoder bin.BareDecoder construct() PageBlockClass // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. TypeID() uint32 // TypeName returns name of type in TL schema. TypeName() string // String implements fmt.Stringer. String() string // Zero returns true if current object has a zero value. Zero() bool EncodeTDLibJSON(b tdjson.Encoder) error DecodeTDLibJSON(b tdjson.Decoder) error } // DecodePageBlock implements binary de-serialization for PageBlockClass. func DecodePageBlock(buf *bin.Buffer) (PageBlockClass, error) { id, err := buf.PeekID() if err != nil { return nil, err } switch id { case PageBlockTitleTypeID: // Decoding pageBlockTitle#6122b610. v := PageBlockTitle{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockSubtitleTypeID: // Decoding pageBlockSubtitle#fc451e7. v := PageBlockSubtitle{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockAuthorDateTypeID: // Decoding pageBlockAuthorDate#4d7ff410. v := PageBlockAuthorDate{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockHeaderTypeID: // Decoding pageBlockHeader#539ddd9b. v := PageBlockHeader{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockSubheaderTypeID: // Decoding pageBlockSubheader#4b567326. v := PageBlockSubheader{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockKickerTypeID: // Decoding pageBlockKicker#5123864b. v := PageBlockKicker{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockParagraphTypeID: // Decoding pageBlockParagraph#467a0766. v := PageBlockParagraph{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockPreformattedTypeID: // Decoding pageBlockPreformatted#c070d93e. v := PageBlockPreformatted{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockFooterTypeID: // Decoding pageBlockFooter#34d5d728. v := PageBlockFooter{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockDividerTypeID: // Decoding pageBlockDivider#db20b188. v := PageBlockDivider{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockAnchorTypeID: // Decoding pageBlockAnchor#ce0d37b0. v := PageBlockAnchor{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockListTypeID: // Decoding pageBlockList#584af35a. v := PageBlockList{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockBlockQuoteTypeID: // Decoding pageBlockBlockQuote#62d08a9e. v := PageBlockBlockQuote{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockPullQuoteTypeID: // Decoding pageBlockPullQuote#1d38810d. v := PageBlockPullQuote{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockAnimationTypeID: // Decoding pageBlockAnimation#50cde009. v := PageBlockAnimation{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockAudioTypeID: // Decoding pageBlockAudio#fc390813. v := PageBlockAudio{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockPhotoTypeID: // Decoding pageBlockPhoto#18e41684. v := PageBlockPhoto{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockVideoTypeID: // Decoding pageBlockVideo#1e669d32. v := PageBlockVideo{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockVoiceNoteTypeID: // Decoding pageBlockVoiceNote#6cad827f. v := PageBlockVoiceNote{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockCoverTypeID: // Decoding pageBlockCover#39f23300. v := PageBlockCover{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockEmbeddedTypeID: // Decoding pageBlockEmbedded#8c369d9d. v := PageBlockEmbedded{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockEmbeddedPostTypeID: // Decoding pageBlockEmbeddedPost#bc57cdf5. v := PageBlockEmbeddedPost{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockCollageTypeID: // Decoding pageBlockCollage#40bcaaf0. v := PageBlockCollage{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockSlideshowTypeID: // Decoding pageBlockSlideshow#1107d496. v := PageBlockSlideshow{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockChatLinkTypeID: // Decoding pageBlockChatLink#621ed8bb. v := PageBlockChatLink{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockTableTypeID: // Decoding pageBlockTable#cc6352c3. v := PageBlockTable{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockDetailsTypeID: // Decoding pageBlockDetails#990a0c0b. v := PageBlockDetails{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockRelatedArticlesTypeID: // Decoding pageBlockRelatedArticles#936d81e6. v := PageBlockRelatedArticles{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case PageBlockMapTypeID: // Decoding pageBlockMap#5a0f7013. v := PageBlockMap{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil default: return nil, fmt.Errorf("unable to decode PageBlockClass: %w", bin.NewUnexpectedID(id)) } } // DecodeTDLibJSONPageBlock implements binary de-serialization for PageBlockClass. func DecodeTDLibJSONPageBlock(buf tdjson.Decoder) (PageBlockClass, error) { id, err := buf.FindTypeID() if err != nil { return nil, err } switch id { case "pageBlockTitle": // Decoding pageBlockTitle#6122b610. v := PageBlockTitle{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockSubtitle": // Decoding pageBlockSubtitle#fc451e7. v := PageBlockSubtitle{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockAuthorDate": // Decoding pageBlockAuthorDate#4d7ff410. v := PageBlockAuthorDate{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockHeader": // Decoding pageBlockHeader#539ddd9b. v := PageBlockHeader{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockSubheader": // Decoding pageBlockSubheader#4b567326. v := PageBlockSubheader{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockKicker": // Decoding pageBlockKicker#5123864b. v := PageBlockKicker{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockParagraph": // Decoding pageBlockParagraph#467a0766. v := PageBlockParagraph{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockPreformatted": // Decoding pageBlockPreformatted#c070d93e. v := PageBlockPreformatted{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockFooter": // Decoding pageBlockFooter#34d5d728. v := PageBlockFooter{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockDivider": // Decoding pageBlockDivider#db20b188. v := PageBlockDivider{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockAnchor": // Decoding pageBlockAnchor#ce0d37b0. v := PageBlockAnchor{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockList": // Decoding pageBlockList#584af35a. v := PageBlockList{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockBlockQuote": // Decoding pageBlockBlockQuote#62d08a9e. v := PageBlockBlockQuote{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockPullQuote": // Decoding pageBlockPullQuote#1d38810d. v := PageBlockPullQuote{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockAnimation": // Decoding pageBlockAnimation#50cde009. v := PageBlockAnimation{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockAudio": // Decoding pageBlockAudio#fc390813. v := PageBlockAudio{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockPhoto": // Decoding pageBlockPhoto#18e41684. v := PageBlockPhoto{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockVideo": // Decoding pageBlockVideo#1e669d32. v := PageBlockVideo{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockVoiceNote": // Decoding pageBlockVoiceNote#6cad827f. v := PageBlockVoiceNote{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockCover": // Decoding pageBlockCover#39f23300. v := PageBlockCover{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockEmbedded": // Decoding pageBlockEmbedded#8c369d9d. v := PageBlockEmbedded{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockEmbeddedPost": // Decoding pageBlockEmbeddedPost#bc57cdf5. v := PageBlockEmbeddedPost{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockCollage": // Decoding pageBlockCollage#40bcaaf0. v := PageBlockCollage{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockSlideshow": // Decoding pageBlockSlideshow#1107d496. v := PageBlockSlideshow{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockChatLink": // Decoding pageBlockChatLink#621ed8bb. v := PageBlockChatLink{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockTable": // Decoding pageBlockTable#cc6352c3. v := PageBlockTable{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockDetails": // Decoding pageBlockDetails#990a0c0b. v := PageBlockDetails{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockRelatedArticles": // Decoding pageBlockRelatedArticles#936d81e6. v := PageBlockRelatedArticles{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil case "pageBlockMap": // Decoding pageBlockMap#5a0f7013. v := PageBlockMap{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode PageBlockClass: %w", err) } return &v, nil default: return nil, fmt.Errorf("unable to decode PageBlockClass: %w", tdjson.NewUnexpectedID(id)) } } // PageBlock boxes the PageBlockClass providing a helper. type PageBlockBox struct { PageBlock PageBlockClass } // Decode implements bin.Decoder for PageBlockBox. func (b *PageBlockBox) Decode(buf *bin.Buffer) error { if b == nil { return fmt.Errorf("unable to decode PageBlockBox to nil") } v, err := DecodePageBlock(buf) if err != nil { return fmt.Errorf("unable to decode boxed value: %w", err) } b.PageBlock = v return nil } // Encode implements bin.Encode for PageBlockBox. func (b *PageBlockBox) Encode(buf *bin.Buffer) error { if b == nil || b.PageBlock == nil { return fmt.Errorf("unable to encode PageBlockClass as nil") } return b.PageBlock.Encode(buf) } // DecodeTDLibJSON implements bin.Decoder for PageBlockBox. func (b *PageBlockBox) DecodeTDLibJSON(buf tdjson.Decoder) error { if b == nil { return fmt.Errorf("unable to decode PageBlockBox to nil") } v, err := DecodeTDLibJSONPageBlock(buf) if err != nil { return fmt.Errorf("unable to decode boxed value: %w", err) } b.PageBlock = v return nil } // EncodeTDLibJSON implements bin.Encode for PageBlockBox. func (b *PageBlockBox) EncodeTDLibJSON(buf tdjson.Encoder) error { if b == nil || b.PageBlock == nil { return fmt.Errorf("unable to encode PageBlockClass as nil") } return b.PageBlock.EncodeTDLibJSON(buf) }