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

package proto

// ColDecimal256 represents Decimal256 column.
type ColDecimal256 []Decimal256

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

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

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

// Type returns ColumnType of Decimal256.
func (ColDecimal256) Type() ColumnType {
	return ColumnTypeDecimal256
}

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

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

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

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

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

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

// NewArrDecimal256 returns new Array(Decimal256).
func NewArrDecimal256() *ColArr[Decimal256] {
	return &ColArr[Decimal256]{
		Data: new(ColDecimal256),
	}
}
