// 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{} ) // InputMessageText represents TL type `inputMessageText#f350d894`. type InputMessageText struct { // Formatted text to be sent; 0-getOption("message_text_length_max") characters. Only // Bold, Italic, Underline, Strikethrough, Spoiler, CustomEmoji, BlockQuote, // ExpandableBlockQuote, Text FormattedText // Options to be used for generation of a link preview; may be null if none; pass null to // use default link preview options LinkPreviewOptions LinkPreviewOptions // True, if a chat message draft must be deleted ClearDraft bool } // InputMessageTextTypeID is TL type id of InputMessageText. const InputMessageTextTypeID = 0xf350d894 // construct implements constructor of InputMessageContentClass. func (i InputMessageText) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageText. var ( _ bin.Encoder = &InputMessageText{} _ bin.Decoder = &InputMessageText{} _ bin.BareEncoder = &InputMessageText{} _ bin.BareDecoder = &InputMessageText{} _ InputMessageContentClass = &InputMessageText{} ) func (i *InputMessageText) Zero() bool { if i == nil { return true } if !(i.Text.Zero()) { return false } if !(i.LinkPreviewOptions.Zero()) { return false } if !(i.ClearDraft == false) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageText) String() string { if i == nil { return "InputMessageText(nil)" } type Alias InputMessageText return fmt.Sprintf("InputMessageText%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageText) TypeID() uint32 { return InputMessageTextTypeID } // TypeName returns name of type in TL schema. func (*InputMessageText) TypeName() string { return "inputMessageText" } // TypeInfo returns info about TL type. func (i *InputMessageText) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageText", ID: InputMessageTextTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Text", SchemaName: "text", }, { Name: "LinkPreviewOptions", SchemaName: "link_preview_options", }, { Name: "ClearDraft", SchemaName: "clear_draft", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageText) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageText#f350d894 as nil") } b.PutID(InputMessageTextTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageText) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageText#f350d894 as nil") } if err := i.Text.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageText#f350d894: field text: %w", err) } if err := i.LinkPreviewOptions.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageText#f350d894: field link_preview_options: %w", err) } b.PutBool(i.ClearDraft) return nil } // Decode implements bin.Decoder. func (i *InputMessageText) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageText#f350d894 to nil") } if err := b.ConsumeID(InputMessageTextTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageText#f350d894: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageText) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageText#f350d894 to nil") } { if err := i.Text.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageText#f350d894: field text: %w", err) } } { if err := i.LinkPreviewOptions.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageText#f350d894: field link_preview_options: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageText#f350d894: field clear_draft: %w", err) } i.ClearDraft = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageText) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageText#f350d894 as nil") } b.ObjStart() b.PutID("inputMessageText") b.Comma() b.FieldStart("text") if err := i.Text.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageText#f350d894: field text: %w", err) } b.Comma() b.FieldStart("link_preview_options") if err := i.LinkPreviewOptions.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageText#f350d894: field link_preview_options: %w", err) } b.Comma() b.FieldStart("clear_draft") b.PutBool(i.ClearDraft) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageText) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageText#f350d894 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageText"); err != nil { return fmt.Errorf("unable to decode inputMessageText#f350d894: %w", err) } case "text": if err := i.Text.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageText#f350d894: field text: %w", err) } case "link_preview_options": if err := i.LinkPreviewOptions.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageText#f350d894: field link_preview_options: %w", err) } case "clear_draft": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageText#f350d894: field clear_draft: %w", err) } i.ClearDraft = value default: return b.Skip() } return nil }) } // GetText returns value of Text field. func (i *InputMessageText) GetText() (value FormattedText) { if i == nil { return } return i.Text } // GetLinkPreviewOptions returns value of LinkPreviewOptions field. func (i *InputMessageText) GetLinkPreviewOptions() (value LinkPreviewOptions) { if i == nil { return } return i.LinkPreviewOptions } // GetClearDraft returns value of ClearDraft field. func (i *InputMessageText) GetClearDraft() (value bool) { if i == nil { return } return i.ClearDraft } // InputMessageAnimation represents TL type `inputMessageAnimation#19fe563`. type InputMessageAnimation struct { // Animation file to be sent Animation InputFileClass // Animation thumbnail; pass null to skip thumbnail uploading Thumbnail InputThumbnail // File identifiers of the stickers added to the animation, if applicable AddedStickerFileIDs []int32 // Duration of the animation, in seconds Duration int32 // Width of the animation; may be replaced by the server Width int32 // Height of the animation; may be replaced by the server Height int32 // Animation caption; pass null to use an empty caption; // 0-getOption("message_caption_length_max") characters Caption FormattedText // True, if the caption must be shown above the animation; otherwise, the caption must be // shown below the animation; not supported in secret chats ShowCaptionAboveMedia bool // True, if the animation preview must be covered by a spoiler animation; not supported // in secret chats HasSpoiler bool } // InputMessageAnimationTypeID is TL type id of InputMessageAnimation. const InputMessageAnimationTypeID = 0x19fe563 // construct implements constructor of InputMessageContentClass. func (i InputMessageAnimation) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageAnimation. var ( _ bin.Encoder = &InputMessageAnimation{} _ bin.Decoder = &InputMessageAnimation{} _ bin.BareEncoder = &InputMessageAnimation{} _ bin.BareDecoder = &InputMessageAnimation{} _ InputMessageContentClass = &InputMessageAnimation{} ) func (i *InputMessageAnimation) Zero() bool { if i == nil { return true } if !(i.Animation == nil) { return false } if !(i.Thumbnail.Zero()) { return false } if !(i.AddedStickerFileIDs == nil) { return false } if !(i.Duration == 0) { return false } if !(i.Width == 0) { return false } if !(i.Height == 0) { return false } if !(i.Caption.Zero()) { return false } if !(i.ShowCaptionAboveMedia == false) { return false } if !(i.HasSpoiler == false) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageAnimation) String() string { if i == nil { return "InputMessageAnimation(nil)" } type Alias InputMessageAnimation return fmt.Sprintf("InputMessageAnimation%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageAnimation) TypeID() uint32 { return InputMessageAnimationTypeID } // TypeName returns name of type in TL schema. func (*InputMessageAnimation) TypeName() string { return "inputMessageAnimation" } // TypeInfo returns info about TL type. func (i *InputMessageAnimation) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageAnimation", ID: InputMessageAnimationTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Animation", SchemaName: "animation", }, { Name: "Thumbnail", SchemaName: "thumbnail", }, { Name: "AddedStickerFileIDs", SchemaName: "added_sticker_file_ids", }, { Name: "Duration", SchemaName: "duration", }, { Name: "Width", SchemaName: "width", }, { Name: "Height", SchemaName: "height", }, { Name: "Caption", SchemaName: "caption", }, { Name: "ShowCaptionAboveMedia", SchemaName: "show_caption_above_media", }, { Name: "HasSpoiler", SchemaName: "has_spoiler", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageAnimation) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageAnimation#19fe563 as nil") } b.PutID(InputMessageAnimationTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageAnimation) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageAnimation#19fe563 as nil") } if i.Animation == nil { return fmt.Errorf("unable to encode inputMessageAnimation#19fe563: field animation is nil") } if err := i.Animation.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageAnimation#19fe563: field animation: %w", err) } if err := i.Thumbnail.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageAnimation#19fe563: field thumbnail: %w", err) } b.PutInt(len(i.AddedStickerFileIDs)) for _, v := range i.AddedStickerFileIDs { b.PutInt32(v) } b.PutInt32(i.Duration) b.PutInt32(i.Width) b.PutInt32(i.Height) if err := i.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageAnimation#19fe563: field caption: %w", err) } b.PutBool(i.ShowCaptionAboveMedia) b.PutBool(i.HasSpoiler) return nil } // Decode implements bin.Decoder. func (i *InputMessageAnimation) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageAnimation#19fe563 to nil") } if err := b.ConsumeID(InputMessageAnimationTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageAnimation) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageAnimation#19fe563 to nil") } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field animation: %w", err) } i.Animation = value } { if err := i.Thumbnail.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field thumbnail: %w", err) } } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field added_sticker_file_ids: %w", err) } if headerLen > 0 { i.AddedStickerFileIDs = make([]int32, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field added_sticker_file_ids: %w", err) } i.AddedStickerFileIDs = append(i.AddedStickerFileIDs, value) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field duration: %w", err) } i.Duration = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field width: %w", err) } i.Width = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field height: %w", err) } i.Height = value } { if err := i.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field caption: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field show_caption_above_media: %w", err) } i.ShowCaptionAboveMedia = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field has_spoiler: %w", err) } i.HasSpoiler = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageAnimation) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageAnimation#19fe563 as nil") } b.ObjStart() b.PutID("inputMessageAnimation") b.Comma() b.FieldStart("animation") if i.Animation == nil { return fmt.Errorf("unable to encode inputMessageAnimation#19fe563: field animation is nil") } if err := i.Animation.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageAnimation#19fe563: field animation: %w", err) } b.Comma() b.FieldStart("thumbnail") if err := i.Thumbnail.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageAnimation#19fe563: field thumbnail: %w", err) } b.Comma() b.FieldStart("added_sticker_file_ids") b.ArrStart() for _, v := range i.AddedStickerFileIDs { b.PutInt32(v) b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("duration") b.PutInt32(i.Duration) b.Comma() b.FieldStart("width") b.PutInt32(i.Width) b.Comma() b.FieldStart("height") b.PutInt32(i.Height) b.Comma() b.FieldStart("caption") if err := i.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageAnimation#19fe563: field caption: %w", err) } b.Comma() b.FieldStart("show_caption_above_media") b.PutBool(i.ShowCaptionAboveMedia) b.Comma() b.FieldStart("has_spoiler") b.PutBool(i.HasSpoiler) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageAnimation) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageAnimation#19fe563 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageAnimation"); err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: %w", err) } case "animation": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field animation: %w", err) } i.Animation = value case "thumbnail": if err := i.Thumbnail.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field thumbnail: %w", err) } case "added_sticker_file_ids": if err := b.Arr(func(b tdjson.Decoder) error { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field added_sticker_file_ids: %w", err) } i.AddedStickerFileIDs = append(i.AddedStickerFileIDs, value) return nil }); err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field added_sticker_file_ids: %w", err) } case "duration": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field duration: %w", err) } i.Duration = value case "width": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field width: %w", err) } i.Width = value case "height": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field height: %w", err) } i.Height = value case "caption": if err := i.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field caption: %w", err) } case "show_caption_above_media": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field show_caption_above_media: %w", err) } i.ShowCaptionAboveMedia = value case "has_spoiler": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageAnimation#19fe563: field has_spoiler: %w", err) } i.HasSpoiler = value default: return b.Skip() } return nil }) } // GetAnimation returns value of Animation field. func (i *InputMessageAnimation) GetAnimation() (value InputFileClass) { if i == nil { return } return i.Animation } // GetThumbnail returns value of Thumbnail field. func (i *InputMessageAnimation) GetThumbnail() (value InputThumbnail) { if i == nil { return } return i.Thumbnail } // GetAddedStickerFileIDs returns value of AddedStickerFileIDs field. func (i *InputMessageAnimation) GetAddedStickerFileIDs() (value []int32) { if i == nil { return } return i.AddedStickerFileIDs } // GetDuration returns value of Duration field. func (i *InputMessageAnimation) GetDuration() (value int32) { if i == nil { return } return i.Duration } // GetWidth returns value of Width field. func (i *InputMessageAnimation) GetWidth() (value int32) { if i == nil { return } return i.Width } // GetHeight returns value of Height field. func (i *InputMessageAnimation) GetHeight() (value int32) { if i == nil { return } return i.Height } // GetCaption returns value of Caption field. func (i *InputMessageAnimation) GetCaption() (value FormattedText) { if i == nil { return } return i.Caption } // GetShowCaptionAboveMedia returns value of ShowCaptionAboveMedia field. func (i *InputMessageAnimation) GetShowCaptionAboveMedia() (value bool) { if i == nil { return } return i.ShowCaptionAboveMedia } // GetHasSpoiler returns value of HasSpoiler field. func (i *InputMessageAnimation) GetHasSpoiler() (value bool) { if i == nil { return } return i.HasSpoiler } // InputMessageAudio represents TL type `inputMessageAudio#daa400b2`. type InputMessageAudio struct { // Audio file to be sent Audio InputFileClass // Thumbnail of the cover for the album; pass null to skip thumbnail uploading AlbumCoverThumbnail InputThumbnail // Duration of the audio, in seconds; may be replaced by the server Duration int32 // Title of the audio; 0-64 characters; may be replaced by the server Title string // Performer of the audio; 0-64 characters, may be replaced by the server Performer string // Audio caption; pass null to use an empty caption; // 0-getOption("message_caption_length_max") characters Caption FormattedText } // InputMessageAudioTypeID is TL type id of InputMessageAudio. const InputMessageAudioTypeID = 0xdaa400b2 // construct implements constructor of InputMessageContentClass. func (i InputMessageAudio) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageAudio. var ( _ bin.Encoder = &InputMessageAudio{} _ bin.Decoder = &InputMessageAudio{} _ bin.BareEncoder = &InputMessageAudio{} _ bin.BareDecoder = &InputMessageAudio{} _ InputMessageContentClass = &InputMessageAudio{} ) func (i *InputMessageAudio) Zero() bool { if i == nil { return true } if !(i.Audio == nil) { return false } if !(i.AlbumCoverThumbnail.Zero()) { return false } if !(i.Duration == 0) { return false } if !(i.Title == "") { return false } if !(i.Performer == "") { return false } if !(i.Caption.Zero()) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageAudio) String() string { if i == nil { return "InputMessageAudio(nil)" } type Alias InputMessageAudio return fmt.Sprintf("InputMessageAudio%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageAudio) TypeID() uint32 { return InputMessageAudioTypeID } // TypeName returns name of type in TL schema. func (*InputMessageAudio) TypeName() string { return "inputMessageAudio" } // TypeInfo returns info about TL type. func (i *InputMessageAudio) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageAudio", ID: InputMessageAudioTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Audio", SchemaName: "audio", }, { Name: "AlbumCoverThumbnail", SchemaName: "album_cover_thumbnail", }, { Name: "Duration", SchemaName: "duration", }, { Name: "Title", SchemaName: "title", }, { Name: "Performer", SchemaName: "performer", }, { Name: "Caption", SchemaName: "caption", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageAudio) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageAudio#daa400b2 as nil") } b.PutID(InputMessageAudioTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageAudio) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageAudio#daa400b2 as nil") } if i.Audio == nil { return fmt.Errorf("unable to encode inputMessageAudio#daa400b2: field audio is nil") } if err := i.Audio.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageAudio#daa400b2: field audio: %w", err) } if err := i.AlbumCoverThumbnail.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageAudio#daa400b2: field album_cover_thumbnail: %w", err) } b.PutInt32(i.Duration) b.PutString(i.Title) b.PutString(i.Performer) if err := i.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageAudio#daa400b2: field caption: %w", err) } return nil } // Decode implements bin.Decoder. func (i *InputMessageAudio) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageAudio#daa400b2 to nil") } if err := b.ConsumeID(InputMessageAudioTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageAudio) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageAudio#daa400b2 to nil") } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field audio: %w", err) } i.Audio = value } { if err := i.AlbumCoverThumbnail.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field album_cover_thumbnail: %w", err) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field duration: %w", err) } i.Duration = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field title: %w", err) } i.Title = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field performer: %w", err) } i.Performer = value } { if err := i.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageAudio) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageAudio#daa400b2 as nil") } b.ObjStart() b.PutID("inputMessageAudio") b.Comma() b.FieldStart("audio") if i.Audio == nil { return fmt.Errorf("unable to encode inputMessageAudio#daa400b2: field audio is nil") } if err := i.Audio.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageAudio#daa400b2: field audio: %w", err) } b.Comma() b.FieldStart("album_cover_thumbnail") if err := i.AlbumCoverThumbnail.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageAudio#daa400b2: field album_cover_thumbnail: %w", err) } b.Comma() b.FieldStart("duration") b.PutInt32(i.Duration) b.Comma() b.FieldStart("title") b.PutString(i.Title) b.Comma() b.FieldStart("performer") b.PutString(i.Performer) b.Comma() b.FieldStart("caption") if err := i.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageAudio#daa400b2: field caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageAudio) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageAudio#daa400b2 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageAudio"); err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: %w", err) } case "audio": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field audio: %w", err) } i.Audio = value case "album_cover_thumbnail": if err := i.AlbumCoverThumbnail.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field album_cover_thumbnail: %w", err) } case "duration": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field duration: %w", err) } i.Duration = value case "title": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field title: %w", err) } i.Title = value case "performer": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field performer: %w", err) } i.Performer = value case "caption": if err := i.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageAudio#daa400b2: field caption: %w", err) } default: return b.Skip() } return nil }) } // GetAudio returns value of Audio field. func (i *InputMessageAudio) GetAudio() (value InputFileClass) { if i == nil { return } return i.Audio } // GetAlbumCoverThumbnail returns value of AlbumCoverThumbnail field. func (i *InputMessageAudio) GetAlbumCoverThumbnail() (value InputThumbnail) { if i == nil { return } return i.AlbumCoverThumbnail } // GetDuration returns value of Duration field. func (i *InputMessageAudio) GetDuration() (value int32) { if i == nil { return } return i.Duration } // GetTitle returns value of Title field. func (i *InputMessageAudio) GetTitle() (value string) { if i == nil { return } return i.Title } // GetPerformer returns value of Performer field. func (i *InputMessageAudio) GetPerformer() (value string) { if i == nil { return } return i.Performer } // GetCaption returns value of Caption field. func (i *InputMessageAudio) GetCaption() (value FormattedText) { if i == nil { return } return i.Caption } // InputMessageDocument represents TL type `inputMessageDocument#615b72b9`. type InputMessageDocument struct { // Document to be sent Document InputFileClass // Document thumbnail; pass null to skip thumbnail uploading Thumbnail InputThumbnail // Pass true to disable automatic file type detection and send the document as a file. // Always true for files sent to secret chats DisableContentTypeDetection bool // Document caption; pass null to use an empty caption; // 0-getOption("message_caption_length_max") characters Caption FormattedText } // InputMessageDocumentTypeID is TL type id of InputMessageDocument. const InputMessageDocumentTypeID = 0x615b72b9 // construct implements constructor of InputMessageContentClass. func (i InputMessageDocument) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageDocument. var ( _ bin.Encoder = &InputMessageDocument{} _ bin.Decoder = &InputMessageDocument{} _ bin.BareEncoder = &InputMessageDocument{} _ bin.BareDecoder = &InputMessageDocument{} _ InputMessageContentClass = &InputMessageDocument{} ) func (i *InputMessageDocument) Zero() bool { if i == nil { return true } if !(i.Document == nil) { return false } if !(i.Thumbnail.Zero()) { return false } if !(i.DisableContentTypeDetection == false) { return false } if !(i.Caption.Zero()) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageDocument) String() string { if i == nil { return "InputMessageDocument(nil)" } type Alias InputMessageDocument return fmt.Sprintf("InputMessageDocument%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageDocument) TypeID() uint32 { return InputMessageDocumentTypeID } // TypeName returns name of type in TL schema. func (*InputMessageDocument) TypeName() string { return "inputMessageDocument" } // TypeInfo returns info about TL type. func (i *InputMessageDocument) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageDocument", ID: InputMessageDocumentTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Document", SchemaName: "document", }, { Name: "Thumbnail", SchemaName: "thumbnail", }, { Name: "DisableContentTypeDetection", SchemaName: "disable_content_type_detection", }, { Name: "Caption", SchemaName: "caption", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageDocument) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageDocument#615b72b9 as nil") } b.PutID(InputMessageDocumentTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageDocument) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageDocument#615b72b9 as nil") } if i.Document == nil { return fmt.Errorf("unable to encode inputMessageDocument#615b72b9: field document is nil") } if err := i.Document.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageDocument#615b72b9: field document: %w", err) } if err := i.Thumbnail.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageDocument#615b72b9: field thumbnail: %w", err) } b.PutBool(i.DisableContentTypeDetection) if err := i.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageDocument#615b72b9: field caption: %w", err) } return nil } // Decode implements bin.Decoder. func (i *InputMessageDocument) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageDocument#615b72b9 to nil") } if err := b.ConsumeID(InputMessageDocumentTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageDocument) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageDocument#615b72b9 to nil") } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: field document: %w", err) } i.Document = value } { if err := i.Thumbnail.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: field thumbnail: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: field disable_content_type_detection: %w", err) } i.DisableContentTypeDetection = value } { if err := i.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: field caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageDocument) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageDocument#615b72b9 as nil") } b.ObjStart() b.PutID("inputMessageDocument") b.Comma() b.FieldStart("document") if i.Document == nil { return fmt.Errorf("unable to encode inputMessageDocument#615b72b9: field document is nil") } if err := i.Document.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageDocument#615b72b9: field document: %w", err) } b.Comma() b.FieldStart("thumbnail") if err := i.Thumbnail.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageDocument#615b72b9: field thumbnail: %w", err) } b.Comma() b.FieldStart("disable_content_type_detection") b.PutBool(i.DisableContentTypeDetection) b.Comma() b.FieldStart("caption") if err := i.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageDocument#615b72b9: field caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageDocument) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageDocument#615b72b9 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageDocument"); err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: %w", err) } case "document": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: field document: %w", err) } i.Document = value case "thumbnail": if err := i.Thumbnail.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: field thumbnail: %w", err) } case "disable_content_type_detection": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: field disable_content_type_detection: %w", err) } i.DisableContentTypeDetection = value case "caption": if err := i.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageDocument#615b72b9: field caption: %w", err) } default: return b.Skip() } return nil }) } // GetDocument returns value of Document field. func (i *InputMessageDocument) GetDocument() (value InputFileClass) { if i == nil { return } return i.Document } // GetThumbnail returns value of Thumbnail field. func (i *InputMessageDocument) GetThumbnail() (value InputThumbnail) { if i == nil { return } return i.Thumbnail } // GetDisableContentTypeDetection returns value of DisableContentTypeDetection field. func (i *InputMessageDocument) GetDisableContentTypeDetection() (value bool) { if i == nil { return } return i.DisableContentTypeDetection } // GetCaption returns value of Caption field. func (i *InputMessageDocument) GetCaption() (value FormattedText) { if i == nil { return } return i.Caption } // InputMessagePaidMedia represents TL type `inputMessagePaidMedia#370c4490`. type InputMessagePaidMedia struct { // The number of Telegram Stars that must be paid to see the media; // 1-getOption("paid_media_message_star_count_max") StarCount int64 // The content of the paid media PaidMedia []InputPaidMedia // Message caption; pass null to use an empty caption; // 0-getOption("message_caption_length_max") characters Caption FormattedText // True, if the caption must be shown above the media; otherwise, the caption must be // shown below the media; not supported in secret chats ShowCaptionAboveMedia bool // Bot-provided data for the paid media; bots only Payload string } // InputMessagePaidMediaTypeID is TL type id of InputMessagePaidMedia. const InputMessagePaidMediaTypeID = 0x370c4490 // construct implements constructor of InputMessageContentClass. func (i InputMessagePaidMedia) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessagePaidMedia. var ( _ bin.Encoder = &InputMessagePaidMedia{} _ bin.Decoder = &InputMessagePaidMedia{} _ bin.BareEncoder = &InputMessagePaidMedia{} _ bin.BareDecoder = &InputMessagePaidMedia{} _ InputMessageContentClass = &InputMessagePaidMedia{} ) func (i *InputMessagePaidMedia) Zero() bool { if i == nil { return true } if !(i.StarCount == 0) { return false } if !(i.PaidMedia == nil) { return false } if !(i.Caption.Zero()) { return false } if !(i.ShowCaptionAboveMedia == false) { return false } if !(i.Payload == "") { return false } return true } // String implements fmt.Stringer. func (i *InputMessagePaidMedia) String() string { if i == nil { return "InputMessagePaidMedia(nil)" } type Alias InputMessagePaidMedia return fmt.Sprintf("InputMessagePaidMedia%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessagePaidMedia) TypeID() uint32 { return InputMessagePaidMediaTypeID } // TypeName returns name of type in TL schema. func (*InputMessagePaidMedia) TypeName() string { return "inputMessagePaidMedia" } // TypeInfo returns info about TL type. func (i *InputMessagePaidMedia) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessagePaidMedia", ID: InputMessagePaidMediaTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "StarCount", SchemaName: "star_count", }, { Name: "PaidMedia", SchemaName: "paid_media", }, { Name: "Caption", SchemaName: "caption", }, { Name: "ShowCaptionAboveMedia", SchemaName: "show_caption_above_media", }, { Name: "Payload", SchemaName: "payload", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessagePaidMedia) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessagePaidMedia#370c4490 as nil") } b.PutID(InputMessagePaidMediaTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessagePaidMedia) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessagePaidMedia#370c4490 as nil") } b.PutInt53(i.StarCount) b.PutInt(len(i.PaidMedia)) for idx, v := range i.PaidMedia { if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare inputMessagePaidMedia#370c4490: field paid_media element with index %d: %w", idx, err) } } if err := i.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessagePaidMedia#370c4490: field caption: %w", err) } b.PutBool(i.ShowCaptionAboveMedia) b.PutString(i.Payload) return nil } // Decode implements bin.Decoder. func (i *InputMessagePaidMedia) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessagePaidMedia#370c4490 to nil") } if err := b.ConsumeID(InputMessagePaidMediaTypeID); err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessagePaidMedia) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessagePaidMedia#370c4490 to nil") } { value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field star_count: %w", err) } i.StarCount = value } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field paid_media: %w", err) } if headerLen > 0 { i.PaidMedia = make([]InputPaidMedia, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { var value InputPaidMedia if err := value.DecodeBare(b); err != nil { return fmt.Errorf("unable to decode bare inputMessagePaidMedia#370c4490: field paid_media: %w", err) } i.PaidMedia = append(i.PaidMedia, value) } } { if err := i.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field caption: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field show_caption_above_media: %w", err) } i.ShowCaptionAboveMedia = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field payload: %w", err) } i.Payload = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessagePaidMedia) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessagePaidMedia#370c4490 as nil") } b.ObjStart() b.PutID("inputMessagePaidMedia") b.Comma() b.FieldStart("star_count") b.PutInt53(i.StarCount) b.Comma() b.FieldStart("paid_media") b.ArrStart() for idx, v := range i.PaidMedia { if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePaidMedia#370c4490: field paid_media element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("caption") if err := i.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePaidMedia#370c4490: field caption: %w", err) } b.Comma() b.FieldStart("show_caption_above_media") b.PutBool(i.ShowCaptionAboveMedia) b.Comma() b.FieldStart("payload") b.PutString(i.Payload) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessagePaidMedia) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessagePaidMedia#370c4490 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessagePaidMedia"); err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: %w", err) } case "star_count": value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field star_count: %w", err) } i.StarCount = value case "paid_media": if err := b.Arr(func(b tdjson.Decoder) error { var value InputPaidMedia if err := value.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field paid_media: %w", err) } i.PaidMedia = append(i.PaidMedia, value) return nil }); err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field paid_media: %w", err) } case "caption": if err := i.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field caption: %w", err) } case "show_caption_above_media": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field show_caption_above_media: %w", err) } i.ShowCaptionAboveMedia = value case "payload": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessagePaidMedia#370c4490: field payload: %w", err) } i.Payload = value default: return b.Skip() } return nil }) } // GetStarCount returns value of StarCount field. func (i *InputMessagePaidMedia) GetStarCount() (value int64) { if i == nil { return } return i.StarCount } // GetPaidMedia returns value of PaidMedia field. func (i *InputMessagePaidMedia) GetPaidMedia() (value []InputPaidMedia) { if i == nil { return } return i.PaidMedia } // GetCaption returns value of Caption field. func (i *InputMessagePaidMedia) GetCaption() (value FormattedText) { if i == nil { return } return i.Caption } // GetShowCaptionAboveMedia returns value of ShowCaptionAboveMedia field. func (i *InputMessagePaidMedia) GetShowCaptionAboveMedia() (value bool) { if i == nil { return } return i.ShowCaptionAboveMedia } // GetPayload returns value of Payload field. func (i *InputMessagePaidMedia) GetPayload() (value string) { if i == nil { return } return i.Payload } // InputMessagePhoto represents TL type `inputMessagePhoto#bc78dbcc`. type InputMessagePhoto struct { // Photo to send. The photo must be at most 10 MB in size. The photo's width and height // must not exceed 10000 in total. Width and height ratio must be at most 20 Photo InputFileClass // Photo thumbnail to be sent; pass null to skip thumbnail uploading. The thumbnail is // sent to the other party only in secret chats Thumbnail InputThumbnail // File identifiers of the stickers added to the photo, if applicable AddedStickerFileIDs []int32 // Photo width Width int32 // Photo height Height int32 // Photo caption; pass null to use an empty caption; // 0-getOption("message_caption_length_max") characters Caption FormattedText // True, if the caption must be shown above the photo; otherwise, the caption must be // shown below the photo; not supported in secret chats ShowCaptionAboveMedia bool // Photo self-destruct type; pass null if none; private chats only SelfDestructType MessageSelfDestructTypeClass // True, if the photo preview must be covered by a spoiler animation; not supported in // secret chats HasSpoiler bool } // InputMessagePhotoTypeID is TL type id of InputMessagePhoto. const InputMessagePhotoTypeID = 0xbc78dbcc // construct implements constructor of InputMessageContentClass. func (i InputMessagePhoto) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessagePhoto. var ( _ bin.Encoder = &InputMessagePhoto{} _ bin.Decoder = &InputMessagePhoto{} _ bin.BareEncoder = &InputMessagePhoto{} _ bin.BareDecoder = &InputMessagePhoto{} _ InputMessageContentClass = &InputMessagePhoto{} ) func (i *InputMessagePhoto) Zero() bool { if i == nil { return true } if !(i.Photo == nil) { return false } if !(i.Thumbnail.Zero()) { return false } if !(i.AddedStickerFileIDs == nil) { return false } if !(i.Width == 0) { return false } if !(i.Height == 0) { return false } if !(i.Caption.Zero()) { return false } if !(i.ShowCaptionAboveMedia == false) { return false } if !(i.SelfDestructType == nil) { return false } if !(i.HasSpoiler == false) { return false } return true } // String implements fmt.Stringer. func (i *InputMessagePhoto) String() string { if i == nil { return "InputMessagePhoto(nil)" } type Alias InputMessagePhoto return fmt.Sprintf("InputMessagePhoto%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessagePhoto) TypeID() uint32 { return InputMessagePhotoTypeID } // TypeName returns name of type in TL schema. func (*InputMessagePhoto) TypeName() string { return "inputMessagePhoto" } // TypeInfo returns info about TL type. func (i *InputMessagePhoto) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessagePhoto", ID: InputMessagePhotoTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Photo", SchemaName: "photo", }, { Name: "Thumbnail", SchemaName: "thumbnail", }, { Name: "AddedStickerFileIDs", SchemaName: "added_sticker_file_ids", }, { Name: "Width", SchemaName: "width", }, { Name: "Height", SchemaName: "height", }, { Name: "Caption", SchemaName: "caption", }, { Name: "ShowCaptionAboveMedia", SchemaName: "show_caption_above_media", }, { Name: "SelfDestructType", SchemaName: "self_destruct_type", }, { Name: "HasSpoiler", SchemaName: "has_spoiler", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessagePhoto) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessagePhoto#bc78dbcc as nil") } b.PutID(InputMessagePhotoTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessagePhoto) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessagePhoto#bc78dbcc as nil") } if i.Photo == nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field photo is nil") } if err := i.Photo.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field photo: %w", err) } if err := i.Thumbnail.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field thumbnail: %w", err) } b.PutInt(len(i.AddedStickerFileIDs)) for _, v := range i.AddedStickerFileIDs { b.PutInt32(v) } b.PutInt32(i.Width) b.PutInt32(i.Height) if err := i.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field caption: %w", err) } b.PutBool(i.ShowCaptionAboveMedia) if i.SelfDestructType == nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field self_destruct_type is nil") } if err := i.SelfDestructType.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field self_destruct_type: %w", err) } b.PutBool(i.HasSpoiler) return nil } // Decode implements bin.Decoder. func (i *InputMessagePhoto) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessagePhoto#bc78dbcc to nil") } if err := b.ConsumeID(InputMessagePhotoTypeID); err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessagePhoto) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessagePhoto#bc78dbcc to nil") } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field photo: %w", err) } i.Photo = value } { if err := i.Thumbnail.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field thumbnail: %w", err) } } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field added_sticker_file_ids: %w", err) } if headerLen > 0 { i.AddedStickerFileIDs = make([]int32, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field added_sticker_file_ids: %w", err) } i.AddedStickerFileIDs = append(i.AddedStickerFileIDs, value) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field width: %w", err) } i.Width = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field height: %w", err) } i.Height = value } { if err := i.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field caption: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field show_caption_above_media: %w", err) } i.ShowCaptionAboveMedia = value } { value, err := DecodeMessageSelfDestructType(b) if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field self_destruct_type: %w", err) } i.SelfDestructType = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field has_spoiler: %w", err) } i.HasSpoiler = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessagePhoto) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessagePhoto#bc78dbcc as nil") } b.ObjStart() b.PutID("inputMessagePhoto") b.Comma() b.FieldStart("photo") if i.Photo == nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field photo is nil") } if err := i.Photo.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field photo: %w", err) } b.Comma() b.FieldStart("thumbnail") if err := i.Thumbnail.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field thumbnail: %w", err) } b.Comma() b.FieldStart("added_sticker_file_ids") b.ArrStart() for _, v := range i.AddedStickerFileIDs { b.PutInt32(v) b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("width") b.PutInt32(i.Width) b.Comma() b.FieldStart("height") b.PutInt32(i.Height) b.Comma() b.FieldStart("caption") if err := i.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field caption: %w", err) } b.Comma() b.FieldStart("show_caption_above_media") b.PutBool(i.ShowCaptionAboveMedia) b.Comma() b.FieldStart("self_destruct_type") if i.SelfDestructType == nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field self_destruct_type is nil") } if err := i.SelfDestructType.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePhoto#bc78dbcc: field self_destruct_type: %w", err) } b.Comma() b.FieldStart("has_spoiler") b.PutBool(i.HasSpoiler) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessagePhoto) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessagePhoto#bc78dbcc to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessagePhoto"); err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: %w", err) } case "photo": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field photo: %w", err) } i.Photo = value case "thumbnail": if err := i.Thumbnail.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field thumbnail: %w", err) } case "added_sticker_file_ids": if err := b.Arr(func(b tdjson.Decoder) error { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field added_sticker_file_ids: %w", err) } i.AddedStickerFileIDs = append(i.AddedStickerFileIDs, value) return nil }); err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field added_sticker_file_ids: %w", err) } case "width": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field width: %w", err) } i.Width = value case "height": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field height: %w", err) } i.Height = value case "caption": if err := i.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field caption: %w", err) } case "show_caption_above_media": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field show_caption_above_media: %w", err) } i.ShowCaptionAboveMedia = value case "self_destruct_type": value, err := DecodeTDLibJSONMessageSelfDestructType(b) if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field self_destruct_type: %w", err) } i.SelfDestructType = value case "has_spoiler": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePhoto#bc78dbcc: field has_spoiler: %w", err) } i.HasSpoiler = value default: return b.Skip() } return nil }) } // GetPhoto returns value of Photo field. func (i *InputMessagePhoto) GetPhoto() (value InputFileClass) { if i == nil { return } return i.Photo } // GetThumbnail returns value of Thumbnail field. func (i *InputMessagePhoto) GetThumbnail() (value InputThumbnail) { if i == nil { return } return i.Thumbnail } // GetAddedStickerFileIDs returns value of AddedStickerFileIDs field. func (i *InputMessagePhoto) GetAddedStickerFileIDs() (value []int32) { if i == nil { return } return i.AddedStickerFileIDs } // GetWidth returns value of Width field. func (i *InputMessagePhoto) GetWidth() (value int32) { if i == nil { return } return i.Width } // GetHeight returns value of Height field. func (i *InputMessagePhoto) GetHeight() (value int32) { if i == nil { return } return i.Height } // GetCaption returns value of Caption field. func (i *InputMessagePhoto) GetCaption() (value FormattedText) { if i == nil { return } return i.Caption } // GetShowCaptionAboveMedia returns value of ShowCaptionAboveMedia field. func (i *InputMessagePhoto) GetShowCaptionAboveMedia() (value bool) { if i == nil { return } return i.ShowCaptionAboveMedia } // GetSelfDestructType returns value of SelfDestructType field. func (i *InputMessagePhoto) GetSelfDestructType() (value MessageSelfDestructTypeClass) { if i == nil { return } return i.SelfDestructType } // GetHasSpoiler returns value of HasSpoiler field. func (i *InputMessagePhoto) GetHasSpoiler() (value bool) { if i == nil { return } return i.HasSpoiler } // InputMessageSticker represents TL type `inputMessageSticker#3ff1b6f9`. type InputMessageSticker struct { // Sticker to be sent Sticker InputFileClass // Sticker thumbnail; pass null to skip thumbnail uploading Thumbnail InputThumbnail // Sticker width Width int32 // Sticker height Height int32 // Emoji used to choose the sticker Emoji string } // InputMessageStickerTypeID is TL type id of InputMessageSticker. const InputMessageStickerTypeID = 0x3ff1b6f9 // construct implements constructor of InputMessageContentClass. func (i InputMessageSticker) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageSticker. var ( _ bin.Encoder = &InputMessageSticker{} _ bin.Decoder = &InputMessageSticker{} _ bin.BareEncoder = &InputMessageSticker{} _ bin.BareDecoder = &InputMessageSticker{} _ InputMessageContentClass = &InputMessageSticker{} ) func (i *InputMessageSticker) Zero() bool { if i == nil { return true } if !(i.Sticker == nil) { return false } if !(i.Thumbnail.Zero()) { return false } if !(i.Width == 0) { return false } if !(i.Height == 0) { return false } if !(i.Emoji == "") { return false } return true } // String implements fmt.Stringer. func (i *InputMessageSticker) String() string { if i == nil { return "InputMessageSticker(nil)" } type Alias InputMessageSticker return fmt.Sprintf("InputMessageSticker%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageSticker) TypeID() uint32 { return InputMessageStickerTypeID } // TypeName returns name of type in TL schema. func (*InputMessageSticker) TypeName() string { return "inputMessageSticker" } // TypeInfo returns info about TL type. func (i *InputMessageSticker) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageSticker", ID: InputMessageStickerTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Sticker", SchemaName: "sticker", }, { Name: "Thumbnail", SchemaName: "thumbnail", }, { Name: "Width", SchemaName: "width", }, { Name: "Height", SchemaName: "height", }, { Name: "Emoji", SchemaName: "emoji", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageSticker) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageSticker#3ff1b6f9 as nil") } b.PutID(InputMessageStickerTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageSticker) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageSticker#3ff1b6f9 as nil") } if i.Sticker == nil { return fmt.Errorf("unable to encode inputMessageSticker#3ff1b6f9: field sticker is nil") } if err := i.Sticker.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageSticker#3ff1b6f9: field sticker: %w", err) } if err := i.Thumbnail.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageSticker#3ff1b6f9: field thumbnail: %w", err) } b.PutInt32(i.Width) b.PutInt32(i.Height) b.PutString(i.Emoji) return nil } // Decode implements bin.Decoder. func (i *InputMessageSticker) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageSticker#3ff1b6f9 to nil") } if err := b.ConsumeID(InputMessageStickerTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageSticker) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageSticker#3ff1b6f9 to nil") } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field sticker: %w", err) } i.Sticker = value } { if err := i.Thumbnail.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field thumbnail: %w", err) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field width: %w", err) } i.Width = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field height: %w", err) } i.Height = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field emoji: %w", err) } i.Emoji = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageSticker) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageSticker#3ff1b6f9 as nil") } b.ObjStart() b.PutID("inputMessageSticker") b.Comma() b.FieldStart("sticker") if i.Sticker == nil { return fmt.Errorf("unable to encode inputMessageSticker#3ff1b6f9: field sticker is nil") } if err := i.Sticker.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageSticker#3ff1b6f9: field sticker: %w", err) } b.Comma() b.FieldStart("thumbnail") if err := i.Thumbnail.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageSticker#3ff1b6f9: field thumbnail: %w", err) } b.Comma() b.FieldStart("width") b.PutInt32(i.Width) b.Comma() b.FieldStart("height") b.PutInt32(i.Height) b.Comma() b.FieldStart("emoji") b.PutString(i.Emoji) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageSticker) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageSticker#3ff1b6f9 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageSticker"); err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: %w", err) } case "sticker": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field sticker: %w", err) } i.Sticker = value case "thumbnail": if err := i.Thumbnail.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field thumbnail: %w", err) } case "width": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field width: %w", err) } i.Width = value case "height": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field height: %w", err) } i.Height = value case "emoji": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageSticker#3ff1b6f9: field emoji: %w", err) } i.Emoji = value default: return b.Skip() } return nil }) } // GetSticker returns value of Sticker field. func (i *InputMessageSticker) GetSticker() (value InputFileClass) { if i == nil { return } return i.Sticker } // GetThumbnail returns value of Thumbnail field. func (i *InputMessageSticker) GetThumbnail() (value InputThumbnail) { if i == nil { return } return i.Thumbnail } // GetWidth returns value of Width field. func (i *InputMessageSticker) GetWidth() (value int32) { if i == nil { return } return i.Width } // GetHeight returns value of Height field. func (i *InputMessageSticker) GetHeight() (value int32) { if i == nil { return } return i.Height } // GetEmoji returns value of Emoji field. func (i *InputMessageSticker) GetEmoji() (value string) { if i == nil { return } return i.Emoji } // InputMessageVideo represents TL type `inputMessageVideo#74f09b52`. type InputMessageVideo struct { // Video to be sent. The video is expected to be re-encoded to MPEG4 format with H.264 // codec by the sender Video InputFileClass // Video thumbnail; pass null to skip thumbnail uploading Thumbnail InputThumbnail // Cover of the video; pass null to skip cover uploading; not supported in secret chats // and for self-destructing messages Cover InputFileClass // Timestamp from which the video playing must start, in seconds StartTimestamp int32 // File identifiers of the stickers added to the video, if applicable AddedStickerFileIDs []int32 // Duration of the video, in seconds Duration int32 // Video width Width int32 // Video height Height int32 // True, if the video is expected to be streamed SupportsStreaming bool // Video caption; pass null to use an empty caption; // 0-getOption("message_caption_length_max") characters Caption FormattedText // True, if the caption must be shown above the video; otherwise, the caption must be // shown below the video; not supported in secret chats ShowCaptionAboveMedia bool // Video self-destruct type; pass null if none; private chats only SelfDestructType MessageSelfDestructTypeClass // True, if the video preview must be covered by a spoiler animation; not supported in // secret chats HasSpoiler bool } // InputMessageVideoTypeID is TL type id of InputMessageVideo. const InputMessageVideoTypeID = 0x74f09b52 // construct implements constructor of InputMessageContentClass. func (i InputMessageVideo) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageVideo. var ( _ bin.Encoder = &InputMessageVideo{} _ bin.Decoder = &InputMessageVideo{} _ bin.BareEncoder = &InputMessageVideo{} _ bin.BareDecoder = &InputMessageVideo{} _ InputMessageContentClass = &InputMessageVideo{} ) func (i *InputMessageVideo) Zero() bool { if i == nil { return true } if !(i.Video == nil) { return false } if !(i.Thumbnail.Zero()) { return false } if !(i.Cover == nil) { return false } if !(i.StartTimestamp == 0) { return false } if !(i.AddedStickerFileIDs == nil) { return false } if !(i.Duration == 0) { return false } if !(i.Width == 0) { return false } if !(i.Height == 0) { return false } if !(i.SupportsStreaming == false) { return false } if !(i.Caption.Zero()) { return false } if !(i.ShowCaptionAboveMedia == false) { return false } if !(i.SelfDestructType == nil) { return false } if !(i.HasSpoiler == false) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageVideo) String() string { if i == nil { return "InputMessageVideo(nil)" } type Alias InputMessageVideo return fmt.Sprintf("InputMessageVideo%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageVideo) TypeID() uint32 { return InputMessageVideoTypeID } // TypeName returns name of type in TL schema. func (*InputMessageVideo) TypeName() string { return "inputMessageVideo" } // TypeInfo returns info about TL type. func (i *InputMessageVideo) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageVideo", ID: InputMessageVideoTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Video", SchemaName: "video", }, { Name: "Thumbnail", SchemaName: "thumbnail", }, { Name: "Cover", SchemaName: "cover", }, { Name: "StartTimestamp", SchemaName: "start_timestamp", }, { Name: "AddedStickerFileIDs", SchemaName: "added_sticker_file_ids", }, { Name: "Duration", SchemaName: "duration", }, { Name: "Width", SchemaName: "width", }, { Name: "Height", SchemaName: "height", }, { Name: "SupportsStreaming", SchemaName: "supports_streaming", }, { Name: "Caption", SchemaName: "caption", }, { Name: "ShowCaptionAboveMedia", SchemaName: "show_caption_above_media", }, { Name: "SelfDestructType", SchemaName: "self_destruct_type", }, { Name: "HasSpoiler", SchemaName: "has_spoiler", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageVideo) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageVideo#74f09b52 as nil") } b.PutID(InputMessageVideoTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageVideo) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageVideo#74f09b52 as nil") } if i.Video == nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field video is nil") } if err := i.Video.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field video: %w", err) } if err := i.Thumbnail.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field thumbnail: %w", err) } if i.Cover == nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field cover is nil") } if err := i.Cover.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field cover: %w", err) } b.PutInt32(i.StartTimestamp) b.PutInt(len(i.AddedStickerFileIDs)) for _, v := range i.AddedStickerFileIDs { b.PutInt32(v) } b.PutInt32(i.Duration) b.PutInt32(i.Width) b.PutInt32(i.Height) b.PutBool(i.SupportsStreaming) if err := i.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field caption: %w", err) } b.PutBool(i.ShowCaptionAboveMedia) if i.SelfDestructType == nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field self_destruct_type is nil") } if err := i.SelfDestructType.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field self_destruct_type: %w", err) } b.PutBool(i.HasSpoiler) return nil } // Decode implements bin.Decoder. func (i *InputMessageVideo) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageVideo#74f09b52 to nil") } if err := b.ConsumeID(InputMessageVideoTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageVideo) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageVideo#74f09b52 to nil") } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field video: %w", err) } i.Video = value } { if err := i.Thumbnail.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field thumbnail: %w", err) } } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field cover: %w", err) } i.Cover = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field start_timestamp: %w", err) } i.StartTimestamp = value } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field added_sticker_file_ids: %w", err) } if headerLen > 0 { i.AddedStickerFileIDs = make([]int32, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field added_sticker_file_ids: %w", err) } i.AddedStickerFileIDs = append(i.AddedStickerFileIDs, value) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field duration: %w", err) } i.Duration = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field width: %w", err) } i.Width = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field height: %w", err) } i.Height = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field supports_streaming: %w", err) } i.SupportsStreaming = value } { if err := i.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field caption: %w", err) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field show_caption_above_media: %w", err) } i.ShowCaptionAboveMedia = value } { value, err := DecodeMessageSelfDestructType(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field self_destruct_type: %w", err) } i.SelfDestructType = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field has_spoiler: %w", err) } i.HasSpoiler = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageVideo) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageVideo#74f09b52 as nil") } b.ObjStart() b.PutID("inputMessageVideo") b.Comma() b.FieldStart("video") if i.Video == nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field video is nil") } if err := i.Video.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field video: %w", err) } b.Comma() b.FieldStart("thumbnail") if err := i.Thumbnail.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field thumbnail: %w", err) } b.Comma() b.FieldStart("cover") if i.Cover == nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field cover is nil") } if err := i.Cover.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field cover: %w", err) } b.Comma() b.FieldStart("start_timestamp") b.PutInt32(i.StartTimestamp) b.Comma() b.FieldStart("added_sticker_file_ids") b.ArrStart() for _, v := range i.AddedStickerFileIDs { b.PutInt32(v) b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("duration") b.PutInt32(i.Duration) b.Comma() b.FieldStart("width") b.PutInt32(i.Width) b.Comma() b.FieldStart("height") b.PutInt32(i.Height) b.Comma() b.FieldStart("supports_streaming") b.PutBool(i.SupportsStreaming) b.Comma() b.FieldStart("caption") if err := i.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field caption: %w", err) } b.Comma() b.FieldStart("show_caption_above_media") b.PutBool(i.ShowCaptionAboveMedia) b.Comma() b.FieldStart("self_destruct_type") if i.SelfDestructType == nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field self_destruct_type is nil") } if err := i.SelfDestructType.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideo#74f09b52: field self_destruct_type: %w", err) } b.Comma() b.FieldStart("has_spoiler") b.PutBool(i.HasSpoiler) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageVideo) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageVideo#74f09b52 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageVideo"); err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: %w", err) } case "video": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field video: %w", err) } i.Video = value case "thumbnail": if err := i.Thumbnail.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field thumbnail: %w", err) } case "cover": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field cover: %w", err) } i.Cover = value case "start_timestamp": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field start_timestamp: %w", err) } i.StartTimestamp = value case "added_sticker_file_ids": if err := b.Arr(func(b tdjson.Decoder) error { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field added_sticker_file_ids: %w", err) } i.AddedStickerFileIDs = append(i.AddedStickerFileIDs, value) return nil }); err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field added_sticker_file_ids: %w", err) } case "duration": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field duration: %w", err) } i.Duration = value case "width": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field width: %w", err) } i.Width = value case "height": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field height: %w", err) } i.Height = value case "supports_streaming": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field supports_streaming: %w", err) } i.SupportsStreaming = value case "caption": if err := i.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field caption: %w", err) } case "show_caption_above_media": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field show_caption_above_media: %w", err) } i.ShowCaptionAboveMedia = value case "self_destruct_type": value, err := DecodeTDLibJSONMessageSelfDestructType(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field self_destruct_type: %w", err) } i.SelfDestructType = value case "has_spoiler": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageVideo#74f09b52: field has_spoiler: %w", err) } i.HasSpoiler = value default: return b.Skip() } return nil }) } // GetVideo returns value of Video field. func (i *InputMessageVideo) GetVideo() (value InputFileClass) { if i == nil { return } return i.Video } // GetThumbnail returns value of Thumbnail field. func (i *InputMessageVideo) GetThumbnail() (value InputThumbnail) { if i == nil { return } return i.Thumbnail } // GetCover returns value of Cover field. func (i *InputMessageVideo) GetCover() (value InputFileClass) { if i == nil { return } return i.Cover } // GetStartTimestamp returns value of StartTimestamp field. func (i *InputMessageVideo) GetStartTimestamp() (value int32) { if i == nil { return } return i.StartTimestamp } // GetAddedStickerFileIDs returns value of AddedStickerFileIDs field. func (i *InputMessageVideo) GetAddedStickerFileIDs() (value []int32) { if i == nil { return } return i.AddedStickerFileIDs } // GetDuration returns value of Duration field. func (i *InputMessageVideo) GetDuration() (value int32) { if i == nil { return } return i.Duration } // GetWidth returns value of Width field. func (i *InputMessageVideo) GetWidth() (value int32) { if i == nil { return } return i.Width } // GetHeight returns value of Height field. func (i *InputMessageVideo) GetHeight() (value int32) { if i == nil { return } return i.Height } // GetSupportsStreaming returns value of SupportsStreaming field. func (i *InputMessageVideo) GetSupportsStreaming() (value bool) { if i == nil { return } return i.SupportsStreaming } // GetCaption returns value of Caption field. func (i *InputMessageVideo) GetCaption() (value FormattedText) { if i == nil { return } return i.Caption } // GetShowCaptionAboveMedia returns value of ShowCaptionAboveMedia field. func (i *InputMessageVideo) GetShowCaptionAboveMedia() (value bool) { if i == nil { return } return i.ShowCaptionAboveMedia } // GetSelfDestructType returns value of SelfDestructType field. func (i *InputMessageVideo) GetSelfDestructType() (value MessageSelfDestructTypeClass) { if i == nil { return } return i.SelfDestructType } // GetHasSpoiler returns value of HasSpoiler field. func (i *InputMessageVideo) GetHasSpoiler() (value bool) { if i == nil { return } return i.HasSpoiler } // InputMessageVideoNote represents TL type `inputMessageVideoNote#d56816dd`. type InputMessageVideoNote struct { // Video note to be sent. The video is expected to be encoded to MPEG4 format with H.264 // codec and have no data outside of the visible circle VideoNote InputFileClass // Video thumbnail; may be null if empty; pass null to skip thumbnail uploading Thumbnail InputThumbnail // Duration of the video, in seconds; 0-60 Duration int32 // Video width and height; must be positive and not greater than 640 Length int32 // Video note self-destruct type; may be null if none; pass null if none; private chats // only SelfDestructType MessageSelfDestructTypeClass } // InputMessageVideoNoteTypeID is TL type id of InputMessageVideoNote. const InputMessageVideoNoteTypeID = 0xd56816dd // construct implements constructor of InputMessageContentClass. func (i InputMessageVideoNote) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageVideoNote. var ( _ bin.Encoder = &InputMessageVideoNote{} _ bin.Decoder = &InputMessageVideoNote{} _ bin.BareEncoder = &InputMessageVideoNote{} _ bin.BareDecoder = &InputMessageVideoNote{} _ InputMessageContentClass = &InputMessageVideoNote{} ) func (i *InputMessageVideoNote) Zero() bool { if i == nil { return true } if !(i.VideoNote == nil) { return false } if !(i.Thumbnail.Zero()) { return false } if !(i.Duration == 0) { return false } if !(i.Length == 0) { return false } if !(i.SelfDestructType == nil) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageVideoNote) String() string { if i == nil { return "InputMessageVideoNote(nil)" } type Alias InputMessageVideoNote return fmt.Sprintf("InputMessageVideoNote%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageVideoNote) TypeID() uint32 { return InputMessageVideoNoteTypeID } // TypeName returns name of type in TL schema. func (*InputMessageVideoNote) TypeName() string { return "inputMessageVideoNote" } // TypeInfo returns info about TL type. func (i *InputMessageVideoNote) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageVideoNote", ID: InputMessageVideoNoteTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "VideoNote", SchemaName: "video_note", }, { Name: "Thumbnail", SchemaName: "thumbnail", }, { Name: "Duration", SchemaName: "duration", }, { Name: "Length", SchemaName: "length", }, { Name: "SelfDestructType", SchemaName: "self_destruct_type", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageVideoNote) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageVideoNote#d56816dd as nil") } b.PutID(InputMessageVideoNoteTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageVideoNote) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageVideoNote#d56816dd as nil") } if i.VideoNote == nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field video_note is nil") } if err := i.VideoNote.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field video_note: %w", err) } if err := i.Thumbnail.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field thumbnail: %w", err) } b.PutInt32(i.Duration) b.PutInt32(i.Length) if i.SelfDestructType == nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field self_destruct_type is nil") } if err := i.SelfDestructType.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field self_destruct_type: %w", err) } return nil } // Decode implements bin.Decoder. func (i *InputMessageVideoNote) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageVideoNote#d56816dd to nil") } if err := b.ConsumeID(InputMessageVideoNoteTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageVideoNote) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageVideoNote#d56816dd to nil") } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field video_note: %w", err) } i.VideoNote = value } { if err := i.Thumbnail.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field thumbnail: %w", err) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field duration: %w", err) } i.Duration = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field length: %w", err) } i.Length = value } { value, err := DecodeMessageSelfDestructType(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field self_destruct_type: %w", err) } i.SelfDestructType = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageVideoNote) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageVideoNote#d56816dd as nil") } b.ObjStart() b.PutID("inputMessageVideoNote") b.Comma() b.FieldStart("video_note") if i.VideoNote == nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field video_note is nil") } if err := i.VideoNote.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field video_note: %w", err) } b.Comma() b.FieldStart("thumbnail") if err := i.Thumbnail.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field thumbnail: %w", err) } b.Comma() b.FieldStart("duration") b.PutInt32(i.Duration) b.Comma() b.FieldStart("length") b.PutInt32(i.Length) b.Comma() b.FieldStart("self_destruct_type") if i.SelfDestructType == nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field self_destruct_type is nil") } if err := i.SelfDestructType.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVideoNote#d56816dd: field self_destruct_type: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageVideoNote) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageVideoNote#d56816dd to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageVideoNote"); err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: %w", err) } case "video_note": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field video_note: %w", err) } i.VideoNote = value case "thumbnail": if err := i.Thumbnail.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field thumbnail: %w", err) } case "duration": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field duration: %w", err) } i.Duration = value case "length": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field length: %w", err) } i.Length = value case "self_destruct_type": value, err := DecodeTDLibJSONMessageSelfDestructType(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVideoNote#d56816dd: field self_destruct_type: %w", err) } i.SelfDestructType = value default: return b.Skip() } return nil }) } // GetVideoNote returns value of VideoNote field. func (i *InputMessageVideoNote) GetVideoNote() (value InputFileClass) { if i == nil { return } return i.VideoNote } // GetThumbnail returns value of Thumbnail field. func (i *InputMessageVideoNote) GetThumbnail() (value InputThumbnail) { if i == nil { return } return i.Thumbnail } // GetDuration returns value of Duration field. func (i *InputMessageVideoNote) GetDuration() (value int32) { if i == nil { return } return i.Duration } // GetLength returns value of Length field. func (i *InputMessageVideoNote) GetLength() (value int32) { if i == nil { return } return i.Length } // GetSelfDestructType returns value of SelfDestructType field. func (i *InputMessageVideoNote) GetSelfDestructType() (value MessageSelfDestructTypeClass) { if i == nil { return } return i.SelfDestructType } // InputMessageVoiceNote represents TL type `inputMessageVoiceNote#5723ffac`. type InputMessageVoiceNote struct { // Voice note to be sent. The voice note must be encoded with the Opus codec and stored // inside an OGG container with a single audio channel, or be in MP3 or M4A format as // regular audio VoiceNote InputFileClass // Duration of the voice note, in seconds Duration int32 // Waveform representation of the voice note in 5-bit format Waveform []byte // Voice note caption; may be null if empty; pass null to use an empty caption; // 0-getOption("message_caption_length_max") characters Caption FormattedText // Voice note self-destruct type; may be null if none; pass null if none; private chats // only SelfDestructType MessageSelfDestructTypeClass } // InputMessageVoiceNoteTypeID is TL type id of InputMessageVoiceNote. const InputMessageVoiceNoteTypeID = 0x5723ffac // construct implements constructor of InputMessageContentClass. func (i InputMessageVoiceNote) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageVoiceNote. var ( _ bin.Encoder = &InputMessageVoiceNote{} _ bin.Decoder = &InputMessageVoiceNote{} _ bin.BareEncoder = &InputMessageVoiceNote{} _ bin.BareDecoder = &InputMessageVoiceNote{} _ InputMessageContentClass = &InputMessageVoiceNote{} ) func (i *InputMessageVoiceNote) Zero() bool { if i == nil { return true } if !(i.VoiceNote == nil) { return false } if !(i.Duration == 0) { return false } if !(i.Waveform == nil) { return false } if !(i.Caption.Zero()) { return false } if !(i.SelfDestructType == nil) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageVoiceNote) String() string { if i == nil { return "InputMessageVoiceNote(nil)" } type Alias InputMessageVoiceNote return fmt.Sprintf("InputMessageVoiceNote%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageVoiceNote) TypeID() uint32 { return InputMessageVoiceNoteTypeID } // TypeName returns name of type in TL schema. func (*InputMessageVoiceNote) TypeName() string { return "inputMessageVoiceNote" } // TypeInfo returns info about TL type. func (i *InputMessageVoiceNote) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageVoiceNote", ID: InputMessageVoiceNoteTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "VoiceNote", SchemaName: "voice_note", }, { Name: "Duration", SchemaName: "duration", }, { Name: "Waveform", SchemaName: "waveform", }, { Name: "Caption", SchemaName: "caption", }, { Name: "SelfDestructType", SchemaName: "self_destruct_type", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageVoiceNote) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageVoiceNote#5723ffac as nil") } b.PutID(InputMessageVoiceNoteTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageVoiceNote) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageVoiceNote#5723ffac as nil") } if i.VoiceNote == nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field voice_note is nil") } if err := i.VoiceNote.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field voice_note: %w", err) } b.PutInt32(i.Duration) b.PutBytes(i.Waveform) if err := i.Caption.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field caption: %w", err) } if i.SelfDestructType == nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field self_destruct_type is nil") } if err := i.SelfDestructType.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field self_destruct_type: %w", err) } return nil } // Decode implements bin.Decoder. func (i *InputMessageVoiceNote) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageVoiceNote#5723ffac to nil") } if err := b.ConsumeID(InputMessageVoiceNoteTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageVoiceNote) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageVoiceNote#5723ffac to nil") } { value, err := DecodeInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field voice_note: %w", err) } i.VoiceNote = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field duration: %w", err) } i.Duration = value } { value, err := b.Bytes() if err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field waveform: %w", err) } i.Waveform = value } { if err := i.Caption.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field caption: %w", err) } } { value, err := DecodeMessageSelfDestructType(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field self_destruct_type: %w", err) } i.SelfDestructType = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageVoiceNote) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageVoiceNote#5723ffac as nil") } b.ObjStart() b.PutID("inputMessageVoiceNote") b.Comma() b.FieldStart("voice_note") if i.VoiceNote == nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field voice_note is nil") } if err := i.VoiceNote.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field voice_note: %w", err) } b.Comma() b.FieldStart("duration") b.PutInt32(i.Duration) b.Comma() b.FieldStart("waveform") b.PutBytes(i.Waveform) b.Comma() b.FieldStart("caption") if err := i.Caption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field caption: %w", err) } b.Comma() b.FieldStart("self_destruct_type") if i.SelfDestructType == nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field self_destruct_type is nil") } if err := i.SelfDestructType.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVoiceNote#5723ffac: field self_destruct_type: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageVoiceNote) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageVoiceNote#5723ffac to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageVoiceNote"); err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: %w", err) } case "voice_note": value, err := DecodeTDLibJSONInputFile(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field voice_note: %w", err) } i.VoiceNote = value case "duration": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field duration: %w", err) } i.Duration = value case "waveform": value, err := b.Bytes() if err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field waveform: %w", err) } i.Waveform = value case "caption": if err := i.Caption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field caption: %w", err) } case "self_destruct_type": value, err := DecodeTDLibJSONMessageSelfDestructType(b) if err != nil { return fmt.Errorf("unable to decode inputMessageVoiceNote#5723ffac: field self_destruct_type: %w", err) } i.SelfDestructType = value default: return b.Skip() } return nil }) } // GetVoiceNote returns value of VoiceNote field. func (i *InputMessageVoiceNote) GetVoiceNote() (value InputFileClass) { if i == nil { return } return i.VoiceNote } // GetDuration returns value of Duration field. func (i *InputMessageVoiceNote) GetDuration() (value int32) { if i == nil { return } return i.Duration } // GetWaveform returns value of Waveform field. func (i *InputMessageVoiceNote) GetWaveform() (value []byte) { if i == nil { return } return i.Waveform } // GetCaption returns value of Caption field. func (i *InputMessageVoiceNote) GetCaption() (value FormattedText) { if i == nil { return } return i.Caption } // GetSelfDestructType returns value of SelfDestructType field. func (i *InputMessageVoiceNote) GetSelfDestructType() (value MessageSelfDestructTypeClass) { if i == nil { return } return i.SelfDestructType } // InputMessageLocation represents TL type `inputMessageLocation#26aae970`. type InputMessageLocation struct { // Location to be sent Location Location // Period for which the location can be updated, in seconds; must be between 60 and 86400 // for a temporary live location, 0x7FFFFFFF for permanent live location, and 0 otherwise LivePeriod int32 // For live locations, a direction in which the location moves, in degrees; 1-360. Pass 0 // if unknown Heading int32 // For live locations, a maximum distance to another chat member for proximity alerts, in // meters (0-100000). Pass 0 if the notification is disabled. Can't be enabled in // channels and Saved Messages ProximityAlertRadius int32 } // InputMessageLocationTypeID is TL type id of InputMessageLocation. const InputMessageLocationTypeID = 0x26aae970 // construct implements constructor of InputMessageContentClass. func (i InputMessageLocation) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageLocation. var ( _ bin.Encoder = &InputMessageLocation{} _ bin.Decoder = &InputMessageLocation{} _ bin.BareEncoder = &InputMessageLocation{} _ bin.BareDecoder = &InputMessageLocation{} _ InputMessageContentClass = &InputMessageLocation{} ) func (i *InputMessageLocation) Zero() bool { if i == nil { return true } if !(i.Location.Zero()) { return false } if !(i.LivePeriod == 0) { return false } if !(i.Heading == 0) { return false } if !(i.ProximityAlertRadius == 0) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageLocation) String() string { if i == nil { return "InputMessageLocation(nil)" } type Alias InputMessageLocation return fmt.Sprintf("InputMessageLocation%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageLocation) TypeID() uint32 { return InputMessageLocationTypeID } // TypeName returns name of type in TL schema. func (*InputMessageLocation) TypeName() string { return "inputMessageLocation" } // TypeInfo returns info about TL type. func (i *InputMessageLocation) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageLocation", ID: InputMessageLocationTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Location", SchemaName: "location", }, { Name: "LivePeriod", SchemaName: "live_period", }, { Name: "Heading", SchemaName: "heading", }, { Name: "ProximityAlertRadius", SchemaName: "proximity_alert_radius", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageLocation) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageLocation#26aae970 as nil") } b.PutID(InputMessageLocationTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageLocation) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageLocation#26aae970 as nil") } if err := i.Location.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageLocation#26aae970: field location: %w", err) } b.PutInt32(i.LivePeriod) b.PutInt32(i.Heading) b.PutInt32(i.ProximityAlertRadius) return nil } // Decode implements bin.Decoder. func (i *InputMessageLocation) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageLocation#26aae970 to nil") } if err := b.ConsumeID(InputMessageLocationTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageLocation) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageLocation#26aae970 to nil") } { if err := i.Location.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: field location: %w", err) } } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: field live_period: %w", err) } i.LivePeriod = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: field heading: %w", err) } i.Heading = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: field proximity_alert_radius: %w", err) } i.ProximityAlertRadius = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageLocation) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageLocation#26aae970 as nil") } b.ObjStart() b.PutID("inputMessageLocation") b.Comma() b.FieldStart("location") if err := i.Location.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageLocation#26aae970: field location: %w", err) } b.Comma() b.FieldStart("live_period") b.PutInt32(i.LivePeriod) b.Comma() b.FieldStart("heading") b.PutInt32(i.Heading) b.Comma() b.FieldStart("proximity_alert_radius") b.PutInt32(i.ProximityAlertRadius) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageLocation) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageLocation#26aae970 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageLocation"); err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: %w", err) } case "location": if err := i.Location.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: field location: %w", err) } case "live_period": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: field live_period: %w", err) } i.LivePeriod = value case "heading": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: field heading: %w", err) } i.Heading = value case "proximity_alert_radius": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageLocation#26aae970: field proximity_alert_radius: %w", err) } i.ProximityAlertRadius = value default: return b.Skip() } return nil }) } // GetLocation returns value of Location field. func (i *InputMessageLocation) GetLocation() (value Location) { if i == nil { return } return i.Location } // GetLivePeriod returns value of LivePeriod field. func (i *InputMessageLocation) GetLivePeriod() (value int32) { if i == nil { return } return i.LivePeriod } // GetHeading returns value of Heading field. func (i *InputMessageLocation) GetHeading() (value int32) { if i == nil { return } return i.Heading } // GetProximityAlertRadius returns value of ProximityAlertRadius field. func (i *InputMessageLocation) GetProximityAlertRadius() (value int32) { if i == nil { return } return i.ProximityAlertRadius } // InputMessageVenue represents TL type `inputMessageVenue#564d99fd`. type InputMessageVenue struct { // Venue to send Venue Venue } // InputMessageVenueTypeID is TL type id of InputMessageVenue. const InputMessageVenueTypeID = 0x564d99fd // construct implements constructor of InputMessageContentClass. func (i InputMessageVenue) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageVenue. var ( _ bin.Encoder = &InputMessageVenue{} _ bin.Decoder = &InputMessageVenue{} _ bin.BareEncoder = &InputMessageVenue{} _ bin.BareDecoder = &InputMessageVenue{} _ InputMessageContentClass = &InputMessageVenue{} ) func (i *InputMessageVenue) Zero() bool { if i == nil { return true } if !(i.Venue.Zero()) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageVenue) String() string { if i == nil { return "InputMessageVenue(nil)" } type Alias InputMessageVenue return fmt.Sprintf("InputMessageVenue%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageVenue) TypeID() uint32 { return InputMessageVenueTypeID } // TypeName returns name of type in TL schema. func (*InputMessageVenue) TypeName() string { return "inputMessageVenue" } // TypeInfo returns info about TL type. func (i *InputMessageVenue) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageVenue", ID: InputMessageVenueTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Venue", SchemaName: "venue", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageVenue) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageVenue#564d99fd as nil") } b.PutID(InputMessageVenueTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageVenue) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageVenue#564d99fd as nil") } if err := i.Venue.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageVenue#564d99fd: field venue: %w", err) } return nil } // Decode implements bin.Decoder. func (i *InputMessageVenue) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageVenue#564d99fd to nil") } if err := b.ConsumeID(InputMessageVenueTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageVenue#564d99fd: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageVenue) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageVenue#564d99fd to nil") } { if err := i.Venue.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageVenue#564d99fd: field venue: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageVenue) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageVenue#564d99fd as nil") } b.ObjStart() b.PutID("inputMessageVenue") b.Comma() b.FieldStart("venue") if err := i.Venue.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageVenue#564d99fd: field venue: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageVenue) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageVenue#564d99fd to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageVenue"); err != nil { return fmt.Errorf("unable to decode inputMessageVenue#564d99fd: %w", err) } case "venue": if err := i.Venue.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageVenue#564d99fd: field venue: %w", err) } default: return b.Skip() } return nil }) } // GetVenue returns value of Venue field. func (i *InputMessageVenue) GetVenue() (value Venue) { if i == nil { return } return i.Venue } // InputMessageContact represents TL type `inputMessageContact#c5710cff`. type InputMessageContact struct { // Contact to send Contact Contact } // InputMessageContactTypeID is TL type id of InputMessageContact. const InputMessageContactTypeID = 0xc5710cff // construct implements constructor of InputMessageContentClass. func (i InputMessageContact) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageContact. var ( _ bin.Encoder = &InputMessageContact{} _ bin.Decoder = &InputMessageContact{} _ bin.BareEncoder = &InputMessageContact{} _ bin.BareDecoder = &InputMessageContact{} _ InputMessageContentClass = &InputMessageContact{} ) func (i *InputMessageContact) Zero() bool { if i == nil { return true } if !(i.Contact.Zero()) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageContact) String() string { if i == nil { return "InputMessageContact(nil)" } type Alias InputMessageContact return fmt.Sprintf("InputMessageContact%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageContact) TypeID() uint32 { return InputMessageContactTypeID } // TypeName returns name of type in TL schema. func (*InputMessageContact) TypeName() string { return "inputMessageContact" } // TypeInfo returns info about TL type. func (i *InputMessageContact) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageContact", ID: InputMessageContactTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Contact", SchemaName: "contact", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageContact) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageContact#c5710cff as nil") } b.PutID(InputMessageContactTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageContact) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageContact#c5710cff as nil") } if err := i.Contact.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageContact#c5710cff: field contact: %w", err) } return nil } // Decode implements bin.Decoder. func (i *InputMessageContact) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageContact#c5710cff to nil") } if err := b.ConsumeID(InputMessageContactTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageContact#c5710cff: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageContact) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageContact#c5710cff to nil") } { if err := i.Contact.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageContact#c5710cff: field contact: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageContact) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageContact#c5710cff as nil") } b.ObjStart() b.PutID("inputMessageContact") b.Comma() b.FieldStart("contact") if err := i.Contact.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageContact#c5710cff: field contact: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageContact) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageContact#c5710cff to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageContact"); err != nil { return fmt.Errorf("unable to decode inputMessageContact#c5710cff: %w", err) } case "contact": if err := i.Contact.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageContact#c5710cff: field contact: %w", err) } default: return b.Skip() } return nil }) } // GetContact returns value of Contact field. func (i *InputMessageContact) GetContact() (value Contact) { if i == nil { return } return i.Contact } // InputMessageDice represents TL type `inputMessageDice#322967a9`. type InputMessageDice struct { // Emoji on which the dice throw animation is based Emoji string // True, if the chat message draft must be deleted ClearDraft bool } // InputMessageDiceTypeID is TL type id of InputMessageDice. const InputMessageDiceTypeID = 0x322967a9 // construct implements constructor of InputMessageContentClass. func (i InputMessageDice) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageDice. var ( _ bin.Encoder = &InputMessageDice{} _ bin.Decoder = &InputMessageDice{} _ bin.BareEncoder = &InputMessageDice{} _ bin.BareDecoder = &InputMessageDice{} _ InputMessageContentClass = &InputMessageDice{} ) func (i *InputMessageDice) Zero() bool { if i == nil { return true } if !(i.Emoji == "") { return false } if !(i.ClearDraft == false) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageDice) String() string { if i == nil { return "InputMessageDice(nil)" } type Alias InputMessageDice return fmt.Sprintf("InputMessageDice%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageDice) TypeID() uint32 { return InputMessageDiceTypeID } // TypeName returns name of type in TL schema. func (*InputMessageDice) TypeName() string { return "inputMessageDice" } // TypeInfo returns info about TL type. func (i *InputMessageDice) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageDice", ID: InputMessageDiceTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Emoji", SchemaName: "emoji", }, { Name: "ClearDraft", SchemaName: "clear_draft", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageDice) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageDice#322967a9 as nil") } b.PutID(InputMessageDiceTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageDice) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageDice#322967a9 as nil") } b.PutString(i.Emoji) b.PutBool(i.ClearDraft) return nil } // Decode implements bin.Decoder. func (i *InputMessageDice) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageDice#322967a9 to nil") } if err := b.ConsumeID(InputMessageDiceTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageDice#322967a9: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageDice) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageDice#322967a9 to nil") } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageDice#322967a9: field emoji: %w", err) } i.Emoji = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageDice#322967a9: field clear_draft: %w", err) } i.ClearDraft = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageDice) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageDice#322967a9 as nil") } b.ObjStart() b.PutID("inputMessageDice") b.Comma() b.FieldStart("emoji") b.PutString(i.Emoji) b.Comma() b.FieldStart("clear_draft") b.PutBool(i.ClearDraft) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageDice) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageDice#322967a9 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageDice"); err != nil { return fmt.Errorf("unable to decode inputMessageDice#322967a9: %w", err) } case "emoji": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageDice#322967a9: field emoji: %w", err) } i.Emoji = value case "clear_draft": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageDice#322967a9: field clear_draft: %w", err) } i.ClearDraft = value default: return b.Skip() } return nil }) } // GetEmoji returns value of Emoji field. func (i *InputMessageDice) GetEmoji() (value string) { if i == nil { return } return i.Emoji } // GetClearDraft returns value of ClearDraft field. func (i *InputMessageDice) GetClearDraft() (value bool) { if i == nil { return } return i.ClearDraft } // InputMessageGame represents TL type `inputMessageGame#4aae6ae2`. type InputMessageGame struct { // User identifier of the bot that owns the game BotUserID int64 // Short name of the game GameShortName string } // InputMessageGameTypeID is TL type id of InputMessageGame. const InputMessageGameTypeID = 0x4aae6ae2 // construct implements constructor of InputMessageContentClass. func (i InputMessageGame) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageGame. var ( _ bin.Encoder = &InputMessageGame{} _ bin.Decoder = &InputMessageGame{} _ bin.BareEncoder = &InputMessageGame{} _ bin.BareDecoder = &InputMessageGame{} _ InputMessageContentClass = &InputMessageGame{} ) func (i *InputMessageGame) Zero() bool { if i == nil { return true } if !(i.BotUserID == 0) { return false } if !(i.GameShortName == "") { return false } return true } // String implements fmt.Stringer. func (i *InputMessageGame) String() string { if i == nil { return "InputMessageGame(nil)" } type Alias InputMessageGame return fmt.Sprintf("InputMessageGame%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageGame) TypeID() uint32 { return InputMessageGameTypeID } // TypeName returns name of type in TL schema. func (*InputMessageGame) TypeName() string { return "inputMessageGame" } // TypeInfo returns info about TL type. func (i *InputMessageGame) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageGame", ID: InputMessageGameTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "BotUserID", SchemaName: "bot_user_id", }, { Name: "GameShortName", SchemaName: "game_short_name", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageGame) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageGame#4aae6ae2 as nil") } b.PutID(InputMessageGameTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageGame) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageGame#4aae6ae2 as nil") } b.PutInt53(i.BotUserID) b.PutString(i.GameShortName) return nil } // Decode implements bin.Decoder. func (i *InputMessageGame) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageGame#4aae6ae2 to nil") } if err := b.ConsumeID(InputMessageGameTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageGame#4aae6ae2: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageGame) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageGame#4aae6ae2 to nil") } { value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessageGame#4aae6ae2: field bot_user_id: %w", err) } i.BotUserID = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageGame#4aae6ae2: field game_short_name: %w", err) } i.GameShortName = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageGame) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageGame#4aae6ae2 as nil") } b.ObjStart() b.PutID("inputMessageGame") b.Comma() b.FieldStart("bot_user_id") b.PutInt53(i.BotUserID) b.Comma() b.FieldStart("game_short_name") b.PutString(i.GameShortName) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageGame) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageGame#4aae6ae2 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageGame"); err != nil { return fmt.Errorf("unable to decode inputMessageGame#4aae6ae2: %w", err) } case "bot_user_id": value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessageGame#4aae6ae2: field bot_user_id: %w", err) } i.BotUserID = value case "game_short_name": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageGame#4aae6ae2: field game_short_name: %w", err) } i.GameShortName = value default: return b.Skip() } return nil }) } // GetBotUserID returns value of BotUserID field. func (i *InputMessageGame) GetBotUserID() (value int64) { if i == nil { return } return i.BotUserID } // GetGameShortName returns value of GameShortName field. func (i *InputMessageGame) GetGameShortName() (value string) { if i == nil { return } return i.GameShortName } // InputMessageInvoice represents TL type `inputMessageInvoice#babc8f71`. type InputMessageInvoice struct { // Invoice Invoice Invoice // Product title; 1-32 characters Title string // A message with an invoice; can be used only by bots Description string // Product photo URL; optional PhotoURL string // Product photo size PhotoSize int32 // Product photo width PhotoWidth int32 // Product photo height PhotoHeight int32 // The invoice payload Payload []byte // Payment provider token; may be empty for payments in Telegram Stars ProviderToken string // JSON-encoded data about the invoice, which will be shared with the payment provider ProviderData string // Unique invoice bot deep link parameter for the generation of this invoice. If empty, // it would be possible to pay directly from forwards of the invoice message StartParameter string // The content of paid media attached to the invoice; pass null if none PaidMedia InputPaidMedia // Paid media caption; pass null to use an empty caption; // 0-getOption("message_caption_length_max") characters PaidMediaCaption FormattedText } // InputMessageInvoiceTypeID is TL type id of InputMessageInvoice. const InputMessageInvoiceTypeID = 0xbabc8f71 // construct implements constructor of InputMessageContentClass. func (i InputMessageInvoice) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageInvoice. var ( _ bin.Encoder = &InputMessageInvoice{} _ bin.Decoder = &InputMessageInvoice{} _ bin.BareEncoder = &InputMessageInvoice{} _ bin.BareDecoder = &InputMessageInvoice{} _ InputMessageContentClass = &InputMessageInvoice{} ) func (i *InputMessageInvoice) Zero() bool { if i == nil { return true } if !(i.Invoice.Zero()) { return false } if !(i.Title == "") { return false } if !(i.Description == "") { return false } if !(i.PhotoURL == "") { return false } if !(i.PhotoSize == 0) { return false } if !(i.PhotoWidth == 0) { return false } if !(i.PhotoHeight == 0) { return false } if !(i.Payload == nil) { return false } if !(i.ProviderToken == "") { return false } if !(i.ProviderData == "") { return false } if !(i.StartParameter == "") { return false } if !(i.PaidMedia.Zero()) { return false } if !(i.PaidMediaCaption.Zero()) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageInvoice) String() string { if i == nil { return "InputMessageInvoice(nil)" } type Alias InputMessageInvoice return fmt.Sprintf("InputMessageInvoice%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageInvoice) TypeID() uint32 { return InputMessageInvoiceTypeID } // TypeName returns name of type in TL schema. func (*InputMessageInvoice) TypeName() string { return "inputMessageInvoice" } // TypeInfo returns info about TL type. func (i *InputMessageInvoice) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageInvoice", ID: InputMessageInvoiceTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Invoice", SchemaName: "invoice", }, { Name: "Title", SchemaName: "title", }, { Name: "Description", SchemaName: "description", }, { Name: "PhotoURL", SchemaName: "photo_url", }, { Name: "PhotoSize", SchemaName: "photo_size", }, { Name: "PhotoWidth", SchemaName: "photo_width", }, { Name: "PhotoHeight", SchemaName: "photo_height", }, { Name: "Payload", SchemaName: "payload", }, { Name: "ProviderToken", SchemaName: "provider_token", }, { Name: "ProviderData", SchemaName: "provider_data", }, { Name: "StartParameter", SchemaName: "start_parameter", }, { Name: "PaidMedia", SchemaName: "paid_media", }, { Name: "PaidMediaCaption", SchemaName: "paid_media_caption", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageInvoice) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageInvoice#babc8f71 as nil") } b.PutID(InputMessageInvoiceTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageInvoice) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageInvoice#babc8f71 as nil") } if err := i.Invoice.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageInvoice#babc8f71: field invoice: %w", err) } b.PutString(i.Title) b.PutString(i.Description) b.PutString(i.PhotoURL) b.PutInt32(i.PhotoSize) b.PutInt32(i.PhotoWidth) b.PutInt32(i.PhotoHeight) b.PutBytes(i.Payload) b.PutString(i.ProviderToken) b.PutString(i.ProviderData) b.PutString(i.StartParameter) if err := i.PaidMedia.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageInvoice#babc8f71: field paid_media: %w", err) } if err := i.PaidMediaCaption.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageInvoice#babc8f71: field paid_media_caption: %w", err) } return nil } // Decode implements bin.Decoder. func (i *InputMessageInvoice) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageInvoice#babc8f71 to nil") } if err := b.ConsumeID(InputMessageInvoiceTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageInvoice) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageInvoice#babc8f71 to nil") } { if err := i.Invoice.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field invoice: %w", err) } } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field title: %w", err) } i.Title = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field description: %w", err) } i.Description = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field photo_url: %w", err) } i.PhotoURL = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field photo_size: %w", err) } i.PhotoSize = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field photo_width: %w", err) } i.PhotoWidth = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field photo_height: %w", err) } i.PhotoHeight = value } { value, err := b.Bytes() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field payload: %w", err) } i.Payload = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field provider_token: %w", err) } i.ProviderToken = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field provider_data: %w", err) } i.ProviderData = value } { value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field start_parameter: %w", err) } i.StartParameter = value } { if err := i.PaidMedia.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field paid_media: %w", err) } } { if err := i.PaidMediaCaption.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field paid_media_caption: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageInvoice) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageInvoice#babc8f71 as nil") } b.ObjStart() b.PutID("inputMessageInvoice") b.Comma() b.FieldStart("invoice") if err := i.Invoice.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageInvoice#babc8f71: field invoice: %w", err) } b.Comma() b.FieldStart("title") b.PutString(i.Title) b.Comma() b.FieldStart("description") b.PutString(i.Description) b.Comma() b.FieldStart("photo_url") b.PutString(i.PhotoURL) b.Comma() b.FieldStart("photo_size") b.PutInt32(i.PhotoSize) b.Comma() b.FieldStart("photo_width") b.PutInt32(i.PhotoWidth) b.Comma() b.FieldStart("photo_height") b.PutInt32(i.PhotoHeight) b.Comma() b.FieldStart("payload") b.PutBytes(i.Payload) b.Comma() b.FieldStart("provider_token") b.PutString(i.ProviderToken) b.Comma() b.FieldStart("provider_data") b.PutString(i.ProviderData) b.Comma() b.FieldStart("start_parameter") b.PutString(i.StartParameter) b.Comma() b.FieldStart("paid_media") if err := i.PaidMedia.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageInvoice#babc8f71: field paid_media: %w", err) } b.Comma() b.FieldStart("paid_media_caption") if err := i.PaidMediaCaption.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageInvoice#babc8f71: field paid_media_caption: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageInvoice) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageInvoice#babc8f71 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageInvoice"); err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: %w", err) } case "invoice": if err := i.Invoice.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field invoice: %w", err) } case "title": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field title: %w", err) } i.Title = value case "description": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field description: %w", err) } i.Description = value case "photo_url": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field photo_url: %w", err) } i.PhotoURL = value case "photo_size": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field photo_size: %w", err) } i.PhotoSize = value case "photo_width": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field photo_width: %w", err) } i.PhotoWidth = value case "photo_height": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field photo_height: %w", err) } i.PhotoHeight = value case "payload": value, err := b.Bytes() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field payload: %w", err) } i.Payload = value case "provider_token": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field provider_token: %w", err) } i.ProviderToken = value case "provider_data": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field provider_data: %w", err) } i.ProviderData = value case "start_parameter": value, err := b.String() if err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field start_parameter: %w", err) } i.StartParameter = value case "paid_media": if err := i.PaidMedia.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field paid_media: %w", err) } case "paid_media_caption": if err := i.PaidMediaCaption.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageInvoice#babc8f71: field paid_media_caption: %w", err) } default: return b.Skip() } return nil }) } // GetInvoice returns value of Invoice field. func (i *InputMessageInvoice) GetInvoice() (value Invoice) { if i == nil { return } return i.Invoice } // GetTitle returns value of Title field. func (i *InputMessageInvoice) GetTitle() (value string) { if i == nil { return } return i.Title } // GetDescription returns value of Description field. func (i *InputMessageInvoice) GetDescription() (value string) { if i == nil { return } return i.Description } // GetPhotoURL returns value of PhotoURL field. func (i *InputMessageInvoice) GetPhotoURL() (value string) { if i == nil { return } return i.PhotoURL } // GetPhotoSize returns value of PhotoSize field. func (i *InputMessageInvoice) GetPhotoSize() (value int32) { if i == nil { return } return i.PhotoSize } // GetPhotoWidth returns value of PhotoWidth field. func (i *InputMessageInvoice) GetPhotoWidth() (value int32) { if i == nil { return } return i.PhotoWidth } // GetPhotoHeight returns value of PhotoHeight field. func (i *InputMessageInvoice) GetPhotoHeight() (value int32) { if i == nil { return } return i.PhotoHeight } // GetPayload returns value of Payload field. func (i *InputMessageInvoice) GetPayload() (value []byte) { if i == nil { return } return i.Payload } // GetProviderToken returns value of ProviderToken field. func (i *InputMessageInvoice) GetProviderToken() (value string) { if i == nil { return } return i.ProviderToken } // GetProviderData returns value of ProviderData field. func (i *InputMessageInvoice) GetProviderData() (value string) { if i == nil { return } return i.ProviderData } // GetStartParameter returns value of StartParameter field. func (i *InputMessageInvoice) GetStartParameter() (value string) { if i == nil { return } return i.StartParameter } // GetPaidMedia returns value of PaidMedia field. func (i *InputMessageInvoice) GetPaidMedia() (value InputPaidMedia) { if i == nil { return } return i.PaidMedia } // GetPaidMediaCaption returns value of PaidMediaCaption field. func (i *InputMessageInvoice) GetPaidMediaCaption() (value FormattedText) { if i == nil { return } return i.PaidMediaCaption } // InputMessagePoll represents TL type `inputMessagePoll#9046c716`. type InputMessagePoll struct { // Poll question; 1-255 characters (up to 300 characters for bots). Only custom emoji // entities are allowed to be added and only by Premium users Question FormattedText // List of poll answer options, 2-getOption("poll_answer_count_max") strings 1-100 // characters each. Only custom emoji entities are allowed to be added and only by // Premium users Options []FormattedText // True, if the poll voters are anonymous. Non-anonymous polls can't be sent or forwarded // to channels IsAnonymous bool // Type of the poll Type PollTypeClass // Amount of time the poll will be active after creation, in seconds; for bots only OpenPeriod int32 // Point in time (Unix timestamp) when the poll will automatically be closed; for bots // only CloseDate int32 // True, if the poll needs to be sent already closed; for bots only IsClosed bool } // InputMessagePollTypeID is TL type id of InputMessagePoll. const InputMessagePollTypeID = 0x9046c716 // construct implements constructor of InputMessageContentClass. func (i InputMessagePoll) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessagePoll. var ( _ bin.Encoder = &InputMessagePoll{} _ bin.Decoder = &InputMessagePoll{} _ bin.BareEncoder = &InputMessagePoll{} _ bin.BareDecoder = &InputMessagePoll{} _ InputMessageContentClass = &InputMessagePoll{} ) func (i *InputMessagePoll) Zero() bool { if i == nil { return true } if !(i.Question.Zero()) { return false } if !(i.Options == nil) { return false } if !(i.IsAnonymous == false) { return false } if !(i.Type == nil) { return false } if !(i.OpenPeriod == 0) { return false } if !(i.CloseDate == 0) { return false } if !(i.IsClosed == false) { return false } return true } // String implements fmt.Stringer. func (i *InputMessagePoll) String() string { if i == nil { return "InputMessagePoll(nil)" } type Alias InputMessagePoll return fmt.Sprintf("InputMessagePoll%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessagePoll) TypeID() uint32 { return InputMessagePollTypeID } // TypeName returns name of type in TL schema. func (*InputMessagePoll) TypeName() string { return "inputMessagePoll" } // TypeInfo returns info about TL type. func (i *InputMessagePoll) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessagePoll", ID: InputMessagePollTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "Question", SchemaName: "question", }, { Name: "Options", SchemaName: "options", }, { Name: "IsAnonymous", SchemaName: "is_anonymous", }, { Name: "Type", SchemaName: "type", }, { Name: "OpenPeriod", SchemaName: "open_period", }, { Name: "CloseDate", SchemaName: "close_date", }, { Name: "IsClosed", SchemaName: "is_closed", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessagePoll) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessagePoll#9046c716 as nil") } b.PutID(InputMessagePollTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessagePoll) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessagePoll#9046c716 as nil") } if err := i.Question.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessagePoll#9046c716: field question: %w", err) } b.PutInt(len(i.Options)) for idx, v := range i.Options { if err := v.EncodeBare(b); err != nil { return fmt.Errorf("unable to encode bare inputMessagePoll#9046c716: field options element with index %d: %w", idx, err) } } b.PutBool(i.IsAnonymous) if i.Type == nil { return fmt.Errorf("unable to encode inputMessagePoll#9046c716: field type is nil") } if err := i.Type.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessagePoll#9046c716: field type: %w", err) } b.PutInt32(i.OpenPeriod) b.PutInt32(i.CloseDate) b.PutBool(i.IsClosed) return nil } // Decode implements bin.Decoder. func (i *InputMessagePoll) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessagePoll#9046c716 to nil") } if err := b.ConsumeID(InputMessagePollTypeID); err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessagePoll) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessagePoll#9046c716 to nil") } { if err := i.Question.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field question: %w", err) } } { headerLen, err := b.Int() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field options: %w", err) } if headerLen > 0 { i.Options = make([]FormattedText, 0, headerLen%bin.PreallocateLimit) } for idx := 0; idx < headerLen; idx++ { var value FormattedText if err := value.DecodeBare(b); err != nil { return fmt.Errorf("unable to decode bare inputMessagePoll#9046c716: field options: %w", err) } i.Options = append(i.Options, value) } } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field is_anonymous: %w", err) } i.IsAnonymous = value } { value, err := DecodePollType(b) if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field type: %w", err) } i.Type = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field open_period: %w", err) } i.OpenPeriod = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field close_date: %w", err) } i.CloseDate = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field is_closed: %w", err) } i.IsClosed = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessagePoll) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessagePoll#9046c716 as nil") } b.ObjStart() b.PutID("inputMessagePoll") b.Comma() b.FieldStart("question") if err := i.Question.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePoll#9046c716: field question: %w", err) } b.Comma() b.FieldStart("options") b.ArrStart() for idx, v := range i.Options { if err := v.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePoll#9046c716: field options element with index %d: %w", idx, err) } b.Comma() } b.StripComma() b.ArrEnd() b.Comma() b.FieldStart("is_anonymous") b.PutBool(i.IsAnonymous) b.Comma() b.FieldStart("type") if i.Type == nil { return fmt.Errorf("unable to encode inputMessagePoll#9046c716: field type is nil") } if err := i.Type.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessagePoll#9046c716: field type: %w", err) } b.Comma() b.FieldStart("open_period") b.PutInt32(i.OpenPeriod) b.Comma() b.FieldStart("close_date") b.PutInt32(i.CloseDate) b.Comma() b.FieldStart("is_closed") b.PutBool(i.IsClosed) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessagePoll) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessagePoll#9046c716 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessagePoll"); err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: %w", err) } case "question": if err := i.Question.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field question: %w", err) } case "options": if err := b.Arr(func(b tdjson.Decoder) error { var value FormattedText if err := value.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field options: %w", err) } i.Options = append(i.Options, value) return nil }); err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field options: %w", err) } case "is_anonymous": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field is_anonymous: %w", err) } i.IsAnonymous = value case "type": value, err := DecodeTDLibJSONPollType(b) if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field type: %w", err) } i.Type = value case "open_period": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field open_period: %w", err) } i.OpenPeriod = value case "close_date": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field close_date: %w", err) } i.CloseDate = value case "is_closed": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessagePoll#9046c716: field is_closed: %w", err) } i.IsClosed = value default: return b.Skip() } return nil }) } // GetQuestion returns value of Question field. func (i *InputMessagePoll) GetQuestion() (value FormattedText) { if i == nil { return } return i.Question } // GetOptions returns value of Options field. func (i *InputMessagePoll) GetOptions() (value []FormattedText) { if i == nil { return } return i.Options } // GetIsAnonymous returns value of IsAnonymous field. func (i *InputMessagePoll) GetIsAnonymous() (value bool) { if i == nil { return } return i.IsAnonymous } // GetType returns value of Type field. func (i *InputMessagePoll) GetType() (value PollTypeClass) { if i == nil { return } return i.Type } // GetOpenPeriod returns value of OpenPeriod field. func (i *InputMessagePoll) GetOpenPeriod() (value int32) { if i == nil { return } return i.OpenPeriod } // GetCloseDate returns value of CloseDate field. func (i *InputMessagePoll) GetCloseDate() (value int32) { if i == nil { return } return i.CloseDate } // GetIsClosed returns value of IsClosed field. func (i *InputMessagePoll) GetIsClosed() (value bool) { if i == nil { return } return i.IsClosed } // InputMessageStory represents TL type `inputMessageStory#e9e713eb`. type InputMessageStory struct { // Identifier of the chat that posted the story StoryPosterChatID int64 // Story identifier StoryID int32 } // InputMessageStoryTypeID is TL type id of InputMessageStory. const InputMessageStoryTypeID = 0xe9e713eb // construct implements constructor of InputMessageContentClass. func (i InputMessageStory) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageStory. var ( _ bin.Encoder = &InputMessageStory{} _ bin.Decoder = &InputMessageStory{} _ bin.BareEncoder = &InputMessageStory{} _ bin.BareDecoder = &InputMessageStory{} _ InputMessageContentClass = &InputMessageStory{} ) func (i *InputMessageStory) Zero() bool { if i == nil { return true } if !(i.StoryPosterChatID == 0) { return false } if !(i.StoryID == 0) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageStory) String() string { if i == nil { return "InputMessageStory(nil)" } type Alias InputMessageStory return fmt.Sprintf("InputMessageStory%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageStory) TypeID() uint32 { return InputMessageStoryTypeID } // TypeName returns name of type in TL schema. func (*InputMessageStory) TypeName() string { return "inputMessageStory" } // TypeInfo returns info about TL type. func (i *InputMessageStory) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageStory", ID: InputMessageStoryTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "StoryPosterChatID", SchemaName: "story_poster_chat_id", }, { Name: "StoryID", SchemaName: "story_id", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageStory) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageStory#e9e713eb as nil") } b.PutID(InputMessageStoryTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageStory) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageStory#e9e713eb as nil") } b.PutInt53(i.StoryPosterChatID) b.PutInt32(i.StoryID) return nil } // Decode implements bin.Decoder. func (i *InputMessageStory) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageStory#e9e713eb to nil") } if err := b.ConsumeID(InputMessageStoryTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageStory#e9e713eb: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageStory) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageStory#e9e713eb to nil") } { value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessageStory#e9e713eb: field story_poster_chat_id: %w", err) } i.StoryPosterChatID = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageStory#e9e713eb: field story_id: %w", err) } i.StoryID = value } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageStory) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageStory#e9e713eb as nil") } b.ObjStart() b.PutID("inputMessageStory") b.Comma() b.FieldStart("story_poster_chat_id") b.PutInt53(i.StoryPosterChatID) b.Comma() b.FieldStart("story_id") b.PutInt32(i.StoryID) b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageStory) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageStory#e9e713eb to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageStory"); err != nil { return fmt.Errorf("unable to decode inputMessageStory#e9e713eb: %w", err) } case "story_poster_chat_id": value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessageStory#e9e713eb: field story_poster_chat_id: %w", err) } i.StoryPosterChatID = value case "story_id": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageStory#e9e713eb: field story_id: %w", err) } i.StoryID = value default: return b.Skip() } return nil }) } // GetStoryPosterChatID returns value of StoryPosterChatID field. func (i *InputMessageStory) GetStoryPosterChatID() (value int64) { if i == nil { return } return i.StoryPosterChatID } // GetStoryID returns value of StoryID field. func (i *InputMessageStory) GetStoryID() (value int32) { if i == nil { return } return i.StoryID } // InputMessageForwarded represents TL type `inputMessageForwarded#bfd5d134`. type InputMessageForwarded struct { // Identifier for the chat this forwarded message came from FromChatID int64 // Identifier of the message to forward. A message can be forwarded only if // messageProperties.can_be_forwarded MessageID int64 // Pass true if a game message is being shared from a launched game; applies only to game // messages InGameShare bool // Pass true to replace video start timestamp in the forwarded message ReplaceVideoStartTimestamp bool // The new video start timestamp; ignored if replace_video_start_timestamp == false NewVideoStartTimestamp int32 // Options to be used to copy content of the message without reference to the original // sender; pass null to forward the message as usual CopyOptions MessageCopyOptions } // InputMessageForwardedTypeID is TL type id of InputMessageForwarded. const InputMessageForwardedTypeID = 0xbfd5d134 // construct implements constructor of InputMessageContentClass. func (i InputMessageForwarded) construct() InputMessageContentClass { return &i } // Ensuring interfaces in compile-time for InputMessageForwarded. var ( _ bin.Encoder = &InputMessageForwarded{} _ bin.Decoder = &InputMessageForwarded{} _ bin.BareEncoder = &InputMessageForwarded{} _ bin.BareDecoder = &InputMessageForwarded{} _ InputMessageContentClass = &InputMessageForwarded{} ) func (i *InputMessageForwarded) Zero() bool { if i == nil { return true } if !(i.FromChatID == 0) { return false } if !(i.MessageID == 0) { return false } if !(i.InGameShare == false) { return false } if !(i.ReplaceVideoStartTimestamp == false) { return false } if !(i.NewVideoStartTimestamp == 0) { return false } if !(i.CopyOptions.Zero()) { return false } return true } // String implements fmt.Stringer. func (i *InputMessageForwarded) String() string { if i == nil { return "InputMessageForwarded(nil)" } type Alias InputMessageForwarded return fmt.Sprintf("InputMessageForwarded%+v", Alias(*i)) } // TypeID returns type id in TL schema. // // See https://core.telegram.org/mtproto/TL-tl#remarks. func (*InputMessageForwarded) TypeID() uint32 { return InputMessageForwardedTypeID } // TypeName returns name of type in TL schema. func (*InputMessageForwarded) TypeName() string { return "inputMessageForwarded" } // TypeInfo returns info about TL type. func (i *InputMessageForwarded) TypeInfo() tdp.Type { typ := tdp.Type{ Name: "inputMessageForwarded", ID: InputMessageForwardedTypeID, } if i == nil { typ.Null = true return typ } typ.Fields = []tdp.Field{ { Name: "FromChatID", SchemaName: "from_chat_id", }, { Name: "MessageID", SchemaName: "message_id", }, { Name: "InGameShare", SchemaName: "in_game_share", }, { Name: "ReplaceVideoStartTimestamp", SchemaName: "replace_video_start_timestamp", }, { Name: "NewVideoStartTimestamp", SchemaName: "new_video_start_timestamp", }, { Name: "CopyOptions", SchemaName: "copy_options", }, } return typ } // Encode implements bin.Encoder. func (i *InputMessageForwarded) Encode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageForwarded#bfd5d134 as nil") } b.PutID(InputMessageForwardedTypeID) return i.EncodeBare(b) } // EncodeBare implements bin.BareEncoder. func (i *InputMessageForwarded) EncodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't encode inputMessageForwarded#bfd5d134 as nil") } b.PutInt53(i.FromChatID) b.PutInt53(i.MessageID) b.PutBool(i.InGameShare) b.PutBool(i.ReplaceVideoStartTimestamp) b.PutInt32(i.NewVideoStartTimestamp) if err := i.CopyOptions.Encode(b); err != nil { return fmt.Errorf("unable to encode inputMessageForwarded#bfd5d134: field copy_options: %w", err) } return nil } // Decode implements bin.Decoder. func (i *InputMessageForwarded) Decode(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageForwarded#bfd5d134 to nil") } if err := b.ConsumeID(InputMessageForwardedTypeID); err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: %w", err) } return i.DecodeBare(b) } // DecodeBare implements bin.BareDecoder. func (i *InputMessageForwarded) DecodeBare(b *bin.Buffer) error { if i == nil { return fmt.Errorf("can't decode inputMessageForwarded#bfd5d134 to nil") } { value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field from_chat_id: %w", err) } i.FromChatID = value } { value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field message_id: %w", err) } i.MessageID = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field in_game_share: %w", err) } i.InGameShare = value } { value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field replace_video_start_timestamp: %w", err) } i.ReplaceVideoStartTimestamp = value } { value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field new_video_start_timestamp: %w", err) } i.NewVideoStartTimestamp = value } { if err := i.CopyOptions.Decode(b); err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field copy_options: %w", err) } } return nil } // EncodeTDLibJSON implements tdjson.TDLibEncoder. func (i *InputMessageForwarded) EncodeTDLibJSON(b tdjson.Encoder) error { if i == nil { return fmt.Errorf("can't encode inputMessageForwarded#bfd5d134 as nil") } b.ObjStart() b.PutID("inputMessageForwarded") b.Comma() b.FieldStart("from_chat_id") b.PutInt53(i.FromChatID) b.Comma() b.FieldStart("message_id") b.PutInt53(i.MessageID) b.Comma() b.FieldStart("in_game_share") b.PutBool(i.InGameShare) b.Comma() b.FieldStart("replace_video_start_timestamp") b.PutBool(i.ReplaceVideoStartTimestamp) b.Comma() b.FieldStart("new_video_start_timestamp") b.PutInt32(i.NewVideoStartTimestamp) b.Comma() b.FieldStart("copy_options") if err := i.CopyOptions.EncodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to encode inputMessageForwarded#bfd5d134: field copy_options: %w", err) } b.Comma() b.StripComma() b.ObjEnd() return nil } // DecodeTDLibJSON implements tdjson.TDLibDecoder. func (i *InputMessageForwarded) DecodeTDLibJSON(b tdjson.Decoder) error { if i == nil { return fmt.Errorf("can't decode inputMessageForwarded#bfd5d134 to nil") } return b.Obj(func(b tdjson.Decoder, key []byte) error { switch string(key) { case tdjson.TypeField: if err := b.ConsumeID("inputMessageForwarded"); err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: %w", err) } case "from_chat_id": value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field from_chat_id: %w", err) } i.FromChatID = value case "message_id": value, err := b.Int53() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field message_id: %w", err) } i.MessageID = value case "in_game_share": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field in_game_share: %w", err) } i.InGameShare = value case "replace_video_start_timestamp": value, err := b.Bool() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field replace_video_start_timestamp: %w", err) } i.ReplaceVideoStartTimestamp = value case "new_video_start_timestamp": value, err := b.Int32() if err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field new_video_start_timestamp: %w", err) } i.NewVideoStartTimestamp = value case "copy_options": if err := i.CopyOptions.DecodeTDLibJSON(b); err != nil { return fmt.Errorf("unable to decode inputMessageForwarded#bfd5d134: field copy_options: %w", err) } default: return b.Skip() } return nil }) } // GetFromChatID returns value of FromChatID field. func (i *InputMessageForwarded) GetFromChatID() (value int64) { if i == nil { return } return i.FromChatID } // GetMessageID returns value of MessageID field. func (i *InputMessageForwarded) GetMessageID() (value int64) { if i == nil { return } return i.MessageID } // GetInGameShare returns value of InGameShare field. func (i *InputMessageForwarded) GetInGameShare() (value bool) { if i == nil { return } return i.InGameShare } // GetReplaceVideoStartTimestamp returns value of ReplaceVideoStartTimestamp field. func (i *InputMessageForwarded) GetReplaceVideoStartTimestamp() (value bool) { if i == nil { return } return i.ReplaceVideoStartTimestamp } // GetNewVideoStartTimestamp returns value of NewVideoStartTimestamp field. func (i *InputMessageForwarded) GetNewVideoStartTimestamp() (value int32) { if i == nil { return } return i.NewVideoStartTimestamp } // GetCopyOptions returns value of CopyOptions field. func (i *InputMessageForwarded) GetCopyOptions() (value MessageCopyOptions) { if i == nil { return } return i.CopyOptions } // InputMessageContentClassName is schema name of InputMessageContentClass. const InputMessageContentClassName = "InputMessageContent" // InputMessageContentClass represents InputMessageContent generic type. // // Example: // // g, err := tdapi.DecodeInputMessageContent(buf) // if err != nil { // panic(err) // } // switch v := g.(type) { // case *tdapi.InputMessageText: // inputMessageText#f350d894 // case *tdapi.InputMessageAnimation: // inputMessageAnimation#19fe563 // case *tdapi.InputMessageAudio: // inputMessageAudio#daa400b2 // case *tdapi.InputMessageDocument: // inputMessageDocument#615b72b9 // case *tdapi.InputMessagePaidMedia: // inputMessagePaidMedia#370c4490 // case *tdapi.InputMessagePhoto: // inputMessagePhoto#bc78dbcc // case *tdapi.InputMessageSticker: // inputMessageSticker#3ff1b6f9 // case *tdapi.InputMessageVideo: // inputMessageVideo#74f09b52 // case *tdapi.InputMessageVideoNote: // inputMessageVideoNote#d56816dd // case *tdapi.InputMessageVoiceNote: // inputMessageVoiceNote#5723ffac // case *tdapi.InputMessageLocation: // inputMessageLocation#26aae970 // case *tdapi.InputMessageVenue: // inputMessageVenue#564d99fd // case *tdapi.InputMessageContact: // inputMessageContact#c5710cff // case *tdapi.InputMessageDice: // inputMessageDice#322967a9 // case *tdapi.InputMessageGame: // inputMessageGame#4aae6ae2 // case *tdapi.InputMessageInvoice: // inputMessageInvoice#babc8f71 // case *tdapi.InputMessagePoll: // inputMessagePoll#9046c716 // case *tdapi.InputMessageStory: // inputMessageStory#e9e713eb // case *tdapi.InputMessageForwarded: // inputMessageForwarded#bfd5d134 // default: panic(v) // } type InputMessageContentClass interface { bin.Encoder bin.Decoder bin.BareEncoder bin.BareDecoder construct() InputMessageContentClass // 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 } // DecodeInputMessageContent implements binary de-serialization for InputMessageContentClass. func DecodeInputMessageContent(buf *bin.Buffer) (InputMessageContentClass, error) { id, err := buf.PeekID() if err != nil { return nil, err } switch id { case InputMessageTextTypeID: // Decoding inputMessageText#f350d894. v := InputMessageText{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageAnimationTypeID: // Decoding inputMessageAnimation#19fe563. v := InputMessageAnimation{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageAudioTypeID: // Decoding inputMessageAudio#daa400b2. v := InputMessageAudio{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageDocumentTypeID: // Decoding inputMessageDocument#615b72b9. v := InputMessageDocument{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessagePaidMediaTypeID: // Decoding inputMessagePaidMedia#370c4490. v := InputMessagePaidMedia{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessagePhotoTypeID: // Decoding inputMessagePhoto#bc78dbcc. v := InputMessagePhoto{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageStickerTypeID: // Decoding inputMessageSticker#3ff1b6f9. v := InputMessageSticker{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageVideoTypeID: // Decoding inputMessageVideo#74f09b52. v := InputMessageVideo{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageVideoNoteTypeID: // Decoding inputMessageVideoNote#d56816dd. v := InputMessageVideoNote{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageVoiceNoteTypeID: // Decoding inputMessageVoiceNote#5723ffac. v := InputMessageVoiceNote{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageLocationTypeID: // Decoding inputMessageLocation#26aae970. v := InputMessageLocation{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageVenueTypeID: // Decoding inputMessageVenue#564d99fd. v := InputMessageVenue{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageContactTypeID: // Decoding inputMessageContact#c5710cff. v := InputMessageContact{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageDiceTypeID: // Decoding inputMessageDice#322967a9. v := InputMessageDice{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageGameTypeID: // Decoding inputMessageGame#4aae6ae2. v := InputMessageGame{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageInvoiceTypeID: // Decoding inputMessageInvoice#babc8f71. v := InputMessageInvoice{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessagePollTypeID: // Decoding inputMessagePoll#9046c716. v := InputMessagePoll{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageStoryTypeID: // Decoding inputMessageStory#e9e713eb. v := InputMessageStory{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case InputMessageForwardedTypeID: // Decoding inputMessageForwarded#bfd5d134. v := InputMessageForwarded{} if err := v.Decode(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil default: return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", bin.NewUnexpectedID(id)) } } // DecodeTDLibJSONInputMessageContent implements binary de-serialization for InputMessageContentClass. func DecodeTDLibJSONInputMessageContent(buf tdjson.Decoder) (InputMessageContentClass, error) { id, err := buf.FindTypeID() if err != nil { return nil, err } switch id { case "inputMessageText": // Decoding inputMessageText#f350d894. v := InputMessageText{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageAnimation": // Decoding inputMessageAnimation#19fe563. v := InputMessageAnimation{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageAudio": // Decoding inputMessageAudio#daa400b2. v := InputMessageAudio{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageDocument": // Decoding inputMessageDocument#615b72b9. v := InputMessageDocument{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessagePaidMedia": // Decoding inputMessagePaidMedia#370c4490. v := InputMessagePaidMedia{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessagePhoto": // Decoding inputMessagePhoto#bc78dbcc. v := InputMessagePhoto{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageSticker": // Decoding inputMessageSticker#3ff1b6f9. v := InputMessageSticker{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageVideo": // Decoding inputMessageVideo#74f09b52. v := InputMessageVideo{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageVideoNote": // Decoding inputMessageVideoNote#d56816dd. v := InputMessageVideoNote{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageVoiceNote": // Decoding inputMessageVoiceNote#5723ffac. v := InputMessageVoiceNote{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageLocation": // Decoding inputMessageLocation#26aae970. v := InputMessageLocation{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageVenue": // Decoding inputMessageVenue#564d99fd. v := InputMessageVenue{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageContact": // Decoding inputMessageContact#c5710cff. v := InputMessageContact{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageDice": // Decoding inputMessageDice#322967a9. v := InputMessageDice{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageGame": // Decoding inputMessageGame#4aae6ae2. v := InputMessageGame{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageInvoice": // Decoding inputMessageInvoice#babc8f71. v := InputMessageInvoice{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessagePoll": // Decoding inputMessagePoll#9046c716. v := InputMessagePoll{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageStory": // Decoding inputMessageStory#e9e713eb. v := InputMessageStory{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil case "inputMessageForwarded": // Decoding inputMessageForwarded#bfd5d134. v := InputMessageForwarded{} if err := v.DecodeTDLibJSON(buf); err != nil { return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", err) } return &v, nil default: return nil, fmt.Errorf("unable to decode InputMessageContentClass: %w", tdjson.NewUnexpectedID(id)) } } // InputMessageContent boxes the InputMessageContentClass providing a helper. type InputMessageContentBox struct { InputMessageContent InputMessageContentClass } // Decode implements bin.Decoder for InputMessageContentBox. func (b *InputMessageContentBox) Decode(buf *bin.Buffer) error { if b == nil { return fmt.Errorf("unable to decode InputMessageContentBox to nil") } v, err := DecodeInputMessageContent(buf) if err != nil { return fmt.Errorf("unable to decode boxed value: %w", err) } b.InputMessageContent = v return nil } // Encode implements bin.Encode for InputMessageContentBox. func (b *InputMessageContentBox) Encode(buf *bin.Buffer) error { if b == nil || b.InputMessageContent == nil { return fmt.Errorf("unable to encode InputMessageContentClass as nil") } return b.InputMessageContent.Encode(buf) } // DecodeTDLibJSON implements bin.Decoder for InputMessageContentBox. func (b *InputMessageContentBox) DecodeTDLibJSON(buf tdjson.Decoder) error { if b == nil { return fmt.Errorf("unable to decode InputMessageContentBox to nil") } v, err := DecodeTDLibJSONInputMessageContent(buf) if err != nil { return fmt.Errorf("unable to decode boxed value: %w", err) } b.InputMessageContent = v return nil } // EncodeTDLibJSON implements bin.Encode for InputMessageContentBox. func (b *InputMessageContentBox) EncodeTDLibJSON(buf tdjson.Encoder) error { if b == nil || b.InputMessageContent == nil { return fmt.Errorf("unable to encode InputMessageContentClass as nil") } return b.InputMessageContent.EncodeTDLibJSON(buf) }