Module avro_record

Authors: Ilya Staheev (ilya.staheev@klarna.com).

Data Types

array_type()

array_type() = #avro_array_type{type = avro:type_or_name(), custom = [avro:custom_prop()]}

avro_type()

avro_type() = primitive_type() | array_type() | enum_type() | fixed_type() | map_type() | record_type() | union_type()

avro_value()

avro_value() = avro:canonicalized_value() | #avro_value{type = avro:type_or_name(), data = avro:avro_value()} | [#avro_value{type = avro:type_or_name(), data = avro:avro_value()}] | [{avro:name(), #avro_value{type = avro:type_or_name(), data = avro:avro_value()}}] | avro_map:data() | {json, binary()} | {binary, binary()}

enum_type()

enum_type() = #avro_enum_type{name = avro:name(), namespace = avro:namespace(), aliases = [avro:name()], doc = avro:typedoc(), symbols = [avro:enum_symbol()], fullname = avro:fullname(), custom = [avro:custom_prop()]}

field_name()

field_name() = binary()

field_name_raw()

field_name_raw() = atom() | string() | binary()

field_opt_name()

field_opt_name() = doc | order | default | aliases

field_opts()

field_opts() = [{field_opt_name(), term()}]

fixed_type()

fixed_type() = #avro_fixed_type{name = avro:name(), namespace = avro:namespace(), aliases = [avro:name()], size = pos_integer(), fullname = avro:fullname(), custom = [avro:custom_prop()]}

fullname()

fullname() = binary()

lkup_fun()

lkup_fun() = fun((fullname()) -> avro_type())

map_type()

map_type() = #avro_map_type{type = avro:type_or_name(), custom = [avro:custom_prop()]}

name()

name() = binary()

name_raw()

name_raw() = atom() | string() | binary()

namespace()

namespace() = binary()

ordering()

ordering() = ascending | descending | ignore

primitive_type()

primitive_type() = #avro_primitive_type{name = avro:name(), custom = [avro:custom_prop()]}

record_field()

record_field() = #avro_record_field{name = name(), doc = typedoc(), type = type_or_name(), default = undefined | avro:in() | avro_value(), order = ordering(), aliases = [name()]}

record_opt_name()

record_opt_name() = atom()

record_opts()

record_opts() = [{record_opt_name(), term()}]

record_type()

record_type() = #avro_record_type{name = avro:name(), namespace = avro:namespace(), doc = avro:typedoc(), aliases = [avro:name()], fields = [avro:record_field()], fullname = avro:fullname(), custom = [avro:custom_prop()]}

type_or_name()

type_or_name() = avro_type() | name_raw()

typedoc()

typedoc() = string() | binary()

union_type()

union_type() = #avro_union_type{id2type = avro_union:id2type(), name2id = avro_union:name2id()}

Function Index

define_field/2Define a record field with default properties.
define_field/3Define a record field.
encode_defaults/2Encode fields' default values to JSON format.
get_all_field_data/1Get all field types, together with their defaults in a triple list.
get_all_field_types/1Get all field types in a tuple list with filed name and field type zipped.
get_field_type/2Returns type of the specified field.
get_value/2
new/2
parse_defaults/2Parse fields' default values.
resolve_fullname/2Resolve fullname by newly discovered enclosing namespace.
to_list/1Extract fields and their values from the record.
to_term/1Recursively unbox field values.
type/2Declare a record type with pre-defined record fields and default type properties.
type/3Declare a record type with pre-defined record fields.

Function Details

define_field/2

define_field(Name::name_raw(), Type::type_or_name()) -> record_field()

Define a record field with default properties.

define_field/3

define_field(Name::name_raw(), Type0::type_or_name(), Opts::field_opts()) -> record_field()

Define a record field.

encode_defaults/2

encode_defaults(Avro_record_type::record_type(), Lkup::lkup_fun()) -> record_type()

Encode fields' default values to JSON format.

get_all_field_data/1

get_all_field_data(Avro_record_type::avro_type()) -> [{field_name(), type_or_name(), undefined | avro:in() | avro_value()}]

Get all field types, together with their defaults in a triple list.

get_all_field_types/1

get_all_field_types(Type::record_type()) -> [{field_name(), type_or_name()}]

Get all field types in a tuple list with filed name and field type zipped.

get_field_type/2

get_field_type(FieldName::field_name_raw(), Type::record_type()) -> type_or_name() | no_return()

Returns type of the specified field. Aliases can be used for FieldName.

get_value/2

get_value(FieldName::field_name_raw(), Record::avro_value()) -> avro_value() | no_return()

new/2

new(Type::record_type(), Value::avro:in()) -> avro_value()

parse_defaults/2

parse_defaults(Avro_record_type::record_type(), ParseFun::avro_json_decoder:default_parse_fun()) -> record_type()

Parse fields' default values.

resolve_fullname/2

resolve_fullname(Avro_record_type::record_type(), Ns::namespace()) -> record_type()

Resolve fullname by newly discovered enclosing namespace.

to_list/1

to_list(Record::avro_value()) -> [{field_name(), avro_value()}]

Extract fields and their values from the record.

to_term/1

to_term(Record::avro_value()) -> avro:out()

Recursively unbox field values.

type/2

type(Name::name_raw(), Fields::[record_field()]) -> record_type()

Declare a record type with pre-defined record fields and default type properties

type/3

type(Name0::name_raw(), Fields0::[record_field()], Opts::record_opts()) -> record_type()

Declare a record type with pre-defined record fields.


Generated by EDoc