avro_t :: binary
error_t :: {:error, String.t}
schema_t :: String.t | map
type_t :: charlist
value_t :: any
decode(avro_t) :: {:ok, value_t} | error_t
decode!(avro_t) :: value_t
encode(value_t, schema_t, type_t, list) :: {:ok, avro_t} | error_t
encode!(value_t, schema_t, type_t, list) :: avro_t
round_trip(value_t, schema_t, type_t, list) :: {:ok, value_t} | error_t
round_trip!(value_t, schema_t, type_t, list) :: value_t