Arrow.Type (Arrow v0.1.0)

Copy Markdown

Arrow logical types. Each type is a distinct struct under Arrow.Type.*.

Types parameterized by FlatBuffers tables (Int, FloatingPoint, Date, Timestamp, ...) carry their parameters as fields. Children of nested types (List, Struct) live on the enclosing Arrow.Field, mirroring the Arrow schema layout.

Summary

Functions

Returns the Arrow.Array.* struct module that stores values of type. Covers Int / FloatingPoint / Decimal — the types where the concrete Array module is selected by a numeric parameter on the Type. Other types have a 1:1 mapping and don't need a resolver.

Returns the Arrow.Buffer.primitive_kind/0 atom for the primitive type's values buffer.

Types

t()

@type t() ::
  %Arrow.Type.Null{}
  | %Arrow.Type.Bool{}
  | %Arrow.Type.Int{bit_width: term(), signed: term()}
  | %Arrow.Type.FloatingPoint{precision: term()}
  | %Arrow.Type.Utf8{}
  | %Arrow.Type.Binary{}
  | %Arrow.Type.Date{unit: term()}
  | %Arrow.Type.Timestamp{timezone: term(), unit: term()}
  | %Arrow.Type.List{}
  | %Arrow.Type.Struct{}
  | %Arrow.Type.Time{bit_width: term(), unit: term()}
  | %Arrow.Type.Duration{unit: term()}
  | %Arrow.Type.FixedSizeBinary{byte_width: term()}
  | %Arrow.Type.FixedSizeList{list_size: term()}
  | %Arrow.Type.Decimal{bit_width: term(), precision: term(), scale: term()}
  | %Arrow.Type.Map{keys_sorted: term()}
  | %Arrow.Type.Interval{unit: term()}
  | %Arrow.Type.LargeUtf8{}
  | %Arrow.Type.LargeBinary{}
  | %Arrow.Type.LargeList{}

Functions

primitive_array_mod(arg1)

@spec primitive_array_mod(t()) :: module()

Returns the Arrow.Array.* struct module that stores values of type. Covers Int / FloatingPoint / Decimal — the types where the concrete Array module is selected by a numeric parameter on the Type. Other types have a 1:1 mapping and don't need a resolver.

primitive_kind(arg1)

@spec primitive_kind(t()) :: Arrow.Buffer.primitive_kind()

Returns the Arrow.Buffer.primitive_kind/0 atom for the primitive type's values buffer.