[
https://issues.apache.org/jira/browse/AVRO-3759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17726185#comment-17726185
]
ASF subversion and git services commented on AVRO-3759:
-------------------------------------------------------
Commit 47fd3b600d9eba16f5f2f57a496dae60fd198976 in avro's branch
refs/heads/branch-1.11 from Martin Grigorov
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=47fd3b600 ]
AVRO-3759: Add extra types for RecordSchema, EnumSchema, FixedSchema and
DecimalSchema (#2241)
* AVRO-3759: Add extra types for RecordSchema, EnumSchema, FixedSchema and
DecimalSchema
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
* AVRO-3759: Add rustdoc to the new types
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
---------
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
(cherry picked from commit 1b9b0858e66968ce3a1d396e879e4803495030aa)
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
> [Rust] Schema types inconsistency
> ---------------------------------
>
> Key: AVRO-3759
> URL: https://issues.apache.org/jira/browse/AVRO-3759
> Project: Apache Avro
> Issue Type: Improvement
> Components: rust
> Reporter: Fedor Telnov
> Priority: Major
>
> That is how Unions and Records are defined in apache-avro Rust crate:
>
> ```
> /// A `union` Avro schema.
> Union(UnionSchema),
> /// A `record` Avro schema.
> ///
> /// The `lookup` table maps field names to their position in the `Vec`
> /// of `fields`.
> Record {
> name: Name,
> aliases: Aliases,
> doc: Documentation,
> fields: Vec<RecordField>,
> lookup: BTreeMap<String, usize>,
> },
> ```
>
> That is inconsistent - one variant is defined with pattern Type(Type) which
> is VERY convenient(for instance, it allows one to use UnionSchema as type),
> and the other one(Record) is simply a struct variant, which is not very
> convenient. My proposition is to hide Record's body in RecordSchema type and
> use it here - just as you do with union. That would significantly help users,
> as we can't use enum variants as types in Rust. It can also be done with
> other schema types as well.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)