Documentation ¶
Overview ¶
Package zng implements a data typing system based on the zeek type system. All zeek types are defined here and implement the Type interface while instances of values implement the Value interface. All values conform to exactly one type. The package provides a fast-path for comparing a value to a byte slice without having to create a zeek value from the byte slice. To exploit this, all values include a Comparison method that returns a Predicate function that takes a byte slice and a Type and returns a boolean indicating whether the the byte slice with the indicated Type matches the value. The package also provides mechanism for coercing values in well-defined and natural ways.
Index ¶
- Constants
- Variables
- func AppendBool(zb zcode.Bytes, b bool) zcode.Bytes
- func AppendDuration(bytes zcode.Bytes, d nano.Duration) zcode.Bytes
- func AppendFloat32(zb zcode.Bytes, f float32) zcode.Bytes
- func AppendFloat64(zb zcode.Bytes, d float64) zcode.Bytes
- func AppendIP(zb zcode.Bytes, a netaddr.IP) zcode.Bytes
- func AppendInt(bytes zcode.Bytes, i int64) zcode.Bytes
- func AppendNet(zb zcode.Bytes, subnet *net.IPNet) zcode.Bytes
- func AppendTime(bytes zcode.Bytes, t nano.Ts) zcode.Bytes
- func AppendTypeValue(b zcode.Bytes, t Type) zcode.Bytes
- func AppendUint(bytes zcode.Bytes, i uint64) zcode.Bytes
- func BuildUnion(b *zcode.Builder, selector int, val zcode.Bytes)
- func CompareTypes(a, b Type) int
- func ContainedType(typ Type) (Type, []Column)
- func DecodeBool(zv zcode.Bytes) bool
- func DecodeBytes(zv zcode.Bytes) []byte
- func DecodeDuration(zv zcode.Bytes) nano.Duration
- func DecodeError(zv zcode.Bytes) error
- func DecodeFloat(zb zcode.Bytes) float64
- func DecodeFloat32(zb zcode.Bytes) float32
- func DecodeFloat64(zv zcode.Bytes) float64
- func DecodeIP(zv zcode.Bytes) netaddr.IP
- func DecodeInt(zv zcode.Bytes) int64
- func DecodeLength(tv zcode.Bytes) (int, zcode.Bytes)
- func DecodeName(tv zcode.Bytes) (string, zcode.Bytes)
- func DecodeNet(zv zcode.Bytes) *net.IPNet
- func DecodeString(zv zcode.Bytes) string
- func DecodeTime(zv zcode.Bytes) nano.Ts
- func DecodeUint(zv zcode.Bytes) uint64
- func EncodeBool(b bool) zcode.Bytes
- func EncodeBytes(b []byte) zcode.Bytes
- func EncodeDuration(d nano.Duration) zcode.Bytes
- func EncodeError(err error) zcode.Bytes
- func EncodeFloat32(d float32) zcode.Bytes
- func EncodeFloat64(d float64) zcode.Bytes
- func EncodeIP(a netaddr.IP) zcode.Bytes
- func EncodeInt(i int64) zcode.Bytes
- func EncodeNet(subnet *net.IPNet) zcode.Bytes
- func EncodeString(s string) zcode.Bytes
- func EncodeTime(t nano.Ts) zcode.Bytes
- func EncodeTypeValue(t Type) zcode.Bytes
- func EncodeUint(i uint64) zcode.Bytes
- func IDChar(c rune) bool
- func IsContainerType(typ Type) bool
- func IsFloat(id int) bool
- func IsIdentifier(s string) bool
- func IsInteger(id int) bool
- func IsNumber(id int) bool
- func IsPrimitiveType(typ Type) bool
- func IsRecordType(typ Type) bool
- func IsSigned(id int) bool
- func IsTrue(zv zcode.Bytes) bool
- func IsTypeName(s string) bool
- func IsUnionType(typ Type) bool
- func NormalizeMap(zv zcode.Bytes) zcode.Bytes
- func NormalizeSet(zv zcode.Bytes) zcode.Bytes
- func PrimitiveName(typ Type) string
- func QuotedName(name string) string
- func QuotedString(s []byte, _ bool) string
- func TypeChar(c rune) bool
- func TypeID(typ Type) int
- func Unhex(b byte) byte
- func Walk(typ Type, body zcode.Bytes, visit Visitor) error
- type Allocator
- type Column
- type ColumnBuilder
- type Context
- func (c *Context) AddColumns(r *Value, newCols []Column, vals []Value) (*Value, error)
- func (c *Context) DecodeTypeValue(tv zcode.Bytes) (Type, zcode.Bytes)
- func (c *Context) Lookup(id int) *TypeRecord
- func (c *Context) LookupByValue(tv zcode.Bytes) (Type, error)
- func (c *Context) LookupType(id int) (Type, error)
- func (c *Context) LookupTypeArray(inner Type) *TypeArray
- func (c *Context) LookupTypeDef(name string) *TypeNamed
- func (c *Context) LookupTypeEnum(symbols []string) *TypeEnum
- func (c *Context) LookupTypeError(inner Type) *TypeError
- func (c *Context) LookupTypeMap(keyType, valType Type) *TypeMap
- func (c *Context) LookupTypeNamed(name string, target Type) (*TypeNamed, error)
- func (c *Context) LookupTypeRecord(columns []Column) (*TypeRecord, error)
- func (c *Context) LookupTypeSet(inner Type) *TypeSet
- func (c *Context) LookupTypeUnion(types []Type) *TypeUnion
- func (c *Context) LookupTypeValue(typ Type) *Value
- func (c *Context) Missing() *Value
- func (c *Context) MustLookupTypeRecord(columns []Column) *TypeRecord
- func (c *Context) NewError(err error) *Value
- func (c *Context) NewErrorf(format string, args ...interface{}) *Value
- func (c *Context) Quiet() *Value
- func (c *Context) Reset()
- func (c *Context) StringTypeError() *TypeError
- func (c *Context) TranslateType(ext Type) (Type, error)
- func (t *Context) TranslateTypeRecord(ext *TypeRecord) (*TypeRecord, error)
- func (c *Context) WrapError(msg string, val *Value) *Value
- type Kind
- type Mapper
- type Type
- type TypeArray
- type TypeEnum
- type TypeError
- type TypeMap
- type TypeNamed
- type TypeOfBool
- type TypeOfBytes
- type TypeOfDuration
- type TypeOfFloat32
- type TypeOfFloat64
- type TypeOfIP
- type TypeOfInt16
- type TypeOfInt32
- type TypeOfInt64
- type TypeOfInt8
- type TypeOfNet
- type TypeOfNull
- type TypeOfString
- type TypeOfTime
- type TypeOfType
- type TypeOfUint16
- type TypeOfUint32
- type TypeOfUint64
- type TypeOfUint8
- type TypeRecord
- func (t *TypeRecord) ColumnOfField(field string) (int, bool)
- func (t *TypeRecord) Decode(zv zcode.Bytes) ([]Value, error)
- func (t *TypeRecord) HasField(field string) bool
- func (t *TypeRecord) ID() int
- func (t *TypeRecord) Kind() Kind
- func (t *TypeRecord) Marshal(zv zcode.Bytes) interface{}
- func (t *TypeRecord) TypeOfField(field string) (Type, bool)
- type TypeSet
- type TypeUnion
- type TypeVectorTable
- type Value
- func NewBool(b bool) *Value
- func NewBytes(b []byte) *Value
- func NewDuration(d nano.Duration) *Value
- func NewFloat32(f float32) *Value
- func NewFloat64(f float64) *Value
- func NewIP(a netaddr.IP) *Value
- func NewNet(s *net.IPNet) *Value
- func NewString(s string) *Value
- func NewTime(ts nano.Ts) *Value
- func NewTypeValue(t Type) *Value
- func NewUint64(v uint64) *Value
- func NewValue(zt Type, zb zcode.Bytes) *Value
- func Not(zb zcode.Bytes) *Value
- func (v *Value) ArrayIndex(idx int64) (Value, error)
- func (v *Value) AsBool() bool
- func (v *Value) AsInt() int64
- func (v *Value) AsString() string
- func (v *Value) AsTime() nano.Ts
- func (v *Value) ColumnOfField(field string) (int, bool)
- func (r *Value) Columns() []Column
- func (v *Value) ContainerLength() (int, error)
- func (v *Value) Copy() *Value
- func (v *Value) CopyFrom(from *Value)
- func (v *Value) Deref(field string) *Value
- func (v *Value) DerefByColumn(col int) *Value
- func (v *Value) DerefPath(path field.Path) *Value
- func (v *Value) Elements() ([]Value, error)
- func (v *Value) Encode(dst zcode.Bytes) zcode.Bytes
- func (v *Value) Equal(p Value) bool
- func (r *Value) HasField(field string) bool
- func (v *Value) IsContainer() bool
- func (v *Value) IsError() bool
- func (v *Value) IsMissing() bool
- func (v *Value) IsNull() bool
- func (v *Value) IsQuiet() bool
- func (v *Value) IsString() bool
- func (v *Value) Iter() zcode.Iter
- func (v *Value) MissingAsNull() *Value
- func (v *Value) String() string
- func (r *Value) Walk(rv Visitor) error
- type Visitor
Constants ¶
const ( MaxColumns = 100_000 MaxEnumSymbols = 100_000 MaxUnionTypes = 100_000 )
const ( IDUint8 = 0 IDUint16 = 1 IDUint32 = 2 IDUint64 = 3 IDUint128 = 4 IDUint256 = 5 IDInt8 = 6 IDInt16 = 7 IDInt32 = 8 IDInt64 = 9 IDInt128 = 10 IDInt256 = 11 IDDuration = 12 IDTime = 13 IDFloat16 = 14 IDFloat32 = 15 IDFloat64 = 16 IDFloat128 = 17 IDFloat256 = 18 IDDecimal32 = 19 IDDecimal64 = 20 IDDecimal128 = 21 IDDecimal256 = 22 IDBool = 23 IDBytes = 24 IDString = 25 IDIP = 26 IDNet = 27 IDType = 28 IDNull = 29 IDTypeComplex = 30 )
const ( TypeValueRecord = 30 TypeValueArray = 31 TypeValueSet = 32 TypeValueMap = 33 TypeValueUnion = 34 TypeValueEnum = 35 TypeValueError = 36 TypeValueNameDef = 37 TypeValueNameRef = 38 TypeValueMax = TypeValueNameRef )
Variables ¶
var ( ErrNotArray = errors.New("cannot index a non-array") ErrIndex = errors.New("array index out of bounds") ErrUnionSelector = errors.New("union selector out of bounds") ErrEnumIndex = errors.New("enum index out of bounds") )
var ( TypeUint8 = &TypeOfUint8{} TypeUint16 = &TypeOfUint16{} TypeUint32 = &TypeOfUint32{} TypeUint64 = &TypeOfUint64{} TypeInt8 = &TypeOfInt8{} TypeInt16 = &TypeOfInt16{} TypeInt32 = &TypeOfInt32{} TypeInt64 = &TypeOfInt64{} TypeDuration = &TypeOfDuration{} TypeTime = &TypeOfTime{} // XXX add TypeFloat16 TypeFloat32 = &TypeOfFloat32{} TypeFloat64 = &TypeOfFloat64{} // XXX add TypeDecimal TypeBool = &TypeOfBool{} TypeBytes = &TypeOfBytes{} TypeString = &TypeOfString{} TypeIP = &TypeOfIP{} TypeNet = &TypeOfNet{} TypeType = &TypeOfType{} TypeNull = &TypeOfNull{} )
var ( ErrMissingField = errors.New("record missing a field") ErrExtraField = errors.New("record with extra field") ErrNotContainer = errors.New("expected container type, got primitive") ErrNotPrimitive = errors.New("expected primitive type, got container") ErrTypeIDInvalid = errors.New("zng type ID out of range") ErrBadValue = errors.New("malformed zng value") ErrBadFormat = errors.New("malformed zng record") ErrTypeMismatch = errors.New("type/value mismatch") ErrTypeSyntax = errors.New("syntax error parsing type string") )
var ( NullUint8 = &Value{Type: TypeUint8} NullUint16 = &Value{Type: TypeUint16} NullUint32 = &Value{Type: TypeUint32} NullUint64 = &Value{Type: TypeUint64} NullInt8 = &Value{Type: TypeInt8} NullInt16 = &Value{Type: TypeInt16} NullInt32 = &Value{Type: TypeInt32} NullInt64 = &Value{Type: TypeInt64} NullDuration = &Value{Type: TypeDuration} NullTime = &Value{Type: TypeTime} NullFloat32 = &Value{Type: TypeFloat32} NullFloat64 = &Value{Type: TypeFloat64} NullBool = &Value{Type: TypeBool} NullBytes = &Value{Type: TypeBytes} NullString = &Value{Type: TypeString} NullIP = &Value{Type: TypeIP} NullNet = &Value{Type: TypeNet} NullType = &Value{Type: TypeType} Null = &Value{Type: TypeNull} )
var ErrDuplicateFields = errors.New("duplicate fields")
var ErrMissing = errors.New("missing")
ErrMissing is a Go error that implies a missing value in the runtime logic whereas Missing is a Zed error value that represents a missing value embedded in the dataflow computation.
var ErrNonAdjacent = errors.New("non adjacent fields")
var False = &Value{TypeBool, []byte{0}}
var Missing = zcode.Bytes("missing")
Missing is value that represents an error condition arising from a referenced entity not present, e.g., a reference to a non-existent record field, a map lookup for a key not present, an array index that is out of range, etc. The Missing error can be propagated through functions and expressions and each operator has clearly defined semantics with respect to the Missing value. For example, "true AND MISSING" is MISSING.
var Quiet = zcode.Bytes("quiet")
var SkipContainer = errors.New("skip this container")
SkipContainer is used as a return value from Visitors to indicate that the container passed in the call should not be visited. It is not returned as an error by any function.
var True = &Value{TypeBool, []byte{1}}
Functions ¶
func BuildUnion ¶
BuildUnion appends to b a union described by selector and val.
func CompareTypes ¶ added in v1.0.0
func ContainedType ¶
ContainedType returns the inner type for set and array types in the first return value and the columns of its of type for record types in the second return value. ContainedType returns nil for both return values if the type is not a set, array, or record.
func DecodeBool ¶
func DecodeBytes ¶
func DecodeError ¶
func DecodeFloat ¶
func DecodeFloat32 ¶
func DecodeFloat64 ¶
func DecodeString ¶
func DecodeUint ¶
func EncodeBool ¶
func EncodeBytes ¶
func EncodeError ¶
func EncodeFloat32 ¶
func EncodeFloat64 ¶
func EncodeString ¶
func EncodeTypeValue ¶
func EncodeUint ¶
func IsContainerType ¶
func IsFloat ¶
True iff the type id is encoded as a float encoding. XXX add IDDecimal here when we implement coercible math with it.
func IsIdentifier ¶
func IsNumber ¶
True iff the type id is encoded as a zng signed or unsigned integer zcode.Bytes, float32 zcode.Bytes, or float64 zcode.Bytes.
func IsPrimitiveType ¶
func IsRecordType ¶
func IsTypeName ¶
IsTypeName returns true iff s is a valid zson typedef name (exclusive of integer names for locally-scoped typedefs).
func IsUnionType ¶
func NormalizeMap ¶
NormalizeMap interprets zv as a map body and returns an equivalent map body that is normalized according to the ZNG specification (i.e., the tag-counted value of each entry's key is lexicographically greater than that of the preceding entry).
func NormalizeSet ¶
NormalizeSet interprets zv as a set body and returns an equivalent set body that is normalized according to the ZNG specification (i.e., each element's tag-counted value is lexicographically greater than that of the preceding element).
func PrimitiveName ¶ added in v1.0.0
func QuotedName ¶
func QuotedString ¶
QuotedString quotes and escapes a ZSON string for serialization in accordance with the ZSON spec. It was copied and modified [with attribution](https://github.com/brimdata/zed/blob/main/acknowledgments.txt) from the encoding/json package in the Go source code.
Types ¶
type ColumnBuilder ¶
type ColumnBuilder struct {
// contains filtered or unexported fields
}
func NewColumnBuilder ¶
func NewColumnBuilder(zctx *Context, fields field.List) (*ColumnBuilder, error)
NewColumnBuilder constructs the zcode.Bytes representation for columns built from an array of input field selectors expressed as field.Path. Append should be called to enter field values in the left to right order of the provided fields and Encode is called to retrieve the nested zcode.Bytes value. Reset should be called before encoding the next record.
func (*ColumnBuilder) Append ¶
func (c *ColumnBuilder) Append(leaf []byte)
func (*ColumnBuilder) Reset ¶
func (c *ColumnBuilder) Reset()
func (*ColumnBuilder) TypedColumns ¶
func (c *ColumnBuilder) TypedColumns(types []Type) []Column
A ColumnBuilder understands the shape of a sequence of FieldExprs (i.e., which columns are inside nested records) but not the types. TypedColumns takes an array of Types for the individual fields and constructs an array of Columns that reflects the fullly typed structure. This is suitable for e.g. allocating a descriptor.
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
A Context implements the "type context" in the Zed model. For a given set of related Values, each Value has a type from a shared Context. The Context manages the transitive closure of Types so that each unique type corresponds to exactly one Type pointer allowing type equivlance to be determined by pointer comparison. (Type pointers from distinct Contexts obviously do not have this property.) A Context also provides an efficient means to translate type values (represented as serialized ZNG) to Types. This provides an efficient means to translate Type pointers from one context to another.
func NewContext ¶
func NewContext() *Context
func (*Context) AddColumns ¶
AddColumns returns a new Record with columns equal to the given record along with new rightmost columns as indicated with the given values. If any of the newly provided columns already exists in the specified value, an error is returned.
func (*Context) DecodeTypeValue ¶ added in v1.0.0
func (*Context) Lookup ¶
func (c *Context) Lookup(id int) *TypeRecord
func (*Context) LookupByValue ¶
LookupByValue returns the Type indicated by a binary-serialized type value. This provides a means to translate a type-context-independent serialized encoding for an arbitrary type into the reciever Context.
func (*Context) LookupTypeArray ¶
func (*Context) LookupTypeDef ¶
func (*Context) LookupTypeEnum ¶
func (*Context) LookupTypeError ¶ added in v1.0.0
func (*Context) LookupTypeMap ¶
func (*Context) LookupTypeNamed ¶ added in v1.0.0
func (*Context) LookupTypeRecord ¶
func (c *Context) LookupTypeRecord(columns []Column) (*TypeRecord, error)
LookupTypeRecord returns a TypeRecord within this context that binds with the indicated columns. Subsequent calls with the same columns will return the same record pointer. If the type doesn't exist, it's created, stored, and returned. The closure of types within the columns must all be from this type context. If you want to use columns from a different type context, use TranslateTypeRecord.
func (*Context) LookupTypeSet ¶
func (*Context) LookupTypeUnion ¶
func (*Context) LookupTypeValue ¶
func (*Context) MustLookupTypeRecord ¶
func (c *Context) MustLookupTypeRecord(columns []Column) *TypeRecord
func (*Context) StringTypeError ¶ added in v1.0.0
func (*Context) TranslateType ¶
TranslateType takes a type from another context and creates and returns that type in this context.
func (*Context) TranslateTypeRecord ¶
func (t *Context) TranslateTypeRecord(ext *TypeRecord) (*TypeRecord, error)
type Mapper ¶
type Mapper struct {
// contains filtered or unexported fields
}
func (*Mapper) Lookup ¶
Lookup tranlates Zed types by type ID from one context to another. The first context is implied by the argument to Lookup() and the output type context is explicitly determined by the argument to NewMapper(). If a binding has not yet been entered, nil is returned and Enter() should be called to create the binding. There is a race here when two threads attempt to update the same ID, but it is safe because the outputContext will return the same the pointer so the second update does not change anything.
type Type ¶
type Type interface { // ID returns a unique (per Context) identifier that // represents this type. For a named type, this identifier // represents the underlying type and not the named type itself. // Callers that care about the underlying type of a Value for // example should prefer to use this instead of using a Go // type assertion on a Type instance. ID() int Kind() Kind }
A Type is an interface presented by a zeek type. Types can be used to infer type compatibility and create new values of the underlying type.
func InnerType ¶
InnerType returns the element type for the underlying set or array type or nil if the underlying type is not a set or array.
func LookupPrimitive ¶
func LookupPrimitiveByID ¶
type TypeArray ¶
type TypeArray struct { Type Type // contains filtered or unexported fields }
func NewTypeArray ¶
type TypeEnum ¶
type TypeEnum struct { Symbols []string // contains filtered or unexported fields }
func NewTypeEnum ¶
type TypeError ¶
type TypeError struct { Type Type // contains filtered or unexported fields }
func NewTypeError ¶ added in v1.0.0
type TypeMap ¶
func NewTypeMap ¶
type TypeOfBool ¶
type TypeOfBool struct{}
func (*TypeOfBool) ID ¶
func (t *TypeOfBool) ID() int
func (*TypeOfBool) Kind ¶ added in v1.0.0
func (t *TypeOfBool) Kind() Kind
type TypeOfBytes ¶
type TypeOfBytes struct{}
func (*TypeOfBytes) ID ¶
func (t *TypeOfBytes) ID() int
func (*TypeOfBytes) Kind ¶ added in v1.0.0
func (t *TypeOfBytes) Kind() Kind
type TypeOfDuration ¶
type TypeOfDuration struct{}
func (*TypeOfDuration) ID ¶
func (t *TypeOfDuration) ID() int
func (*TypeOfDuration) Kind ¶ added in v1.0.0
func (t *TypeOfDuration) Kind() Kind
type TypeOfFloat32 ¶
type TypeOfFloat32 struct{}
func (*TypeOfFloat32) ID ¶
func (t *TypeOfFloat32) ID() int
func (*TypeOfFloat32) Kind ¶ added in v1.0.0
func (t *TypeOfFloat32) Kind() Kind
func (*TypeOfFloat32) Marshal ¶
func (t *TypeOfFloat32) Marshal(zb zcode.Bytes) interface{}
type TypeOfFloat64 ¶
type TypeOfFloat64 struct{}
func (*TypeOfFloat64) ID ¶
func (t *TypeOfFloat64) ID() int
func (*TypeOfFloat64) Kind ¶ added in v1.0.0
func (t *TypeOfFloat64) Kind() Kind
func (*TypeOfFloat64) Marshal ¶
func (t *TypeOfFloat64) Marshal(zv zcode.Bytes) interface{}
type TypeOfInt16 ¶
type TypeOfInt16 struct{}
func (*TypeOfInt16) ID ¶
func (t *TypeOfInt16) ID() int
func (*TypeOfInt16) Kind ¶ added in v1.0.0
func (t *TypeOfInt16) Kind() Kind
type TypeOfInt32 ¶
type TypeOfInt32 struct{}
func (*TypeOfInt32) ID ¶
func (t *TypeOfInt32) ID() int
func (*TypeOfInt32) Kind ¶ added in v1.0.0
func (t *TypeOfInt32) Kind() Kind
type TypeOfInt64 ¶
type TypeOfInt64 struct{}
func (*TypeOfInt64) ID ¶
func (t *TypeOfInt64) ID() int
func (*TypeOfInt64) Kind ¶ added in v1.0.0
func (t *TypeOfInt64) Kind() Kind
type TypeOfInt8 ¶
type TypeOfInt8 struct{}
func (*TypeOfInt8) ID ¶
func (t *TypeOfInt8) ID() int
func (*TypeOfInt8) Kind ¶ added in v1.0.0
func (t *TypeOfInt8) Kind() Kind
type TypeOfNull ¶
type TypeOfNull struct{}
func (*TypeOfNull) ID ¶
func (t *TypeOfNull) ID() int
func (*TypeOfNull) Kind ¶ added in v1.0.0
func (t *TypeOfNull) Kind() Kind
type TypeOfString ¶
type TypeOfString struct{}
func (*TypeOfString) ID ¶
func (t *TypeOfString) ID() int
func (*TypeOfString) Kind ¶ added in v1.0.0
func (t *TypeOfString) Kind() Kind
type TypeOfTime ¶
type TypeOfTime struct{}
func (*TypeOfTime) ID ¶
func (t *TypeOfTime) ID() int
func (*TypeOfTime) Kind ¶ added in v1.0.0
func (t *TypeOfTime) Kind() Kind
type TypeOfType ¶
type TypeOfType struct{}
func (*TypeOfType) ID ¶
func (t *TypeOfType) ID() int
func (*TypeOfType) Kind ¶ added in v1.0.0
func (t *TypeOfType) Kind() Kind
type TypeOfUint16 ¶
type TypeOfUint16 struct{}
func (*TypeOfUint16) ID ¶
func (t *TypeOfUint16) ID() int
func (*TypeOfUint16) Kind ¶ added in v1.0.0
func (t *TypeOfUint16) Kind() Kind
type TypeOfUint32 ¶
type TypeOfUint32 struct{}
func (*TypeOfUint32) ID ¶
func (t *TypeOfUint32) ID() int
func (*TypeOfUint32) Kind ¶ added in v1.0.0
func (t *TypeOfUint32) Kind() Kind
type TypeOfUint64 ¶
type TypeOfUint64 struct{}
func (*TypeOfUint64) ID ¶
func (t *TypeOfUint64) ID() int
func (*TypeOfUint64) Kind ¶ added in v1.0.0
func (t *TypeOfUint64) Kind() Kind
type TypeOfUint8 ¶
type TypeOfUint8 struct{}
func (*TypeOfUint8) ID ¶
func (t *TypeOfUint8) ID() int
func (*TypeOfUint8) Kind ¶ added in v1.0.0
func (t *TypeOfUint8) Kind() Kind
type TypeRecord ¶
type TypeRecord struct { Columns []Column LUT map[string]int // contains filtered or unexported fields }
func NewTypeRecord ¶
func NewTypeRecord(id int, columns []Column) *TypeRecord
func TypeRecordOf ¶
func TypeRecordOf(typ Type) *TypeRecord
func (*TypeRecord) ColumnOfField ¶
func (t *TypeRecord) ColumnOfField(field string) (int, bool)
func (*TypeRecord) Decode ¶
func (t *TypeRecord) Decode(zv zcode.Bytes) ([]Value, error)
XXX we shouldn't need this... tests are using it
func (*TypeRecord) HasField ¶
func (t *TypeRecord) HasField(field string) bool
func (*TypeRecord) ID ¶
func (t *TypeRecord) ID() int
func (*TypeRecord) Kind ¶ added in v1.0.0
func (t *TypeRecord) Kind() Kind
func (*TypeRecord) Marshal ¶
func (t *TypeRecord) Marshal(zv zcode.Bytes) interface{}
func (*TypeRecord) TypeOfField ¶
func (t *TypeRecord) TypeOfField(field string) (Type, bool)
type TypeSet ¶
type TypeSet struct { Type Type // contains filtered or unexported fields }
func NewTypeSet ¶
type TypeUnion ¶
func NewTypeUnion ¶
func (*TypeUnion) Selector ¶ added in v1.0.0
Selector returns the selector for typ in the union. If no type exists -1 is returned.
type TypeVectorTable ¶
type TypeVectorTable struct {
// contains filtered or unexported fields
}
func NewTypeVectorTable ¶
func NewTypeVectorTable() *TypeVectorTable
func (*TypeVectorTable) Length ¶
func (t *TypeVectorTable) Length() int
func (*TypeVectorTable) Lookup ¶
func (t *TypeVectorTable) Lookup(types []Type) int
func (*TypeVectorTable) LookupByValues ¶
func (t *TypeVectorTable) LookupByValues(vals []Value) int
func (*TypeVectorTable) Types ¶
func (t *TypeVectorTable) Types(id int) []Type
type Value ¶
func NewDuration ¶
func NewFloat32 ¶
func NewFloat64 ¶
func NewTypeValue ¶
func (*Value) ArrayIndex ¶
If the passed-in element is an array, attempt to get the idx'th element, and return its type and raw representation. Returns an error if the passed-in element is not an array or if idx is outside the array bounds.
func (*Value) ColumnOfField ¶ added in v0.32.0
func (*Value) ContainerLength ¶
func (*Value) Copy ¶
Copy returns a copy of v that does not share v.Bytes. The copy's Bytes field is nil if and only if v.Bytes is nil.
func (*Value) CopyFrom ¶ added in v1.0.0
CopyFrom copies from into v, reusing v.Bytes if possible and setting v.Bytes to nil if and only if from.Bytes is nil.
func (*Value) DerefByColumn ¶ added in v1.0.0
func (*Value) Elements ¶
Elements returns an array of Values for the given container type. Returns an error if the element is not an array or set.
func (*Value) Encode ¶
Encode appends the ZNG representation of this value to the passed in argument and returns the resulting zcode.Bytes (which may or may not be the same underlying buffer, as with append(), depending on its capacity)
func (*Value) IsContainer ¶
func (*Value) IsNull ¶ added in v1.0.0
IsNull returns true if and only if v is a null value of any type.
func (*Value) MissingAsNull ¶ added in v1.0.0
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
ast
Package ast declares the types used to represent syntax trees for Zed queries.
|
Package ast declares the types used to represent syntax trees for Zed queries. |
Package index provides an API for creating, merging, indexing, and querying Zed indexes.
|
Package index provides an API for creating, merging, indexing, and querying Zed indexes. |
Package mdtest finds example shell commands in Markdown files and runs them, checking for expected output and exit status.
|
Package mdtest finds example shell commands in Markdown files and runs them, checking for expected output and exit status. |
pkg
|
|
bufwriter
Package bufwriter provides a wrapper for a io.WriteCloser that uses buffered output via a bufio.Writer and calls Flush on close.
|
Package bufwriter provides a wrapper for a io.WriteCloser that uses buffered output via a bufio.Writer and calls Flush on close. |
byteconv
Package byteconv implements conversions from byte slice representations of various data types.
|
Package byteconv implements conversions from byte slice representations of various data types. |
charm
Package charm is minimilast CLI framework inspired by cobra and urfave/cli.
|
Package charm is minimilast CLI framework inspired by cobra and urfave/cli. |
colw
Package colw lays out columns for display of a list when you don't know ahead of time how many columns should exist.
|
Package colw lays out columns for display of a list when you don't know ahead of time how many columns should exist. |
glob
Package glob implements glob-style pattern matching
|
Package glob implements glob-style pattern matching |
repl
Package repl is a simple read-eval-print loop.
|
Package repl is a simple read-eval-print loop. |
rlimit
Package rlimit provides a single function, RaiseOpenFilesLimit.
|
Package rlimit provides a single function, RaiseOpenFilesLimit. |
storage/cache
Package cache contains facilities for caching immutable files, typically for a cloud object store.
|
Package cache contains facilities for caching immutable files, typically for a cloud object store. |
storage/mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
op/combine
A combine proc merges multiple upstream inputs into one output.
|
A combine proc merges multiple upstream inputs into one output. |
Package zcode implements serialization and deserialzation for ZNG values.
|
Package zcode implements serialization and deserialzation for ZNG values. |
zng21io
Package zng21io provides low performance, read-only for the old ZNG format prior to the changes introduced in January 2021.
|
Package zng21io provides low performance, read-only for the old ZNG format prior to the changes introduced in January 2021. |
zngio
Package zngio provides an API for reading and writing zng values and directives in binary zng format.
|
Package zngio provides an API for reading and writing zng values and directives in binary zng format. |
Package zqe provides a mechanism to create or wrap errors with information that will aid in reporting them to users and returning them to api callers.
|
Package zqe provides a mechanism to create or wrap errors with information that will aid in reporting them to users and returning them to api callers. |
Package zson provides fundamental interfaces to the ZSON data format comprising Reader, Writer, Parser, and so forth.
|
Package zson provides fundamental interfaces to the ZSON data format comprising Reader, Writer, Parser, and so forth. |
Package zst implements the reading and writing of ZST storage objects to and from any Zed format.
|
Package zst implements the reading and writing of ZST storage objects to and from any Zed format. |
column
Package column implements the organization of columns on storage for a ZST columnar storage object.
|
Package column implements the organization of columns on storage for a ZST columnar storage object. |
Package ztest runs formulaic tests ("ztests") that can be (1) run in-process with the compiled-ini zq code base, (2) run as a sub-process using the zq executable build artifact, or (3) run as a bash script running a sequence of arbitrary shell commands invoking any of the build artifacts.
|
Package ztest runs formulaic tests ("ztests") that can be (1) run in-process with the compiled-ini zq code base, (2) run as a sub-process using the zq executable build artifact, or (3) run as a bash script running a sequence of arbitrary shell commands invoking any of the build artifacts. |