//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{} ) // EmailVerificationClassArray is adapter for slice of EmailVerificationClass. type EmailVerificationClassArray []EmailVerificationClass // Sort sorts slice of EmailVerificationClass. func (s EmailVerificationClassArray) Sort(less func(a, b EmailVerificationClass) bool) EmailVerificationClassArray { sort.Slice(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // SortStable sorts slice of EmailVerificationClass. func (s EmailVerificationClassArray) SortStable(less func(a, b EmailVerificationClass) bool) EmailVerificationClassArray { sort.SliceStable(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // Retain filters in-place slice of EmailVerificationClass. func (s EmailVerificationClassArray) Retain(keep func(x EmailVerificationClass) bool) EmailVerificationClassArray { 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 EmailVerificationClassArray) First() (v EmailVerificationClass, ok bool) { if len(s) < 1 { return } return s[0], true } // Last returns last element of slice (if exists). func (s EmailVerificationClassArray) Last() (v EmailVerificationClass, 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 *EmailVerificationClassArray) PopFirst() (v EmailVerificationClass, 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 EmailVerificationClass 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 *EmailVerificationClassArray) Pop() (v EmailVerificationClass, 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 } // AsEmailVerificationCode returns copy with only EmailVerificationCode constructors. func (s EmailVerificationClassArray) AsEmailVerificationCode() (to EmailVerificationCodeArray) { for _, elem := range s { value, ok := elem.(*EmailVerificationCode) if !ok { continue } to = append(to, *value) } return to } // AsEmailVerificationGoogle returns copy with only EmailVerificationGoogle constructors. func (s EmailVerificationClassArray) AsEmailVerificationGoogle() (to EmailVerificationGoogleArray) { for _, elem := range s { value, ok := elem.(*EmailVerificationGoogle) if !ok { continue } to = append(to, *value) } return to } // AsEmailVerificationApple returns copy with only EmailVerificationApple constructors. func (s EmailVerificationClassArray) AsEmailVerificationApple() (to EmailVerificationAppleArray) { for _, elem := range s { value, ok := elem.(*EmailVerificationApple) if !ok { continue } to = append(to, *value) } return to } // EmailVerificationCodeArray is adapter for slice of EmailVerificationCode. type EmailVerificationCodeArray []EmailVerificationCode // Sort sorts slice of EmailVerificationCode. func (s EmailVerificationCodeArray) Sort(less func(a, b EmailVerificationCode) bool) EmailVerificationCodeArray { sort.Slice(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // SortStable sorts slice of EmailVerificationCode. func (s EmailVerificationCodeArray) SortStable(less func(a, b EmailVerificationCode) bool) EmailVerificationCodeArray { sort.SliceStable(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // Retain filters in-place slice of EmailVerificationCode. func (s EmailVerificationCodeArray) Retain(keep func(x EmailVerificationCode) bool) EmailVerificationCodeArray { 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 EmailVerificationCodeArray) First() (v EmailVerificationCode, ok bool) { if len(s) < 1 { return } return s[0], true } // Last returns last element of slice (if exists). func (s EmailVerificationCodeArray) Last() (v EmailVerificationCode, 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 *EmailVerificationCodeArray) PopFirst() (v EmailVerificationCode, 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 EmailVerificationCode 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 *EmailVerificationCodeArray) Pop() (v EmailVerificationCode, 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 } // EmailVerificationGoogleArray is adapter for slice of EmailVerificationGoogle. type EmailVerificationGoogleArray []EmailVerificationGoogle // Sort sorts slice of EmailVerificationGoogle. func (s EmailVerificationGoogleArray) Sort(less func(a, b EmailVerificationGoogle) bool) EmailVerificationGoogleArray { sort.Slice(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // SortStable sorts slice of EmailVerificationGoogle. func (s EmailVerificationGoogleArray) SortStable(less func(a, b EmailVerificationGoogle) bool) EmailVerificationGoogleArray { sort.SliceStable(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // Retain filters in-place slice of EmailVerificationGoogle. func (s EmailVerificationGoogleArray) Retain(keep func(x EmailVerificationGoogle) bool) EmailVerificationGoogleArray { 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 EmailVerificationGoogleArray) First() (v EmailVerificationGoogle, ok bool) { if len(s) < 1 { return } return s[0], true } // Last returns last element of slice (if exists). func (s EmailVerificationGoogleArray) Last() (v EmailVerificationGoogle, 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 *EmailVerificationGoogleArray) PopFirst() (v EmailVerificationGoogle, 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 EmailVerificationGoogle 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 *EmailVerificationGoogleArray) Pop() (v EmailVerificationGoogle, 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 } // EmailVerificationAppleArray is adapter for slice of EmailVerificationApple. type EmailVerificationAppleArray []EmailVerificationApple // Sort sorts slice of EmailVerificationApple. func (s EmailVerificationAppleArray) Sort(less func(a, b EmailVerificationApple) bool) EmailVerificationAppleArray { sort.Slice(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // SortStable sorts slice of EmailVerificationApple. func (s EmailVerificationAppleArray) SortStable(less func(a, b EmailVerificationApple) bool) EmailVerificationAppleArray { sort.SliceStable(s, func(i, j int) bool { return less(s[i], s[j]) }) return s } // Retain filters in-place slice of EmailVerificationApple. func (s EmailVerificationAppleArray) Retain(keep func(x EmailVerificationApple) bool) EmailVerificationAppleArray { 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 EmailVerificationAppleArray) First() (v EmailVerificationApple, ok bool) { if len(s) < 1 { return } return s[0], true } // Last returns last element of slice (if exists). func (s EmailVerificationAppleArray) Last() (v EmailVerificationApple, 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 *EmailVerificationAppleArray) PopFirst() (v EmailVerificationApple, 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 EmailVerificationApple 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 *EmailVerificationAppleArray) Pop() (v EmailVerificationApple, 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 }