//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{} ) // InputReplyToClassArray is adapter for slice of InputReplyToClass. type InputReplyToClassArray []InputReplyToClass // Sort sorts slice of InputReplyToClass. func (s InputReplyToClassArray) Sort(less func(a, b InputReplyToClass) bool) InputReplyToClassArray { sort.Slice(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // SortStable sorts slice of InputReplyToClass. func (s InputReplyToClassArray) SortStable(less func(a, b InputReplyToClass) bool) InputReplyToClassArray { sort.SliceStable(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // Retain filters in-place slice of InputReplyToClass. func (s InputReplyToClassArray) Retain(keep func(x InputReplyToClass) bool) InputReplyToClassArray { 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 InputReplyToClassArray) First() (v InputReplyToClass, ok bool) { if len(s) < 1 { return } return s[0], true } // Last returns last element of slice (if exists). func (s InputReplyToClassArray) Last() (v InputReplyToClass, 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 *InputReplyToClassArray) PopFirst() (v InputReplyToClass, 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 InputReplyToClass 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 *InputReplyToClassArray) Pop() (v InputReplyToClass, 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 } // AsInputReplyToMessage returns copy with only InputReplyToMessage constructors. func (s InputReplyToClassArray) AsInputReplyToMessage() (to InputReplyToMessageArray) { for _, elem := range s { value, ok := elem.(*InputReplyToMessage) if !ok { continue } to = append(to, *value) } return to } // AsInputReplyToStory returns copy with only InputReplyToStory constructors. func (s InputReplyToClassArray) AsInputReplyToStory() (to InputReplyToStoryArray) { for _, elem := range s { value, ok := elem.(*InputReplyToStory) if !ok { continue } to = append(to, *value) } return to } // AsInputReplyToMonoForum returns copy with only InputReplyToMonoForum constructors. func (s InputReplyToClassArray) AsInputReplyToMonoForum() (to InputReplyToMonoForumArray) { for _, elem := range s { value, ok := elem.(*InputReplyToMonoForum) if !ok { continue } to = append(to, *value) } return to } // InputReplyToMessageArray is adapter for slice of InputReplyToMessage. type InputReplyToMessageArray []InputReplyToMessage // Sort sorts slice of InputReplyToMessage. func (s InputReplyToMessageArray) Sort(less func(a, b InputReplyToMessage) bool) InputReplyToMessageArray { sort.Slice(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // SortStable sorts slice of InputReplyToMessage. func (s InputReplyToMessageArray) SortStable(less func(a, b InputReplyToMessage) bool) InputReplyToMessageArray { sort.SliceStable(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // Retain filters in-place slice of InputReplyToMessage. func (s InputReplyToMessageArray) Retain(keep func(x InputReplyToMessage) bool) InputReplyToMessageArray { 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 InputReplyToMessageArray) First() (v InputReplyToMessage, ok bool) { if len(s) < 1 { return } return s[0], true } // Last returns last element of slice (if exists). func (s InputReplyToMessageArray) Last() (v InputReplyToMessage, 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 *InputReplyToMessageArray) PopFirst() (v InputReplyToMessage, 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 InputReplyToMessage 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 *InputReplyToMessageArray) Pop() (v InputReplyToMessage, 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 } // InputReplyToStoryArray is adapter for slice of InputReplyToStory. type InputReplyToStoryArray []InputReplyToStory // Sort sorts slice of InputReplyToStory. func (s InputReplyToStoryArray) Sort(less func(a, b InputReplyToStory) bool) InputReplyToStoryArray { sort.Slice(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // SortStable sorts slice of InputReplyToStory. func (s InputReplyToStoryArray) SortStable(less func(a, b InputReplyToStory) bool) InputReplyToStoryArray { sort.SliceStable(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // Retain filters in-place slice of InputReplyToStory. func (s InputReplyToStoryArray) Retain(keep func(x InputReplyToStory) bool) InputReplyToStoryArray { 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 InputReplyToStoryArray) First() (v InputReplyToStory, ok bool) { if len(s) < 1 { return } return s[0], true } // Last returns last element of slice (if exists). func (s InputReplyToStoryArray) Last() (v InputReplyToStory, 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 *InputReplyToStoryArray) PopFirst() (v InputReplyToStory, 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 InputReplyToStory 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 *InputReplyToStoryArray) Pop() (v InputReplyToStory, 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 } // InputReplyToMonoForumArray is adapter for slice of InputReplyToMonoForum. type InputReplyToMonoForumArray []InputReplyToMonoForum // Sort sorts slice of InputReplyToMonoForum. func (s InputReplyToMonoForumArray) Sort(less func(a, b InputReplyToMonoForum) bool) InputReplyToMonoForumArray { sort.Slice(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // SortStable sorts slice of InputReplyToMonoForum. func (s InputReplyToMonoForumArray) SortStable(less func(a, b InputReplyToMonoForum) bool) InputReplyToMonoForumArray { sort.SliceStable(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // Retain filters in-place slice of InputReplyToMonoForum. func (s InputReplyToMonoForumArray) Retain(keep func(x InputReplyToMonoForum) bool) InputReplyToMonoForumArray { 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 InputReplyToMonoForumArray) First() (v InputReplyToMonoForum, ok bool) { if len(s) < 1 { return } return s[0], true } // Last returns last element of slice (if exists). func (s InputReplyToMonoForumArray) Last() (v InputReplyToMonoForum, 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 *InputReplyToMonoForumArray) PopFirst() (v InputReplyToMonoForum, 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 InputReplyToMonoForum 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 *InputReplyToMonoForumArray) Pop() (v InputReplyToMonoForum, 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 }