Files
mautrix-telegram/pkg/gotd/tg/tl_message_entity_slices_gen.go
T
2026-04-01 21:08:49 +03:00

2507 lines
57 KiB
Go
Generated

//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{}
)
// MessageEntityClassArray is adapter for slice of MessageEntityClass.
type MessageEntityClassArray []MessageEntityClass
// Sort sorts slice of MessageEntityClass.
func (s MessageEntityClassArray) Sort(less func(a, b MessageEntityClass) bool) MessageEntityClassArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityClass.
func (s MessageEntityClassArray) SortStable(less func(a, b MessageEntityClass) bool) MessageEntityClassArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityClass.
func (s MessageEntityClassArray) Retain(keep func(x MessageEntityClass) bool) MessageEntityClassArray {
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 MessageEntityClassArray) First() (v MessageEntityClass, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityClassArray) Last() (v MessageEntityClass, 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 *MessageEntityClassArray) PopFirst() (v MessageEntityClass, 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 MessageEntityClass
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 *MessageEntityClassArray) Pop() (v MessageEntityClass, 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
}
// AsMessageEntityUnknown returns copy with only MessageEntityUnknown constructors.
func (s MessageEntityClassArray) AsMessageEntityUnknown() (to MessageEntityUnknownArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityUnknown)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityMention returns copy with only MessageEntityMention constructors.
func (s MessageEntityClassArray) AsMessageEntityMention() (to MessageEntityMentionArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityMention)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityHashtag returns copy with only MessageEntityHashtag constructors.
func (s MessageEntityClassArray) AsMessageEntityHashtag() (to MessageEntityHashtagArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityHashtag)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityBotCommand returns copy with only MessageEntityBotCommand constructors.
func (s MessageEntityClassArray) AsMessageEntityBotCommand() (to MessageEntityBotCommandArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityBotCommand)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityURL returns copy with only MessageEntityURL constructors.
func (s MessageEntityClassArray) AsMessageEntityURL() (to MessageEntityURLArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityURL)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityEmail returns copy with only MessageEntityEmail constructors.
func (s MessageEntityClassArray) AsMessageEntityEmail() (to MessageEntityEmailArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityEmail)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityBold returns copy with only MessageEntityBold constructors.
func (s MessageEntityClassArray) AsMessageEntityBold() (to MessageEntityBoldArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityBold)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityItalic returns copy with only MessageEntityItalic constructors.
func (s MessageEntityClassArray) AsMessageEntityItalic() (to MessageEntityItalicArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityItalic)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityCode returns copy with only MessageEntityCode constructors.
func (s MessageEntityClassArray) AsMessageEntityCode() (to MessageEntityCodeArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityCode)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityPre returns copy with only MessageEntityPre constructors.
func (s MessageEntityClassArray) AsMessageEntityPre() (to MessageEntityPreArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityPre)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityTextURL returns copy with only MessageEntityTextURL constructors.
func (s MessageEntityClassArray) AsMessageEntityTextURL() (to MessageEntityTextURLArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityTextURL)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityMentionName returns copy with only MessageEntityMentionName constructors.
func (s MessageEntityClassArray) AsMessageEntityMentionName() (to MessageEntityMentionNameArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityMentionName)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsInputMessageEntityMentionName returns copy with only InputMessageEntityMentionName constructors.
func (s MessageEntityClassArray) AsInputMessageEntityMentionName() (to InputMessageEntityMentionNameArray) {
for _, elem := range s {
value, ok := elem.(*InputMessageEntityMentionName)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityPhone returns copy with only MessageEntityPhone constructors.
func (s MessageEntityClassArray) AsMessageEntityPhone() (to MessageEntityPhoneArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityPhone)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityCashtag returns copy with only MessageEntityCashtag constructors.
func (s MessageEntityClassArray) AsMessageEntityCashtag() (to MessageEntityCashtagArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityCashtag)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityUnderline returns copy with only MessageEntityUnderline constructors.
func (s MessageEntityClassArray) AsMessageEntityUnderline() (to MessageEntityUnderlineArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityUnderline)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityStrike returns copy with only MessageEntityStrike constructors.
func (s MessageEntityClassArray) AsMessageEntityStrike() (to MessageEntityStrikeArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityStrike)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityBankCard returns copy with only MessageEntityBankCard constructors.
func (s MessageEntityClassArray) AsMessageEntityBankCard() (to MessageEntityBankCardArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityBankCard)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntitySpoiler returns copy with only MessageEntitySpoiler constructors.
func (s MessageEntityClassArray) AsMessageEntitySpoiler() (to MessageEntitySpoilerArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntitySpoiler)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityCustomEmoji returns copy with only MessageEntityCustomEmoji constructors.
func (s MessageEntityClassArray) AsMessageEntityCustomEmoji() (to MessageEntityCustomEmojiArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityCustomEmoji)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityBlockquote returns copy with only MessageEntityBlockquote constructors.
func (s MessageEntityClassArray) AsMessageEntityBlockquote() (to MessageEntityBlockquoteArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityBlockquote)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityFormattedDate returns copy with only MessageEntityFormattedDate constructors.
func (s MessageEntityClassArray) AsMessageEntityFormattedDate() (to MessageEntityFormattedDateArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityFormattedDate)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityDiffInsert returns copy with only MessageEntityDiffInsert constructors.
func (s MessageEntityClassArray) AsMessageEntityDiffInsert() (to MessageEntityDiffInsertArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityDiffInsert)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityDiffReplace returns copy with only MessageEntityDiffReplace constructors.
func (s MessageEntityClassArray) AsMessageEntityDiffReplace() (to MessageEntityDiffReplaceArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityDiffReplace)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsMessageEntityDiffDelete returns copy with only MessageEntityDiffDelete constructors.
func (s MessageEntityClassArray) AsMessageEntityDiffDelete() (to MessageEntityDiffDeleteArray) {
for _, elem := range s {
value, ok := elem.(*MessageEntityDiffDelete)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// MessageEntityUnknownArray is adapter for slice of MessageEntityUnknown.
type MessageEntityUnknownArray []MessageEntityUnknown
// Sort sorts slice of MessageEntityUnknown.
func (s MessageEntityUnknownArray) Sort(less func(a, b MessageEntityUnknown) bool) MessageEntityUnknownArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityUnknown.
func (s MessageEntityUnknownArray) SortStable(less func(a, b MessageEntityUnknown) bool) MessageEntityUnknownArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityUnknown.
func (s MessageEntityUnknownArray) Retain(keep func(x MessageEntityUnknown) bool) MessageEntityUnknownArray {
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 MessageEntityUnknownArray) First() (v MessageEntityUnknown, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityUnknownArray) Last() (v MessageEntityUnknown, 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 *MessageEntityUnknownArray) PopFirst() (v MessageEntityUnknown, 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 MessageEntityUnknown
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 *MessageEntityUnknownArray) Pop() (v MessageEntityUnknown, 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
}
// MessageEntityMentionArray is adapter for slice of MessageEntityMention.
type MessageEntityMentionArray []MessageEntityMention
// Sort sorts slice of MessageEntityMention.
func (s MessageEntityMentionArray) Sort(less func(a, b MessageEntityMention) bool) MessageEntityMentionArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityMention.
func (s MessageEntityMentionArray) SortStable(less func(a, b MessageEntityMention) bool) MessageEntityMentionArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityMention.
func (s MessageEntityMentionArray) Retain(keep func(x MessageEntityMention) bool) MessageEntityMentionArray {
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 MessageEntityMentionArray) First() (v MessageEntityMention, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityMentionArray) Last() (v MessageEntityMention, 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 *MessageEntityMentionArray) PopFirst() (v MessageEntityMention, 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 MessageEntityMention
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 *MessageEntityMentionArray) Pop() (v MessageEntityMention, 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
}
// MessageEntityHashtagArray is adapter for slice of MessageEntityHashtag.
type MessageEntityHashtagArray []MessageEntityHashtag
// Sort sorts slice of MessageEntityHashtag.
func (s MessageEntityHashtagArray) Sort(less func(a, b MessageEntityHashtag) bool) MessageEntityHashtagArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityHashtag.
func (s MessageEntityHashtagArray) SortStable(less func(a, b MessageEntityHashtag) bool) MessageEntityHashtagArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityHashtag.
func (s MessageEntityHashtagArray) Retain(keep func(x MessageEntityHashtag) bool) MessageEntityHashtagArray {
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 MessageEntityHashtagArray) First() (v MessageEntityHashtag, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityHashtagArray) Last() (v MessageEntityHashtag, 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 *MessageEntityHashtagArray) PopFirst() (v MessageEntityHashtag, 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 MessageEntityHashtag
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 *MessageEntityHashtagArray) Pop() (v MessageEntityHashtag, 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
}
// MessageEntityBotCommandArray is adapter for slice of MessageEntityBotCommand.
type MessageEntityBotCommandArray []MessageEntityBotCommand
// Sort sorts slice of MessageEntityBotCommand.
func (s MessageEntityBotCommandArray) Sort(less func(a, b MessageEntityBotCommand) bool) MessageEntityBotCommandArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityBotCommand.
func (s MessageEntityBotCommandArray) SortStable(less func(a, b MessageEntityBotCommand) bool) MessageEntityBotCommandArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityBotCommand.
func (s MessageEntityBotCommandArray) Retain(keep func(x MessageEntityBotCommand) bool) MessageEntityBotCommandArray {
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 MessageEntityBotCommandArray) First() (v MessageEntityBotCommand, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityBotCommandArray) Last() (v MessageEntityBotCommand, 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 *MessageEntityBotCommandArray) PopFirst() (v MessageEntityBotCommand, 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 MessageEntityBotCommand
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 *MessageEntityBotCommandArray) Pop() (v MessageEntityBotCommand, 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
}
// MessageEntityURLArray is adapter for slice of MessageEntityURL.
type MessageEntityURLArray []MessageEntityURL
// Sort sorts slice of MessageEntityURL.
func (s MessageEntityURLArray) Sort(less func(a, b MessageEntityURL) bool) MessageEntityURLArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityURL.
func (s MessageEntityURLArray) SortStable(less func(a, b MessageEntityURL) bool) MessageEntityURLArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityURL.
func (s MessageEntityURLArray) Retain(keep func(x MessageEntityURL) bool) MessageEntityURLArray {
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 MessageEntityURLArray) First() (v MessageEntityURL, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityURLArray) Last() (v MessageEntityURL, 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 *MessageEntityURLArray) PopFirst() (v MessageEntityURL, 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 MessageEntityURL
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 *MessageEntityURLArray) Pop() (v MessageEntityURL, 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
}
// MessageEntityEmailArray is adapter for slice of MessageEntityEmail.
type MessageEntityEmailArray []MessageEntityEmail
// Sort sorts slice of MessageEntityEmail.
func (s MessageEntityEmailArray) Sort(less func(a, b MessageEntityEmail) bool) MessageEntityEmailArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityEmail.
func (s MessageEntityEmailArray) SortStable(less func(a, b MessageEntityEmail) bool) MessageEntityEmailArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityEmail.
func (s MessageEntityEmailArray) Retain(keep func(x MessageEntityEmail) bool) MessageEntityEmailArray {
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 MessageEntityEmailArray) First() (v MessageEntityEmail, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityEmailArray) Last() (v MessageEntityEmail, 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 *MessageEntityEmailArray) PopFirst() (v MessageEntityEmail, 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 MessageEntityEmail
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 *MessageEntityEmailArray) Pop() (v MessageEntityEmail, 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
}
// MessageEntityBoldArray is adapter for slice of MessageEntityBold.
type MessageEntityBoldArray []MessageEntityBold
// Sort sorts slice of MessageEntityBold.
func (s MessageEntityBoldArray) Sort(less func(a, b MessageEntityBold) bool) MessageEntityBoldArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityBold.
func (s MessageEntityBoldArray) SortStable(less func(a, b MessageEntityBold) bool) MessageEntityBoldArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityBold.
func (s MessageEntityBoldArray) Retain(keep func(x MessageEntityBold) bool) MessageEntityBoldArray {
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 MessageEntityBoldArray) First() (v MessageEntityBold, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityBoldArray) Last() (v MessageEntityBold, 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 *MessageEntityBoldArray) PopFirst() (v MessageEntityBold, 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 MessageEntityBold
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 *MessageEntityBoldArray) Pop() (v MessageEntityBold, 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
}
// MessageEntityItalicArray is adapter for slice of MessageEntityItalic.
type MessageEntityItalicArray []MessageEntityItalic
// Sort sorts slice of MessageEntityItalic.
func (s MessageEntityItalicArray) Sort(less func(a, b MessageEntityItalic) bool) MessageEntityItalicArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityItalic.
func (s MessageEntityItalicArray) SortStable(less func(a, b MessageEntityItalic) bool) MessageEntityItalicArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityItalic.
func (s MessageEntityItalicArray) Retain(keep func(x MessageEntityItalic) bool) MessageEntityItalicArray {
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 MessageEntityItalicArray) First() (v MessageEntityItalic, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityItalicArray) Last() (v MessageEntityItalic, 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 *MessageEntityItalicArray) PopFirst() (v MessageEntityItalic, 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 MessageEntityItalic
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 *MessageEntityItalicArray) Pop() (v MessageEntityItalic, 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
}
// MessageEntityCodeArray is adapter for slice of MessageEntityCode.
type MessageEntityCodeArray []MessageEntityCode
// Sort sorts slice of MessageEntityCode.
func (s MessageEntityCodeArray) Sort(less func(a, b MessageEntityCode) bool) MessageEntityCodeArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityCode.
func (s MessageEntityCodeArray) SortStable(less func(a, b MessageEntityCode) bool) MessageEntityCodeArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityCode.
func (s MessageEntityCodeArray) Retain(keep func(x MessageEntityCode) bool) MessageEntityCodeArray {
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 MessageEntityCodeArray) First() (v MessageEntityCode, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityCodeArray) Last() (v MessageEntityCode, 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 *MessageEntityCodeArray) PopFirst() (v MessageEntityCode, 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 MessageEntityCode
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 *MessageEntityCodeArray) Pop() (v MessageEntityCode, 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
}
// MessageEntityPreArray is adapter for slice of MessageEntityPre.
type MessageEntityPreArray []MessageEntityPre
// Sort sorts slice of MessageEntityPre.
func (s MessageEntityPreArray) Sort(less func(a, b MessageEntityPre) bool) MessageEntityPreArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityPre.
func (s MessageEntityPreArray) SortStable(less func(a, b MessageEntityPre) bool) MessageEntityPreArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityPre.
func (s MessageEntityPreArray) Retain(keep func(x MessageEntityPre) bool) MessageEntityPreArray {
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 MessageEntityPreArray) First() (v MessageEntityPre, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityPreArray) Last() (v MessageEntityPre, 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 *MessageEntityPreArray) PopFirst() (v MessageEntityPre, 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 MessageEntityPre
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 *MessageEntityPreArray) Pop() (v MessageEntityPre, 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
}
// MessageEntityTextURLArray is adapter for slice of MessageEntityTextURL.
type MessageEntityTextURLArray []MessageEntityTextURL
// Sort sorts slice of MessageEntityTextURL.
func (s MessageEntityTextURLArray) Sort(less func(a, b MessageEntityTextURL) bool) MessageEntityTextURLArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityTextURL.
func (s MessageEntityTextURLArray) SortStable(less func(a, b MessageEntityTextURL) bool) MessageEntityTextURLArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityTextURL.
func (s MessageEntityTextURLArray) Retain(keep func(x MessageEntityTextURL) bool) MessageEntityTextURLArray {
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 MessageEntityTextURLArray) First() (v MessageEntityTextURL, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityTextURLArray) Last() (v MessageEntityTextURL, 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 *MessageEntityTextURLArray) PopFirst() (v MessageEntityTextURL, 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 MessageEntityTextURL
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 *MessageEntityTextURLArray) Pop() (v MessageEntityTextURL, 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
}
// MessageEntityMentionNameArray is adapter for slice of MessageEntityMentionName.
type MessageEntityMentionNameArray []MessageEntityMentionName
// Sort sorts slice of MessageEntityMentionName.
func (s MessageEntityMentionNameArray) Sort(less func(a, b MessageEntityMentionName) bool) MessageEntityMentionNameArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityMentionName.
func (s MessageEntityMentionNameArray) SortStable(less func(a, b MessageEntityMentionName) bool) MessageEntityMentionNameArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityMentionName.
func (s MessageEntityMentionNameArray) Retain(keep func(x MessageEntityMentionName) bool) MessageEntityMentionNameArray {
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 MessageEntityMentionNameArray) First() (v MessageEntityMentionName, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityMentionNameArray) Last() (v MessageEntityMentionName, 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 *MessageEntityMentionNameArray) PopFirst() (v MessageEntityMentionName, 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 MessageEntityMentionName
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 *MessageEntityMentionNameArray) Pop() (v MessageEntityMentionName, 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
}
// InputMessageEntityMentionNameArray is adapter for slice of InputMessageEntityMentionName.
type InputMessageEntityMentionNameArray []InputMessageEntityMentionName
// Sort sorts slice of InputMessageEntityMentionName.
func (s InputMessageEntityMentionNameArray) Sort(less func(a, b InputMessageEntityMentionName) bool) InputMessageEntityMentionNameArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of InputMessageEntityMentionName.
func (s InputMessageEntityMentionNameArray) SortStable(less func(a, b InputMessageEntityMentionName) bool) InputMessageEntityMentionNameArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of InputMessageEntityMentionName.
func (s InputMessageEntityMentionNameArray) Retain(keep func(x InputMessageEntityMentionName) bool) InputMessageEntityMentionNameArray {
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 InputMessageEntityMentionNameArray) First() (v InputMessageEntityMentionName, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s InputMessageEntityMentionNameArray) Last() (v InputMessageEntityMentionName, 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 *InputMessageEntityMentionNameArray) PopFirst() (v InputMessageEntityMentionName, 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 InputMessageEntityMentionName
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 *InputMessageEntityMentionNameArray) Pop() (v InputMessageEntityMentionName, 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
}
// MessageEntityPhoneArray is adapter for slice of MessageEntityPhone.
type MessageEntityPhoneArray []MessageEntityPhone
// Sort sorts slice of MessageEntityPhone.
func (s MessageEntityPhoneArray) Sort(less func(a, b MessageEntityPhone) bool) MessageEntityPhoneArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityPhone.
func (s MessageEntityPhoneArray) SortStable(less func(a, b MessageEntityPhone) bool) MessageEntityPhoneArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityPhone.
func (s MessageEntityPhoneArray) Retain(keep func(x MessageEntityPhone) bool) MessageEntityPhoneArray {
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 MessageEntityPhoneArray) First() (v MessageEntityPhone, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityPhoneArray) Last() (v MessageEntityPhone, 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 *MessageEntityPhoneArray) PopFirst() (v MessageEntityPhone, 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 MessageEntityPhone
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 *MessageEntityPhoneArray) Pop() (v MessageEntityPhone, 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
}
// MessageEntityCashtagArray is adapter for slice of MessageEntityCashtag.
type MessageEntityCashtagArray []MessageEntityCashtag
// Sort sorts slice of MessageEntityCashtag.
func (s MessageEntityCashtagArray) Sort(less func(a, b MessageEntityCashtag) bool) MessageEntityCashtagArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityCashtag.
func (s MessageEntityCashtagArray) SortStable(less func(a, b MessageEntityCashtag) bool) MessageEntityCashtagArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityCashtag.
func (s MessageEntityCashtagArray) Retain(keep func(x MessageEntityCashtag) bool) MessageEntityCashtagArray {
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 MessageEntityCashtagArray) First() (v MessageEntityCashtag, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityCashtagArray) Last() (v MessageEntityCashtag, 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 *MessageEntityCashtagArray) PopFirst() (v MessageEntityCashtag, 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 MessageEntityCashtag
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 *MessageEntityCashtagArray) Pop() (v MessageEntityCashtag, 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
}
// MessageEntityUnderlineArray is adapter for slice of MessageEntityUnderline.
type MessageEntityUnderlineArray []MessageEntityUnderline
// Sort sorts slice of MessageEntityUnderline.
func (s MessageEntityUnderlineArray) Sort(less func(a, b MessageEntityUnderline) bool) MessageEntityUnderlineArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityUnderline.
func (s MessageEntityUnderlineArray) SortStable(less func(a, b MessageEntityUnderline) bool) MessageEntityUnderlineArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityUnderline.
func (s MessageEntityUnderlineArray) Retain(keep func(x MessageEntityUnderline) bool) MessageEntityUnderlineArray {
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 MessageEntityUnderlineArray) First() (v MessageEntityUnderline, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityUnderlineArray) Last() (v MessageEntityUnderline, 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 *MessageEntityUnderlineArray) PopFirst() (v MessageEntityUnderline, 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 MessageEntityUnderline
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 *MessageEntityUnderlineArray) Pop() (v MessageEntityUnderline, 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
}
// MessageEntityStrikeArray is adapter for slice of MessageEntityStrike.
type MessageEntityStrikeArray []MessageEntityStrike
// Sort sorts slice of MessageEntityStrike.
func (s MessageEntityStrikeArray) Sort(less func(a, b MessageEntityStrike) bool) MessageEntityStrikeArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityStrike.
func (s MessageEntityStrikeArray) SortStable(less func(a, b MessageEntityStrike) bool) MessageEntityStrikeArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityStrike.
func (s MessageEntityStrikeArray) Retain(keep func(x MessageEntityStrike) bool) MessageEntityStrikeArray {
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 MessageEntityStrikeArray) First() (v MessageEntityStrike, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityStrikeArray) Last() (v MessageEntityStrike, 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 *MessageEntityStrikeArray) PopFirst() (v MessageEntityStrike, 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 MessageEntityStrike
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 *MessageEntityStrikeArray) Pop() (v MessageEntityStrike, 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
}
// MessageEntityBankCardArray is adapter for slice of MessageEntityBankCard.
type MessageEntityBankCardArray []MessageEntityBankCard
// Sort sorts slice of MessageEntityBankCard.
func (s MessageEntityBankCardArray) Sort(less func(a, b MessageEntityBankCard) bool) MessageEntityBankCardArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityBankCard.
func (s MessageEntityBankCardArray) SortStable(less func(a, b MessageEntityBankCard) bool) MessageEntityBankCardArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityBankCard.
func (s MessageEntityBankCardArray) Retain(keep func(x MessageEntityBankCard) bool) MessageEntityBankCardArray {
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 MessageEntityBankCardArray) First() (v MessageEntityBankCard, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityBankCardArray) Last() (v MessageEntityBankCard, 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 *MessageEntityBankCardArray) PopFirst() (v MessageEntityBankCard, 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 MessageEntityBankCard
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 *MessageEntityBankCardArray) Pop() (v MessageEntityBankCard, 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
}
// MessageEntitySpoilerArray is adapter for slice of MessageEntitySpoiler.
type MessageEntitySpoilerArray []MessageEntitySpoiler
// Sort sorts slice of MessageEntitySpoiler.
func (s MessageEntitySpoilerArray) Sort(less func(a, b MessageEntitySpoiler) bool) MessageEntitySpoilerArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntitySpoiler.
func (s MessageEntitySpoilerArray) SortStable(less func(a, b MessageEntitySpoiler) bool) MessageEntitySpoilerArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntitySpoiler.
func (s MessageEntitySpoilerArray) Retain(keep func(x MessageEntitySpoiler) bool) MessageEntitySpoilerArray {
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 MessageEntitySpoilerArray) First() (v MessageEntitySpoiler, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntitySpoilerArray) Last() (v MessageEntitySpoiler, 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 *MessageEntitySpoilerArray) PopFirst() (v MessageEntitySpoiler, 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 MessageEntitySpoiler
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 *MessageEntitySpoilerArray) Pop() (v MessageEntitySpoiler, 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
}
// MessageEntityCustomEmojiArray is adapter for slice of MessageEntityCustomEmoji.
type MessageEntityCustomEmojiArray []MessageEntityCustomEmoji
// Sort sorts slice of MessageEntityCustomEmoji.
func (s MessageEntityCustomEmojiArray) Sort(less func(a, b MessageEntityCustomEmoji) bool) MessageEntityCustomEmojiArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityCustomEmoji.
func (s MessageEntityCustomEmojiArray) SortStable(less func(a, b MessageEntityCustomEmoji) bool) MessageEntityCustomEmojiArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityCustomEmoji.
func (s MessageEntityCustomEmojiArray) Retain(keep func(x MessageEntityCustomEmoji) bool) MessageEntityCustomEmojiArray {
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 MessageEntityCustomEmojiArray) First() (v MessageEntityCustomEmoji, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityCustomEmojiArray) Last() (v MessageEntityCustomEmoji, 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 *MessageEntityCustomEmojiArray) PopFirst() (v MessageEntityCustomEmoji, 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 MessageEntityCustomEmoji
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 *MessageEntityCustomEmojiArray) Pop() (v MessageEntityCustomEmoji, 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
}
// MessageEntityBlockquoteArray is adapter for slice of MessageEntityBlockquote.
type MessageEntityBlockquoteArray []MessageEntityBlockquote
// Sort sorts slice of MessageEntityBlockquote.
func (s MessageEntityBlockquoteArray) Sort(less func(a, b MessageEntityBlockquote) bool) MessageEntityBlockquoteArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityBlockquote.
func (s MessageEntityBlockquoteArray) SortStable(less func(a, b MessageEntityBlockquote) bool) MessageEntityBlockquoteArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityBlockquote.
func (s MessageEntityBlockquoteArray) Retain(keep func(x MessageEntityBlockquote) bool) MessageEntityBlockquoteArray {
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 MessageEntityBlockquoteArray) First() (v MessageEntityBlockquote, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityBlockquoteArray) Last() (v MessageEntityBlockquote, 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 *MessageEntityBlockquoteArray) PopFirst() (v MessageEntityBlockquote, 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 MessageEntityBlockquote
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 *MessageEntityBlockquoteArray) Pop() (v MessageEntityBlockquote, 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
}
// MessageEntityFormattedDateArray is adapter for slice of MessageEntityFormattedDate.
type MessageEntityFormattedDateArray []MessageEntityFormattedDate
// Sort sorts slice of MessageEntityFormattedDate.
func (s MessageEntityFormattedDateArray) Sort(less func(a, b MessageEntityFormattedDate) bool) MessageEntityFormattedDateArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityFormattedDate.
func (s MessageEntityFormattedDateArray) SortStable(less func(a, b MessageEntityFormattedDate) bool) MessageEntityFormattedDateArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityFormattedDate.
func (s MessageEntityFormattedDateArray) Retain(keep func(x MessageEntityFormattedDate) bool) MessageEntityFormattedDateArray {
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 MessageEntityFormattedDateArray) First() (v MessageEntityFormattedDate, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityFormattedDateArray) Last() (v MessageEntityFormattedDate, 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 *MessageEntityFormattedDateArray) PopFirst() (v MessageEntityFormattedDate, 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 MessageEntityFormattedDate
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 *MessageEntityFormattedDateArray) Pop() (v MessageEntityFormattedDate, 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
}
// SortByDate sorts slice of MessageEntityFormattedDate by Date.
func (s MessageEntityFormattedDateArray) SortByDate() MessageEntityFormattedDateArray {
return s.Sort(func(a, b MessageEntityFormattedDate) bool {
return a.GetDate() < b.GetDate()
})
}
// SortStableByDate sorts slice of MessageEntityFormattedDate by Date.
func (s MessageEntityFormattedDateArray) SortStableByDate() MessageEntityFormattedDateArray {
return s.SortStable(func(a, b MessageEntityFormattedDate) bool {
return a.GetDate() < b.GetDate()
})
}
// MessageEntityDiffInsertArray is adapter for slice of MessageEntityDiffInsert.
type MessageEntityDiffInsertArray []MessageEntityDiffInsert
// Sort sorts slice of MessageEntityDiffInsert.
func (s MessageEntityDiffInsertArray) Sort(less func(a, b MessageEntityDiffInsert) bool) MessageEntityDiffInsertArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityDiffInsert.
func (s MessageEntityDiffInsertArray) SortStable(less func(a, b MessageEntityDiffInsert) bool) MessageEntityDiffInsertArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityDiffInsert.
func (s MessageEntityDiffInsertArray) Retain(keep func(x MessageEntityDiffInsert) bool) MessageEntityDiffInsertArray {
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 MessageEntityDiffInsertArray) First() (v MessageEntityDiffInsert, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityDiffInsertArray) Last() (v MessageEntityDiffInsert, 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 *MessageEntityDiffInsertArray) PopFirst() (v MessageEntityDiffInsert, 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 MessageEntityDiffInsert
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 *MessageEntityDiffInsertArray) Pop() (v MessageEntityDiffInsert, 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
}
// MessageEntityDiffReplaceArray is adapter for slice of MessageEntityDiffReplace.
type MessageEntityDiffReplaceArray []MessageEntityDiffReplace
// Sort sorts slice of MessageEntityDiffReplace.
func (s MessageEntityDiffReplaceArray) Sort(less func(a, b MessageEntityDiffReplace) bool) MessageEntityDiffReplaceArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityDiffReplace.
func (s MessageEntityDiffReplaceArray) SortStable(less func(a, b MessageEntityDiffReplace) bool) MessageEntityDiffReplaceArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityDiffReplace.
func (s MessageEntityDiffReplaceArray) Retain(keep func(x MessageEntityDiffReplace) bool) MessageEntityDiffReplaceArray {
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 MessageEntityDiffReplaceArray) First() (v MessageEntityDiffReplace, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityDiffReplaceArray) Last() (v MessageEntityDiffReplace, 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 *MessageEntityDiffReplaceArray) PopFirst() (v MessageEntityDiffReplace, 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 MessageEntityDiffReplace
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 *MessageEntityDiffReplaceArray) Pop() (v MessageEntityDiffReplace, 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
}
// MessageEntityDiffDeleteArray is adapter for slice of MessageEntityDiffDelete.
type MessageEntityDiffDeleteArray []MessageEntityDiffDelete
// Sort sorts slice of MessageEntityDiffDelete.
func (s MessageEntityDiffDeleteArray) Sort(less func(a, b MessageEntityDiffDelete) bool) MessageEntityDiffDeleteArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of MessageEntityDiffDelete.
func (s MessageEntityDiffDeleteArray) SortStable(less func(a, b MessageEntityDiffDelete) bool) MessageEntityDiffDeleteArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of MessageEntityDiffDelete.
func (s MessageEntityDiffDeleteArray) Retain(keep func(x MessageEntityDiffDelete) bool) MessageEntityDiffDeleteArray {
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 MessageEntityDiffDeleteArray) First() (v MessageEntityDiffDelete, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s MessageEntityDiffDeleteArray) Last() (v MessageEntityDiffDelete, 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 *MessageEntityDiffDeleteArray) PopFirst() (v MessageEntityDiffDelete, 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 MessageEntityDiffDelete
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 *MessageEntityDiffDeleteArray) Pop() (v MessageEntityDiffDelete, 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
}