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

1761 lines
39 KiB
Go

//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// InputMediaClassArray is adapter for slice of InputMediaClass.
type InputMediaClassArray []InputMediaClass
// Sort sorts slice of InputMediaClass.
func (s InputMediaClassArray) Sort(less func(a, b InputMediaClass) bool) InputMediaClassArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaClass.
func (s InputMediaClassArray) SortStable(less func(a, b InputMediaClass) bool) InputMediaClassArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaClass.
func (s InputMediaClassArray) Retain(keep func(x InputMediaClass) bool) InputMediaClassArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaClassArray) First() (v InputMediaClass, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaClassArray) Last() (v InputMediaClass, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaClassArray) PopFirst() (v InputMediaClass, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaClass
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaClassArray) Pop() (v InputMediaClass, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// AsInputMediaUploadedPhoto returns copy with only InputMediaUploadedPhoto constructors.
func (s InputMediaClassArray) AsInputMediaUploadedPhoto() (to InputMediaUploadedPhotoArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaUploadedPhoto)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaPhoto returns copy with only InputMediaPhoto constructors.
func (s InputMediaClassArray) AsInputMediaPhoto() (to InputMediaPhotoArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaPhoto)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaGeoPoint returns copy with only InputMediaGeoPoint constructors.
func (s InputMediaClassArray) AsInputMediaGeoPoint() (to InputMediaGeoPointArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaGeoPoint)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaContact returns copy with only InputMediaContact constructors.
func (s InputMediaClassArray) AsInputMediaContact() (to InputMediaContactArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaContact)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaUploadedDocument returns copy with only InputMediaUploadedDocument constructors.
func (s InputMediaClassArray) AsInputMediaUploadedDocument() (to InputMediaUploadedDocumentArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaUploadedDocument)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaDocument returns copy with only InputMediaDocument constructors.
func (s InputMediaClassArray) AsInputMediaDocument() (to InputMediaDocumentArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaDocument)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaVenue returns copy with only InputMediaVenue constructors.
func (s InputMediaClassArray) AsInputMediaVenue() (to InputMediaVenueArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaVenue)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaPhotoExternal returns copy with only InputMediaPhotoExternal constructors.
func (s InputMediaClassArray) AsInputMediaPhotoExternal() (to InputMediaPhotoExternalArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaPhotoExternal)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaDocumentExternal returns copy with only InputMediaDocumentExternal constructors.
func (s InputMediaClassArray) AsInputMediaDocumentExternal() (to InputMediaDocumentExternalArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaDocumentExternal)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaGame returns copy with only InputMediaGame constructors.
func (s InputMediaClassArray) AsInputMediaGame() (to InputMediaGameArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaGame)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaInvoice returns copy with only InputMediaInvoice constructors.
func (s InputMediaClassArray) AsInputMediaInvoice() (to InputMediaInvoiceArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaInvoice)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaGeoLive returns copy with only InputMediaGeoLive constructors.
func (s InputMediaClassArray) AsInputMediaGeoLive() (to InputMediaGeoLiveArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaGeoLive)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaPoll returns copy with only InputMediaPoll constructors.
func (s InputMediaClassArray) AsInputMediaPoll() (to InputMediaPollArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaPoll)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaDice returns copy with only InputMediaDice constructors.
func (s InputMediaClassArray) AsInputMediaDice() (to InputMediaDiceArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaDice)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaStory returns copy with only InputMediaStory constructors.
func (s InputMediaClassArray) AsInputMediaStory() (to InputMediaStoryArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaStory)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaWebPage returns copy with only InputMediaWebPage constructors.
func (s InputMediaClassArray) AsInputMediaWebPage() (to InputMediaWebPageArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaWebPage)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMediaPaidMedia returns copy with only InputMediaPaidMedia constructors.
func (s InputMediaClassArray) AsInputMediaPaidMedia() (to InputMediaPaidMediaArray) {
for _, elem := range s {
value, ok := elem.(*InputMediaPaidMedia)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// InputMediaUploadedPhotoArray is adapter for slice of InputMediaUploadedPhoto.
type InputMediaUploadedPhotoArray []InputMediaUploadedPhoto
// Sort sorts slice of InputMediaUploadedPhoto.
func (s InputMediaUploadedPhotoArray) Sort(less func(a, b InputMediaUploadedPhoto) bool) InputMediaUploadedPhotoArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaUploadedPhoto.
func (s InputMediaUploadedPhotoArray) SortStable(less func(a, b InputMediaUploadedPhoto) bool) InputMediaUploadedPhotoArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaUploadedPhoto.
func (s InputMediaUploadedPhotoArray) Retain(keep func(x InputMediaUploadedPhoto) bool) InputMediaUploadedPhotoArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaUploadedPhotoArray) First() (v InputMediaUploadedPhoto, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaUploadedPhotoArray) Last() (v InputMediaUploadedPhoto, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaUploadedPhotoArray) PopFirst() (v InputMediaUploadedPhoto, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaUploadedPhoto
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaUploadedPhotoArray) Pop() (v InputMediaUploadedPhoto, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaPhotoArray is adapter for slice of InputMediaPhoto.
type InputMediaPhotoArray []InputMediaPhoto
// Sort sorts slice of InputMediaPhoto.
func (s InputMediaPhotoArray) Sort(less func(a, b InputMediaPhoto) bool) InputMediaPhotoArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaPhoto.
func (s InputMediaPhotoArray) SortStable(less func(a, b InputMediaPhoto) bool) InputMediaPhotoArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaPhoto.
func (s InputMediaPhotoArray) Retain(keep func(x InputMediaPhoto) bool) InputMediaPhotoArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaPhotoArray) First() (v InputMediaPhoto, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaPhotoArray) Last() (v InputMediaPhoto, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaPhotoArray) PopFirst() (v InputMediaPhoto, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaPhoto
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaPhotoArray) Pop() (v InputMediaPhoto, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaGeoPointArray is adapter for slice of InputMediaGeoPoint.
type InputMediaGeoPointArray []InputMediaGeoPoint
// Sort sorts slice of InputMediaGeoPoint.
func (s InputMediaGeoPointArray) Sort(less func(a, b InputMediaGeoPoint) bool) InputMediaGeoPointArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaGeoPoint.
func (s InputMediaGeoPointArray) SortStable(less func(a, b InputMediaGeoPoint) bool) InputMediaGeoPointArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaGeoPoint.
func (s InputMediaGeoPointArray) Retain(keep func(x InputMediaGeoPoint) bool) InputMediaGeoPointArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaGeoPointArray) First() (v InputMediaGeoPoint, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaGeoPointArray) Last() (v InputMediaGeoPoint, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaGeoPointArray) PopFirst() (v InputMediaGeoPoint, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaGeoPoint
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaGeoPointArray) Pop() (v InputMediaGeoPoint, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaContactArray is adapter for slice of InputMediaContact.
type InputMediaContactArray []InputMediaContact
// Sort sorts slice of InputMediaContact.
func (s InputMediaContactArray) Sort(less func(a, b InputMediaContact) bool) InputMediaContactArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaContact.
func (s InputMediaContactArray) SortStable(less func(a, b InputMediaContact) bool) InputMediaContactArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaContact.
func (s InputMediaContactArray) Retain(keep func(x InputMediaContact) bool) InputMediaContactArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaContactArray) First() (v InputMediaContact, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaContactArray) Last() (v InputMediaContact, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaContactArray) PopFirst() (v InputMediaContact, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaContact
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaContactArray) Pop() (v InputMediaContact, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaUploadedDocumentArray is adapter for slice of InputMediaUploadedDocument.
type InputMediaUploadedDocumentArray []InputMediaUploadedDocument
// Sort sorts slice of InputMediaUploadedDocument.
func (s InputMediaUploadedDocumentArray) Sort(less func(a, b InputMediaUploadedDocument) bool) InputMediaUploadedDocumentArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaUploadedDocument.
func (s InputMediaUploadedDocumentArray) SortStable(less func(a, b InputMediaUploadedDocument) bool) InputMediaUploadedDocumentArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaUploadedDocument.
func (s InputMediaUploadedDocumentArray) Retain(keep func(x InputMediaUploadedDocument) bool) InputMediaUploadedDocumentArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaUploadedDocumentArray) First() (v InputMediaUploadedDocument, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaUploadedDocumentArray) Last() (v InputMediaUploadedDocument, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaUploadedDocumentArray) PopFirst() (v InputMediaUploadedDocument, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaUploadedDocument
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaUploadedDocumentArray) Pop() (v InputMediaUploadedDocument, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaDocumentArray is adapter for slice of InputMediaDocument.
type InputMediaDocumentArray []InputMediaDocument
// Sort sorts slice of InputMediaDocument.
func (s InputMediaDocumentArray) Sort(less func(a, b InputMediaDocument) bool) InputMediaDocumentArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaDocument.
func (s InputMediaDocumentArray) SortStable(less func(a, b InputMediaDocument) bool) InputMediaDocumentArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaDocument.
func (s InputMediaDocumentArray) Retain(keep func(x InputMediaDocument) bool) InputMediaDocumentArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaDocumentArray) First() (v InputMediaDocument, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaDocumentArray) Last() (v InputMediaDocument, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaDocumentArray) PopFirst() (v InputMediaDocument, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaDocument
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaDocumentArray) Pop() (v InputMediaDocument, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaVenueArray is adapter for slice of InputMediaVenue.
type InputMediaVenueArray []InputMediaVenue
// Sort sorts slice of InputMediaVenue.
func (s InputMediaVenueArray) Sort(less func(a, b InputMediaVenue) bool) InputMediaVenueArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaVenue.
func (s InputMediaVenueArray) SortStable(less func(a, b InputMediaVenue) bool) InputMediaVenueArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaVenue.
func (s InputMediaVenueArray) Retain(keep func(x InputMediaVenue) bool) InputMediaVenueArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaVenueArray) First() (v InputMediaVenue, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaVenueArray) Last() (v InputMediaVenue, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaVenueArray) PopFirst() (v InputMediaVenue, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaVenue
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaVenueArray) Pop() (v InputMediaVenue, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaPhotoExternalArray is adapter for slice of InputMediaPhotoExternal.
type InputMediaPhotoExternalArray []InputMediaPhotoExternal
// Sort sorts slice of InputMediaPhotoExternal.
func (s InputMediaPhotoExternalArray) Sort(less func(a, b InputMediaPhotoExternal) bool) InputMediaPhotoExternalArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaPhotoExternal.
func (s InputMediaPhotoExternalArray) SortStable(less func(a, b InputMediaPhotoExternal) bool) InputMediaPhotoExternalArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaPhotoExternal.
func (s InputMediaPhotoExternalArray) Retain(keep func(x InputMediaPhotoExternal) bool) InputMediaPhotoExternalArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaPhotoExternalArray) First() (v InputMediaPhotoExternal, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaPhotoExternalArray) Last() (v InputMediaPhotoExternal, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaPhotoExternalArray) PopFirst() (v InputMediaPhotoExternal, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaPhotoExternal
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaPhotoExternalArray) Pop() (v InputMediaPhotoExternal, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaDocumentExternalArray is adapter for slice of InputMediaDocumentExternal.
type InputMediaDocumentExternalArray []InputMediaDocumentExternal
// Sort sorts slice of InputMediaDocumentExternal.
func (s InputMediaDocumentExternalArray) Sort(less func(a, b InputMediaDocumentExternal) bool) InputMediaDocumentExternalArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaDocumentExternal.
func (s InputMediaDocumentExternalArray) SortStable(less func(a, b InputMediaDocumentExternal) bool) InputMediaDocumentExternalArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaDocumentExternal.
func (s InputMediaDocumentExternalArray) Retain(keep func(x InputMediaDocumentExternal) bool) InputMediaDocumentExternalArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaDocumentExternalArray) First() (v InputMediaDocumentExternal, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaDocumentExternalArray) Last() (v InputMediaDocumentExternal, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaDocumentExternalArray) PopFirst() (v InputMediaDocumentExternal, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaDocumentExternal
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaDocumentExternalArray) Pop() (v InputMediaDocumentExternal, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaGameArray is adapter for slice of InputMediaGame.
type InputMediaGameArray []InputMediaGame
// Sort sorts slice of InputMediaGame.
func (s InputMediaGameArray) Sort(less func(a, b InputMediaGame) bool) InputMediaGameArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaGame.
func (s InputMediaGameArray) SortStable(less func(a, b InputMediaGame) bool) InputMediaGameArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaGame.
func (s InputMediaGameArray) Retain(keep func(x InputMediaGame) bool) InputMediaGameArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaGameArray) First() (v InputMediaGame, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaGameArray) Last() (v InputMediaGame, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaGameArray) PopFirst() (v InputMediaGame, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaGame
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaGameArray) Pop() (v InputMediaGame, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaInvoiceArray is adapter for slice of InputMediaInvoice.
type InputMediaInvoiceArray []InputMediaInvoice
// Sort sorts slice of InputMediaInvoice.
func (s InputMediaInvoiceArray) Sort(less func(a, b InputMediaInvoice) bool) InputMediaInvoiceArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaInvoice.
func (s InputMediaInvoiceArray) SortStable(less func(a, b InputMediaInvoice) bool) InputMediaInvoiceArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaInvoice.
func (s InputMediaInvoiceArray) Retain(keep func(x InputMediaInvoice) bool) InputMediaInvoiceArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaInvoiceArray) First() (v InputMediaInvoice, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaInvoiceArray) Last() (v InputMediaInvoice, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaInvoiceArray) PopFirst() (v InputMediaInvoice, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaInvoice
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaInvoiceArray) Pop() (v InputMediaInvoice, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaGeoLiveArray is adapter for slice of InputMediaGeoLive.
type InputMediaGeoLiveArray []InputMediaGeoLive
// Sort sorts slice of InputMediaGeoLive.
func (s InputMediaGeoLiveArray) Sort(less func(a, b InputMediaGeoLive) bool) InputMediaGeoLiveArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaGeoLive.
func (s InputMediaGeoLiveArray) SortStable(less func(a, b InputMediaGeoLive) bool) InputMediaGeoLiveArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaGeoLive.
func (s InputMediaGeoLiveArray) Retain(keep func(x InputMediaGeoLive) bool) InputMediaGeoLiveArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaGeoLiveArray) First() (v InputMediaGeoLive, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaGeoLiveArray) Last() (v InputMediaGeoLive, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaGeoLiveArray) PopFirst() (v InputMediaGeoLive, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaGeoLive
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaGeoLiveArray) Pop() (v InputMediaGeoLive, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaPollArray is adapter for slice of InputMediaPoll.
type InputMediaPollArray []InputMediaPoll
// Sort sorts slice of InputMediaPoll.
func (s InputMediaPollArray) Sort(less func(a, b InputMediaPoll) bool) InputMediaPollArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaPoll.
func (s InputMediaPollArray) SortStable(less func(a, b InputMediaPoll) bool) InputMediaPollArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaPoll.
func (s InputMediaPollArray) Retain(keep func(x InputMediaPoll) bool) InputMediaPollArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaPollArray) First() (v InputMediaPoll, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaPollArray) Last() (v InputMediaPoll, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaPollArray) PopFirst() (v InputMediaPoll, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaPoll
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaPollArray) Pop() (v InputMediaPoll, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaDiceArray is adapter for slice of InputMediaDice.
type InputMediaDiceArray []InputMediaDice
// Sort sorts slice of InputMediaDice.
func (s InputMediaDiceArray) Sort(less func(a, b InputMediaDice) bool) InputMediaDiceArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaDice.
func (s InputMediaDiceArray) SortStable(less func(a, b InputMediaDice) bool) InputMediaDiceArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaDice.
func (s InputMediaDiceArray) Retain(keep func(x InputMediaDice) bool) InputMediaDiceArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaDiceArray) First() (v InputMediaDice, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaDiceArray) Last() (v InputMediaDice, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaDiceArray) PopFirst() (v InputMediaDice, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaDice
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaDiceArray) Pop() (v InputMediaDice, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaStoryArray is adapter for slice of InputMediaStory.
type InputMediaStoryArray []InputMediaStory
// Sort sorts slice of InputMediaStory.
func (s InputMediaStoryArray) Sort(less func(a, b InputMediaStory) bool) InputMediaStoryArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaStory.
func (s InputMediaStoryArray) SortStable(less func(a, b InputMediaStory) bool) InputMediaStoryArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaStory.
func (s InputMediaStoryArray) Retain(keep func(x InputMediaStory) bool) InputMediaStoryArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaStoryArray) First() (v InputMediaStory, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaStoryArray) Last() (v InputMediaStory, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaStoryArray) PopFirst() (v InputMediaStory, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaStory
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaStoryArray) Pop() (v InputMediaStory, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// SortByID sorts slice of InputMediaStory by ID.
func (s InputMediaStoryArray) SortByID() InputMediaStoryArray {
return s.Sort(func(a, b InputMediaStory) bool {
return a.GetID() < b.GetID()
})
}
// SortStableByID sorts slice of InputMediaStory by ID.
func (s InputMediaStoryArray) SortStableByID() InputMediaStoryArray {
return s.SortStable(func(a, b InputMediaStory) bool {
return a.GetID() < b.GetID()
})
}
// FillMap fills constructors to given map.
func (s InputMediaStoryArray) FillMap(to map[int]InputMediaStory) {
for _, value := range s {
to[value.GetID()] = value
}
}
// ToMap collects constructors to map.
func (s InputMediaStoryArray) ToMap() map[int]InputMediaStory {
r := make(map[int]InputMediaStory, len(s))
s.FillMap(r)
return r
}
// InputMediaWebPageArray is adapter for slice of InputMediaWebPage.
type InputMediaWebPageArray []InputMediaWebPage
// Sort sorts slice of InputMediaWebPage.
func (s InputMediaWebPageArray) Sort(less func(a, b InputMediaWebPage) bool) InputMediaWebPageArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaWebPage.
func (s InputMediaWebPageArray) SortStable(less func(a, b InputMediaWebPage) bool) InputMediaWebPageArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaWebPage.
func (s InputMediaWebPageArray) Retain(keep func(x InputMediaWebPage) bool) InputMediaWebPageArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaWebPageArray) First() (v InputMediaWebPage, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaWebPageArray) Last() (v InputMediaWebPage, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaWebPageArray) PopFirst() (v InputMediaWebPage, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaWebPage
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaWebPageArray) Pop() (v InputMediaWebPage, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}
// InputMediaPaidMediaArray is adapter for slice of InputMediaPaidMedia.
type InputMediaPaidMediaArray []InputMediaPaidMedia
// Sort sorts slice of InputMediaPaidMedia.
func (s InputMediaPaidMediaArray) Sort(less func(a, b InputMediaPaidMedia) bool) InputMediaPaidMediaArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMediaPaidMedia.
func (s InputMediaPaidMediaArray) SortStable(less func(a, b InputMediaPaidMedia) bool) InputMediaPaidMediaArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMediaPaidMedia.
func (s InputMediaPaidMediaArray) Retain(keep func(x InputMediaPaidMedia) bool) InputMediaPaidMediaArray {
n := 0
for _, x := range s {
if keep(x) {
s[n] = x
n++
}
}
s = s[:n]
return s
}
// First returns first element of slice (if exists).
func (s InputMediaPaidMediaArray) First() (v InputMediaPaidMedia, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMediaPaidMediaArray) Last() (v InputMediaPaidMedia, ok bool) {
if len(s) < 1 {
return
}
return s[len(s)-1], true
}
// PopFirst returns first element of slice (if exists) and deletes it.
func (s *InputMediaPaidMediaArray) PopFirst() (v InputMediaPaidMedia, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[0]
// Delete by index from SliceTricks.
copy(a[0:], a[1:])
var zero InputMediaPaidMedia
a[len(a)-1] = zero
a = a[:len(a)-1]
*s = a
return v, true
}
// Pop returns last element of slice (if exists) and deletes it.
func (s *InputMediaPaidMediaArray) Pop() (v InputMediaPaidMedia, ok bool) {
if s == nil || len(*s) < 1 {
return
}
a := *s
v = a[len(a)-1]
a = a[:len(a)-1]
*s = a
return v, true
}