Module libdata::column []

Column descriptions and values.

A column is a kind of value tagged onto a flow (o part of it). As these can be arbitrary data, this module contains an abstraction allowing to manipulate them.

The basic type is a Value, which represents one opaque tag. The other important type is Ident. That one describes the kind (identity) of a value. In a nutshell, Ident can talk about a remote IP address, while Value holds an actual instance of that IP address. Of course, a Value knows its own identity.

To use a data type as a public tag, two things need to be performed:

If the column is to be used only as a key for internal use (eg. users won't be able to query for it), the registration is not needed.

There are also some other helpful types that build on top of these.

Structs

FlowTags

A reference counted handle to Tags

Headers

A multi-set of tags.

Ident

An identity of a column.

Local

A wrapper for local-endpoint columns.

RefHeaders

Just like Headers, but with references instead of owned values.

Remote

A wrapper for remote-endpoint columns.

Tags

Tags of a single entity.

Value

A column value.

Traits

EndpointType

A trait to implement endpoint types.

Type

A trait for the types that can be made into the generic Value

Functions

register

Register a type to be used as a column.

register_endpoint

Register a type to be used as endpoint columns.

Type Definitions

Header

A set of values of the same type.

RefHeader

Just like Header, but with references instead of owned values.