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

1543 lines
30 KiB
Go

//go:build !no_gotd_slices
// +build !no_gotd_slices
// Code generated by gotdgen, DO NOT EDIT.
package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// RichTextClassArray is adapter for slice of RichTextClass.
type RichTextClassArray []RichTextClass
// Sort sorts slice of RichTextClass.
func (s RichTextClassArray) Sort(less func(a, b RichTextClass) bool) RichTextClassArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of RichTextClass.
func (s RichTextClassArray) SortStable(less func(a, b RichTextClass) bool) RichTextClassArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of RichTextClass.
func (s RichTextClassArray) Retain(keep func(x RichTextClass) bool) RichTextClassArray {
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 RichTextClassArray) First() (v RichTextClass, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s RichTextClassArray) Last() (v RichTextClass, 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 *RichTextClassArray) PopFirst() (v RichTextClass, 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 RichTextClass
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 *RichTextClassArray) Pop() (v RichTextClass, 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
}
// AsTextPlain returns copy with only TextPlain constructors.
func (s RichTextClassArray) AsTextPlain() (to TextPlainArray) {
for _, elem := range s {
value, ok := elem.(*TextPlain)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextBold returns copy with only TextBold constructors.
func (s RichTextClassArray) AsTextBold() (to TextBoldArray) {
for _, elem := range s {
value, ok := elem.(*TextBold)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextItalic returns copy with only TextItalic constructors.
func (s RichTextClassArray) AsTextItalic() (to TextItalicArray) {
for _, elem := range s {
value, ok := elem.(*TextItalic)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextUnderline returns copy with only TextUnderline constructors.
func (s RichTextClassArray) AsTextUnderline() (to TextUnderlineArray) {
for _, elem := range s {
value, ok := elem.(*TextUnderline)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextStrike returns copy with only TextStrike constructors.
func (s RichTextClassArray) AsTextStrike() (to TextStrikeArray) {
for _, elem := range s {
value, ok := elem.(*TextStrike)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextFixed returns copy with only TextFixed constructors.
func (s RichTextClassArray) AsTextFixed() (to TextFixedArray) {
for _, elem := range s {
value, ok := elem.(*TextFixed)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextURL returns copy with only TextURL constructors.
func (s RichTextClassArray) AsTextURL() (to TextURLArray) {
for _, elem := range s {
value, ok := elem.(*TextURL)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextEmail returns copy with only TextEmail constructors.
func (s RichTextClassArray) AsTextEmail() (to TextEmailArray) {
for _, elem := range s {
value, ok := elem.(*TextEmail)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextConcat returns copy with only TextConcat constructors.
func (s RichTextClassArray) AsTextConcat() (to TextConcatArray) {
for _, elem := range s {
value, ok := elem.(*TextConcat)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextSubscript returns copy with only TextSubscript constructors.
func (s RichTextClassArray) AsTextSubscript() (to TextSubscriptArray) {
for _, elem := range s {
value, ok := elem.(*TextSubscript)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextSuperscript returns copy with only TextSuperscript constructors.
func (s RichTextClassArray) AsTextSuperscript() (to TextSuperscriptArray) {
for _, elem := range s {
value, ok := elem.(*TextSuperscript)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextMarked returns copy with only TextMarked constructors.
func (s RichTextClassArray) AsTextMarked() (to TextMarkedArray) {
for _, elem := range s {
value, ok := elem.(*TextMarked)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextPhone returns copy with only TextPhone constructors.
func (s RichTextClassArray) AsTextPhone() (to TextPhoneArray) {
for _, elem := range s {
value, ok := elem.(*TextPhone)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextImage returns copy with only TextImage constructors.
func (s RichTextClassArray) AsTextImage() (to TextImageArray) {
for _, elem := range s {
value, ok := elem.(*TextImage)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// AsTextAnchor returns copy with only TextAnchor constructors.
func (s RichTextClassArray) AsTextAnchor() (to TextAnchorArray) {
for _, elem := range s {
value, ok := elem.(*TextAnchor)
if !ok {
continue
}
to = append(to, *value)
}
return to
}
// TextPlainArray is adapter for slice of TextPlain.
type TextPlainArray []TextPlain
// Sort sorts slice of TextPlain.
func (s TextPlainArray) Sort(less func(a, b TextPlain) bool) TextPlainArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextPlain.
func (s TextPlainArray) SortStable(less func(a, b TextPlain) bool) TextPlainArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextPlain.
func (s TextPlainArray) Retain(keep func(x TextPlain) bool) TextPlainArray {
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 TextPlainArray) First() (v TextPlain, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextPlainArray) Last() (v TextPlain, 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 *TextPlainArray) PopFirst() (v TextPlain, 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 TextPlain
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 *TextPlainArray) Pop() (v TextPlain, 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
}
// TextBoldArray is adapter for slice of TextBold.
type TextBoldArray []TextBold
// Sort sorts slice of TextBold.
func (s TextBoldArray) Sort(less func(a, b TextBold) bool) TextBoldArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextBold.
func (s TextBoldArray) SortStable(less func(a, b TextBold) bool) TextBoldArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextBold.
func (s TextBoldArray) Retain(keep func(x TextBold) bool) TextBoldArray {
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 TextBoldArray) First() (v TextBold, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextBoldArray) Last() (v TextBold, 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 *TextBoldArray) PopFirst() (v TextBold, 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 TextBold
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 *TextBoldArray) Pop() (v TextBold, 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
}
// TextItalicArray is adapter for slice of TextItalic.
type TextItalicArray []TextItalic
// Sort sorts slice of TextItalic.
func (s TextItalicArray) Sort(less func(a, b TextItalic) bool) TextItalicArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextItalic.
func (s TextItalicArray) SortStable(less func(a, b TextItalic) bool) TextItalicArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextItalic.
func (s TextItalicArray) Retain(keep func(x TextItalic) bool) TextItalicArray {
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 TextItalicArray) First() (v TextItalic, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextItalicArray) Last() (v TextItalic, 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 *TextItalicArray) PopFirst() (v TextItalic, 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 TextItalic
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 *TextItalicArray) Pop() (v TextItalic, 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
}
// TextUnderlineArray is adapter for slice of TextUnderline.
type TextUnderlineArray []TextUnderline
// Sort sorts slice of TextUnderline.
func (s TextUnderlineArray) Sort(less func(a, b TextUnderline) bool) TextUnderlineArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextUnderline.
func (s TextUnderlineArray) SortStable(less func(a, b TextUnderline) bool) TextUnderlineArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextUnderline.
func (s TextUnderlineArray) Retain(keep func(x TextUnderline) bool) TextUnderlineArray {
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 TextUnderlineArray) First() (v TextUnderline, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextUnderlineArray) Last() (v TextUnderline, 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 *TextUnderlineArray) PopFirst() (v TextUnderline, 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 TextUnderline
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 *TextUnderlineArray) Pop() (v TextUnderline, 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
}
// TextStrikeArray is adapter for slice of TextStrike.
type TextStrikeArray []TextStrike
// Sort sorts slice of TextStrike.
func (s TextStrikeArray) Sort(less func(a, b TextStrike) bool) TextStrikeArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextStrike.
func (s TextStrikeArray) SortStable(less func(a, b TextStrike) bool) TextStrikeArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextStrike.
func (s TextStrikeArray) Retain(keep func(x TextStrike) bool) TextStrikeArray {
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 TextStrikeArray) First() (v TextStrike, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextStrikeArray) Last() (v TextStrike, 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 *TextStrikeArray) PopFirst() (v TextStrike, 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 TextStrike
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 *TextStrikeArray) Pop() (v TextStrike, 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
}
// TextFixedArray is adapter for slice of TextFixed.
type TextFixedArray []TextFixed
// Sort sorts slice of TextFixed.
func (s TextFixedArray) Sort(less func(a, b TextFixed) bool) TextFixedArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextFixed.
func (s TextFixedArray) SortStable(less func(a, b TextFixed) bool) TextFixedArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextFixed.
func (s TextFixedArray) Retain(keep func(x TextFixed) bool) TextFixedArray {
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 TextFixedArray) First() (v TextFixed, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextFixedArray) Last() (v TextFixed, 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 *TextFixedArray) PopFirst() (v TextFixed, 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 TextFixed
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 *TextFixedArray) Pop() (v TextFixed, 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
}
// TextURLArray is adapter for slice of TextURL.
type TextURLArray []TextURL
// Sort sorts slice of TextURL.
func (s TextURLArray) Sort(less func(a, b TextURL) bool) TextURLArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextURL.
func (s TextURLArray) SortStable(less func(a, b TextURL) bool) TextURLArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextURL.
func (s TextURLArray) Retain(keep func(x TextURL) bool) TextURLArray {
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 TextURLArray) First() (v TextURL, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextURLArray) Last() (v TextURL, 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 *TextURLArray) PopFirst() (v TextURL, 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 TextURL
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 *TextURLArray) Pop() (v TextURL, 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
}
// TextEmailArray is adapter for slice of TextEmail.
type TextEmailArray []TextEmail
// Sort sorts slice of TextEmail.
func (s TextEmailArray) Sort(less func(a, b TextEmail) bool) TextEmailArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextEmail.
func (s TextEmailArray) SortStable(less func(a, b TextEmail) bool) TextEmailArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextEmail.
func (s TextEmailArray) Retain(keep func(x TextEmail) bool) TextEmailArray {
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 TextEmailArray) First() (v TextEmail, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextEmailArray) Last() (v TextEmail, 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 *TextEmailArray) PopFirst() (v TextEmail, 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 TextEmail
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 *TextEmailArray) Pop() (v TextEmail, 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
}
// TextConcatArray is adapter for slice of TextConcat.
type TextConcatArray []TextConcat
// Sort sorts slice of TextConcat.
func (s TextConcatArray) Sort(less func(a, b TextConcat) bool) TextConcatArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextConcat.
func (s TextConcatArray) SortStable(less func(a, b TextConcat) bool) TextConcatArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextConcat.
func (s TextConcatArray) Retain(keep func(x TextConcat) bool) TextConcatArray {
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 TextConcatArray) First() (v TextConcat, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextConcatArray) Last() (v TextConcat, 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 *TextConcatArray) PopFirst() (v TextConcat, 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 TextConcat
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 *TextConcatArray) Pop() (v TextConcat, 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
}
// TextSubscriptArray is adapter for slice of TextSubscript.
type TextSubscriptArray []TextSubscript
// Sort sorts slice of TextSubscript.
func (s TextSubscriptArray) Sort(less func(a, b TextSubscript) bool) TextSubscriptArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextSubscript.
func (s TextSubscriptArray) SortStable(less func(a, b TextSubscript) bool) TextSubscriptArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextSubscript.
func (s TextSubscriptArray) Retain(keep func(x TextSubscript) bool) TextSubscriptArray {
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 TextSubscriptArray) First() (v TextSubscript, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextSubscriptArray) Last() (v TextSubscript, 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 *TextSubscriptArray) PopFirst() (v TextSubscript, 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 TextSubscript
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 *TextSubscriptArray) Pop() (v TextSubscript, 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
}
// TextSuperscriptArray is adapter for slice of TextSuperscript.
type TextSuperscriptArray []TextSuperscript
// Sort sorts slice of TextSuperscript.
func (s TextSuperscriptArray) Sort(less func(a, b TextSuperscript) bool) TextSuperscriptArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextSuperscript.
func (s TextSuperscriptArray) SortStable(less func(a, b TextSuperscript) bool) TextSuperscriptArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextSuperscript.
func (s TextSuperscriptArray) Retain(keep func(x TextSuperscript) bool) TextSuperscriptArray {
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 TextSuperscriptArray) First() (v TextSuperscript, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextSuperscriptArray) Last() (v TextSuperscript, 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 *TextSuperscriptArray) PopFirst() (v TextSuperscript, 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 TextSuperscript
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 *TextSuperscriptArray) Pop() (v TextSuperscript, 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
}
// TextMarkedArray is adapter for slice of TextMarked.
type TextMarkedArray []TextMarked
// Sort sorts slice of TextMarked.
func (s TextMarkedArray) Sort(less func(a, b TextMarked) bool) TextMarkedArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextMarked.
func (s TextMarkedArray) SortStable(less func(a, b TextMarked) bool) TextMarkedArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextMarked.
func (s TextMarkedArray) Retain(keep func(x TextMarked) bool) TextMarkedArray {
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 TextMarkedArray) First() (v TextMarked, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextMarkedArray) Last() (v TextMarked, 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 *TextMarkedArray) PopFirst() (v TextMarked, 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 TextMarked
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 *TextMarkedArray) Pop() (v TextMarked, 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
}
// TextPhoneArray is adapter for slice of TextPhone.
type TextPhoneArray []TextPhone
// Sort sorts slice of TextPhone.
func (s TextPhoneArray) Sort(less func(a, b TextPhone) bool) TextPhoneArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextPhone.
func (s TextPhoneArray) SortStable(less func(a, b TextPhone) bool) TextPhoneArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextPhone.
func (s TextPhoneArray) Retain(keep func(x TextPhone) bool) TextPhoneArray {
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 TextPhoneArray) First() (v TextPhone, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextPhoneArray) Last() (v TextPhone, 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 *TextPhoneArray) PopFirst() (v TextPhone, 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 TextPhone
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 *TextPhoneArray) Pop() (v TextPhone, 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
}
// TextImageArray is adapter for slice of TextImage.
type TextImageArray []TextImage
// Sort sorts slice of TextImage.
func (s TextImageArray) Sort(less func(a, b TextImage) bool) TextImageArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextImage.
func (s TextImageArray) SortStable(less func(a, b TextImage) bool) TextImageArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextImage.
func (s TextImageArray) Retain(keep func(x TextImage) bool) TextImageArray {
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 TextImageArray) First() (v TextImage, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextImageArray) Last() (v TextImage, 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 *TextImageArray) PopFirst() (v TextImage, 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 TextImage
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 *TextImageArray) Pop() (v TextImage, 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
}
// TextAnchorArray is adapter for slice of TextAnchor.
type TextAnchorArray []TextAnchor
// Sort sorts slice of TextAnchor.
func (s TextAnchorArray) Sort(less func(a, b TextAnchor) bool) TextAnchorArray {
sort.Slice(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// SortStable sorts slice of TextAnchor.
func (s TextAnchorArray) SortStable(less func(a, b TextAnchor) bool) TextAnchorArray {
sort.SliceStable(s, func(i, j int) bool {
return less(s[i], s[j])
})
return s
}
// Retain filters in-place slice of TextAnchor.
func (s TextAnchorArray) Retain(keep func(x TextAnchor) bool) TextAnchorArray {
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 TextAnchorArray) First() (v TextAnchor, ok bool) {
if len(s) < 1 {
return
}
return s[0], true
}
// Last returns last element of slice (if exists).
func (s TextAnchorArray) Last() (v TextAnchor, 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 *TextAnchorArray) PopFirst() (v TextAnchor, 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 TextAnchor
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 *TextAnchorArray) Pop() (v TextAnchor, 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
}