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

27 lines
644 B
Go

package tgtest
import (
"fmt"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
)
// genericVector is a simple helper to encode a vector of TL objects.
type genericVector struct {
Elems []bin.Encoder
}
// Encode implements bin.Encoder.
func (vec *genericVector) Encode(b *bin.Buffer) error {
b.PutVectorHeader(len(vec.Elems))
for idx, v := range vec.Elems {
if v == nil {
return fmt.Errorf("unable to encode Vector<%T>: field Elems element with index %d is nil", v, idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode Vector<%T>: field Elems element with index %d: %w", v, idx, err)
}
}
return nil
}