package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"github.com/gotd/td/bin"
"github.com/gotd/td/tdjson"
"github.com/gotd/td/tdp"
"github.com/gotd/td/tgerr"
)
var (
_ = bin .Buffer {}
_ = context .Background ()
_ = fmt .Stringer (nil )
_ = strings .Builder {}
_ = errors .Is
_ = multierr .AppendInto
_ = sort .Ints
_ = tdp .Format
_ = tgerr .Error {}
_ = tdjson .Encoder {}
)
type MessageEntityClassArray []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
}
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
}
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
}
func (s MessageEntityClassArray ) First () (v MessageEntityClass , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityClassArray ) Last () (v MessageEntityClass , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityClassArray ) PopFirst () (v MessageEntityClass , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityClass
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
func (s MessageEntityClassArray ) AsMessageEntityUnknown () (to MessageEntityUnknownArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityUnknown )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityMention () (to MessageEntityMentionArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityMention )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityHashtag () (to MessageEntityHashtagArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityHashtag )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityBotCommand () (to MessageEntityBotCommandArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityBotCommand )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityURL () (to MessageEntityURLArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityURL )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityEmail () (to MessageEntityEmailArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityEmail )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityBold () (to MessageEntityBoldArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityBold )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityItalic () (to MessageEntityItalicArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityItalic )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityCode () (to MessageEntityCodeArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityCode )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityPre () (to MessageEntityPreArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityPre )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityTextURL () (to MessageEntityTextURLArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityTextURL )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityMentionName () (to MessageEntityMentionNameArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityMentionName )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsInputMessageEntityMentionName () (to InputMessageEntityMentionNameArray ) {
for _ , elem := range s {
value , ok := elem .(*InputMessageEntityMentionName )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityPhone () (to MessageEntityPhoneArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityPhone )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityCashtag () (to MessageEntityCashtagArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityCashtag )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityUnderline () (to MessageEntityUnderlineArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityUnderline )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityStrike () (to MessageEntityStrikeArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityStrike )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityBankCard () (to MessageEntityBankCardArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityBankCard )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntitySpoiler () (to MessageEntitySpoilerArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntitySpoiler )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityCustomEmoji () (to MessageEntityCustomEmojiArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityCustomEmoji )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
func (s MessageEntityClassArray ) AsMessageEntityBlockquote () (to MessageEntityBlockquoteArray ) {
for _ , elem := range s {
value , ok := elem .(*MessageEntityBlockquote )
if !ok {
continue
}
to = append (to , *value )
}
return to
}
type MessageEntityUnknownArray []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
}
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
}
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
}
func (s MessageEntityUnknownArray ) First () (v MessageEntityUnknown , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityUnknownArray ) Last () (v MessageEntityUnknown , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityUnknownArray ) PopFirst () (v MessageEntityUnknown , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityUnknown
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityMentionArray []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
}
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
}
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
}
func (s MessageEntityMentionArray ) First () (v MessageEntityMention , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityMentionArray ) Last () (v MessageEntityMention , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityMentionArray ) PopFirst () (v MessageEntityMention , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityMention
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityHashtagArray []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
}
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
}
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
}
func (s MessageEntityHashtagArray ) First () (v MessageEntityHashtag , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityHashtagArray ) Last () (v MessageEntityHashtag , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityHashtagArray ) PopFirst () (v MessageEntityHashtag , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityHashtag
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityBotCommandArray []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
}
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
}
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
}
func (s MessageEntityBotCommandArray ) First () (v MessageEntityBotCommand , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityBotCommandArray ) Last () (v MessageEntityBotCommand , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityBotCommandArray ) PopFirst () (v MessageEntityBotCommand , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityBotCommand
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityURLArray []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
}
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
}
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
}
func (s MessageEntityURLArray ) First () (v MessageEntityURL , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityURLArray ) Last () (v MessageEntityURL , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityURLArray ) PopFirst () (v MessageEntityURL , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityURL
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityEmailArray []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
}
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
}
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
}
func (s MessageEntityEmailArray ) First () (v MessageEntityEmail , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityEmailArray ) Last () (v MessageEntityEmail , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityEmailArray ) PopFirst () (v MessageEntityEmail , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityEmail
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityBoldArray []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
}
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
}
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
}
func (s MessageEntityBoldArray ) First () (v MessageEntityBold , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityBoldArray ) Last () (v MessageEntityBold , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityBoldArray ) PopFirst () (v MessageEntityBold , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityBold
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityItalicArray []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
}
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
}
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
}
func (s MessageEntityItalicArray ) First () (v MessageEntityItalic , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityItalicArray ) Last () (v MessageEntityItalic , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityItalicArray ) PopFirst () (v MessageEntityItalic , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityItalic
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityCodeArray []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
}
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
}
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
}
func (s MessageEntityCodeArray ) First () (v MessageEntityCode , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityCodeArray ) Last () (v MessageEntityCode , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityCodeArray ) PopFirst () (v MessageEntityCode , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityCode
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityPreArray []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
}
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
}
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
}
func (s MessageEntityPreArray ) First () (v MessageEntityPre , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityPreArray ) Last () (v MessageEntityPre , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityPreArray ) PopFirst () (v MessageEntityPre , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityPre
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityTextURLArray []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
}
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
}
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
}
func (s MessageEntityTextURLArray ) First () (v MessageEntityTextURL , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityTextURLArray ) Last () (v MessageEntityTextURL , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityTextURLArray ) PopFirst () (v MessageEntityTextURL , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityTextURL
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityMentionNameArray []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
}
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
}
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
}
func (s MessageEntityMentionNameArray ) First () (v MessageEntityMentionName , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityMentionNameArray ) Last () (v MessageEntityMentionName , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityMentionNameArray ) PopFirst () (v MessageEntityMentionName , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityMentionName
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type InputMessageEntityMentionNameArray []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
}
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
}
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
}
func (s InputMessageEntityMentionNameArray ) First () (v InputMessageEntityMentionName , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s InputMessageEntityMentionNameArray ) Last () (v InputMessageEntityMentionName , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *InputMessageEntityMentionNameArray ) PopFirst () (v InputMessageEntityMentionName , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero InputMessageEntityMentionName
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityPhoneArray []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
}
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
}
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
}
func (s MessageEntityPhoneArray ) First () (v MessageEntityPhone , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityPhoneArray ) Last () (v MessageEntityPhone , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityPhoneArray ) PopFirst () (v MessageEntityPhone , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityPhone
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityCashtagArray []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
}
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
}
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
}
func (s MessageEntityCashtagArray ) First () (v MessageEntityCashtag , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityCashtagArray ) Last () (v MessageEntityCashtag , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityCashtagArray ) PopFirst () (v MessageEntityCashtag , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityCashtag
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityUnderlineArray []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
}
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
}
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
}
func (s MessageEntityUnderlineArray ) First () (v MessageEntityUnderline , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityUnderlineArray ) Last () (v MessageEntityUnderline , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityUnderlineArray ) PopFirst () (v MessageEntityUnderline , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityUnderline
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityStrikeArray []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
}
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
}
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
}
func (s MessageEntityStrikeArray ) First () (v MessageEntityStrike , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityStrikeArray ) Last () (v MessageEntityStrike , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityStrikeArray ) PopFirst () (v MessageEntityStrike , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityStrike
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityBankCardArray []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
}
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
}
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
}
func (s MessageEntityBankCardArray ) First () (v MessageEntityBankCard , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityBankCardArray ) Last () (v MessageEntityBankCard , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityBankCardArray ) PopFirst () (v MessageEntityBankCard , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityBankCard
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntitySpoilerArray []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
}
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
}
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
}
func (s MessageEntitySpoilerArray ) First () (v MessageEntitySpoiler , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntitySpoilerArray ) Last () (v MessageEntitySpoiler , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntitySpoilerArray ) PopFirst () (v MessageEntitySpoiler , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntitySpoiler
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityCustomEmojiArray []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
}
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
}
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
}
func (s MessageEntityCustomEmojiArray ) First () (v MessageEntityCustomEmoji , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityCustomEmojiArray ) Last () (v MessageEntityCustomEmoji , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityCustomEmojiArray ) PopFirst () (v MessageEntityCustomEmoji , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityCustomEmoji
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
type MessageEntityBlockquoteArray []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
}
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
}
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
}
func (s MessageEntityBlockquoteArray ) First () (v MessageEntityBlockquote , ok bool ) {
if len (s ) < 1 {
return
}
return s [0 ], true
}
func (s MessageEntityBlockquoteArray ) Last () (v MessageEntityBlockquote , ok bool ) {
if len (s ) < 1 {
return
}
return s [len (s )-1 ], true
}
func (s *MessageEntityBlockquoteArray ) PopFirst () (v MessageEntityBlockquote , ok bool ) {
if s == nil || len (*s ) < 1 {
return
}
a := *s
v = a [0 ]
copy (a [0 :], a [1 :])
var zero MessageEntityBlockquote
a [len (a )-1 ] = zero
a = a [:len (a )-1 ]
*s = a
return v , true
}
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
}
The pages are generated with Golds v0.6.7 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds .