jackdaw.data

This namespace aims to provide `->T`, `(datafy T)`, and `data->T` as
a round-tripping of Katka's (client) record types.

Note that for some types, particularly Kafka's `-Result` types no
`->T` constructors are provided as there are no consumers within the
Kafka API for these records they are merely packed results.

For compatibility with Clojure before 1.10.0, a `datafy` function is
provided. On 1.10 or after, it simply defers to
`clojure.datafy/datafy` but before 1.10 it acts as a backport
thereof.

+broker-config-resource-type+

+create-type-timestamp+

A timestamp type associated with the timestamp being from the
record's creation. That is, the record timestamp was user supplied.

+log-append-type-timestamp+

A timestamp type associated with the timestamp having been generated
by Kafka when the record was produced, not having been specified by
the user when the record was created.

+no-type-timestamp+

A timestamp type associated with... not having a timestamp type.

+topic-config-resource-type+

+unknown-config-resource-type+

->broker-resource

(->broker-resource name)

->topic-resource

(->topic-resource name)

as-OffsetAndTimestamp

(as-OffsetAndTimestamp ot)

as-TopicPartition

(as-TopicPartition o)

Config->data

(Config->data c)

ConfigEntry->data

(ConfigEntry->data e)

ConfigResource->data

(ConfigResource->data cr)

ConfigResourceType->data

(ConfigResourceType->data crt)

ConsumerRecord->data

(ConsumerRecord->data r)

datafy

(datafy x)
Attempts to return x as data.

`datafy` will return the value of `#'clojure.core.protocols/datafy`.

If the value has been transformed and the result supports metadata,
`:clojure.datafy/obj` will be set on the metadata to the original
value of x, and `:clojure.datafy/class` to the name of the class of
x, as a symbol.

DescribeClusterResult->data

(DescribeClusterResult->data dcr)

Node->data

(Node->data node)

OffsetAndTimestamp->data

(OffsetAndTimestamp->data ots)

PartitionInfo->data

(PartitionInfo->data pi)

ProducerRecord->data

(ProducerRecord->data pr)

Properties->data

(Properties->data o)
Consume a `Properties` instance, keywordizing the keys and returning
a Clojure mapping of the resulting keys to unmodified values.

RecordMetadata->data

(RecordMetadata->data rm)

TimestampType->data

(TimestampType->data tt)

TopicDescription->data

(TopicDescription->data td)

TopicPartition->data

(TopicPartition->data tp)

TopicPartitionInfo->data

(TopicPartitionInfo->data tpi)