Description
This is a patch that lets us keep track of which schema an avro_datum_t is an instance of. This is a breaking API change, but I think it makes the API simpler and more logical. From the commit message:
We now keep track of which particular schema an avro_datum_t is an
instance of. For primitive values, there's only one possible schema,
and so we don't store an explicit reference. For compound values, the
datum constructors now take in a schema parameter, which is stored in
the avro_datum_t instance. For records, enums, and fixeds, this means
that we don't need to store the name of the schema type anymore, since
we can get this from the schema.
There were also several functions, which operate on datum instances,
which needed to take in a schema parameter — avro_datum_to_json, as an
example. Those parameters aren't needed anymore, since the datum
carries a reference to its own schema already.