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

package proto

// ColFixedStr128 represents FixedStr128 column.
type ColFixedStr128 [][128]byte

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

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

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

// Type returns ColumnType of FixedStr128.
func (ColFixedStr128) Type() ColumnType {
	return ColumnTypeFixedString.With("128")
}

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

// Append [128]byte to column.
func (c *ColFixedStr128) Append(v [128]byte) {
	*c = append(*c, v)
}

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

// LowCardinality returns LowCardinality for FixedStr128 .
func (c *ColFixedStr128) LowCardinality() *ColLowCardinality[[128]byte] {
	return &ColLowCardinality[[128]byte]{
		index: c,
	}
}

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

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

// NewArrFixedStr128 returns new Array(FixedStr128).
func NewArrFixedStr128() *ColArr[[128]byte] {
	return &ColArr[[128]byte]{
		Data: new(ColFixedStr128),
	}
}
