// Code generated by ./cmd/ch-gen-col, DO NOT EDIT.

package proto

// ColInt16 represents Int16 column.
type ColInt16 []int16

// Compile-time assertions for ColInt16.
var (
	_ ColInput  = ColInt16{}
	_ ColResult = (*ColInt16)(nil)
	_ Column    = (*ColInt16)(nil)
)

// Rows returns count of rows in column.
func (c ColInt16) Rows() int {
	return len(c)
}

// Reset resets data in row, preserving capacity for efficiency.
func (c *ColInt16) Reset() {
	*c = (*c)[:0]
}

// Type returns ColumnType of Int16.
func (ColInt16) Type() ColumnType {
	return ColumnTypeInt16
}

// Row returns i-th row of column.
func (c ColInt16) Row(i int) int16 {
	return c[i]
}

// Append int16 to column.
func (c *ColInt16) Append(v int16) {
	*c = append(*c, v)
}

// Append int16 slice to column.
func (c *ColInt16) AppendArr(vs []int16) {
	*c = append(*c, vs...)
}

// LowCardinality returns LowCardinality for Int16.
func (c *ColInt16) LowCardinality() *ColLowCardinality[int16] {
	return &ColLowCardinality[int16]{
		index: c,
	}
}

// Array is helper that creates Array of int16.
func (c *ColInt16) Array() *ColArr[int16] {
	return &ColArr[int16]{
		Data: c,
	}
}

// Nullable is helper that creates Nullable(int16).
func (c *ColInt16) Nullable() *ColNullable[int16] {
	return &ColNullable[int16]{
		Values: c,
	}
}

// NewArrInt16 returns new Array(Int16).
func NewArrInt16() *ColArr[int16] {
	return &ColArr[int16]{
		Data: new(ColInt16),
	}
}
