package gen import ( "github.com/influxdata/influxdb/v2/tsdb" "github.com/influxdata/influxdb/v2/tsdb/engine/tsm1" ) {{range .}} {{ $typename := print .name "Array" }} {{ $tsdbname := print .Name "Array" }} type {{.Name}}Values interface { Copy(*tsdb.{{$tsdbname}}) } type {{$typename}} struct { tsdb.{{$tsdbname}} } func new{{$tsdbname}}Len(sz int) *{{$typename}} { return &{{$typename}}{ {{$tsdbname}}: tsdb.{{$tsdbname}}{ Timestamps: make([]int64, sz), Values: make([]{{.Type}}, sz), }, } } func (a *{{$typename}}) Encode(b []byte) ([]byte, error) { return tsm1.Encode{{$tsdbname}}Block(&a.{{$tsdbname}}, b) } func (a *{{$typename}}) Copy(dst *tsdb.{{$tsdbname}}) { dst.Timestamps = append(dst.Timestamps[:0], a.Timestamps...) dst.Values = append(dst.Values[:0], a.Values...) } {{end}}