Skip to content

Commit 38330b0

Browse files
committed
review
1 parent 159b53f commit 38330b0

File tree

2 files changed

+15
-19
lines changed
  • crates
    • build/re_types_builder/src/codegen/rust
    • store/re_types_core/src

2 files changed

+15
-19
lines changed

crates/build/re_types_builder/src/codegen/rust/api.rs

+14-19
Original file line numberDiff line numberDiff line change
@@ -1160,7 +1160,7 @@ fn quote_trait_impls_for_archetype(obj: &Object) -> TokenStream {
11601160
.map(|field| format_ident!("{}", field.name))
11611161
.collect::<Vec<_>>();
11621162

1163-
// TODO(cmc): This goes away once all archetypes have been made eager.
1163+
// TODO(#7245): This goes away once all archetypes have been made eager.
11641164
let all_native_component_batches = {
11651165
std::iter::once(quote! {
11661166
Some(Self::indicator())
@@ -1249,7 +1249,7 @@ fn quote_trait_impls_for_archetype(obj: &Object) -> TokenStream {
12491249
}
12501250
};
12511251

1252-
// TODO(cmc): This goes away once all archetypes have been made eager.
1252+
// TODO(#7245): This goes away once all archetypes have been made eager.
12531253
let all_native_deserializers = {
12541254
obj.fields.iter().map(|obj_field| {
12551255
let obj_field_fqname = obj_field.fqname.as_str();
@@ -1624,21 +1624,19 @@ fn quote_builder_from_obj(reporter: &Reporter, objects: &Objects, obj: &Object)
16241624
// fn new()
16251625
let quoted_params = required.iter().map(|field| {
16261626
let field_name = format_ident!("{}", field.name);
1627-
let (typ, unwrapped) = quote_field_type_from_typ(&field.typ, true);
1628-
if unwrapped {
1629-
// This was originally a vec/array!
1627+
let (typ, is_many_component) = quote_field_type_from_typ(&field.typ, true);
1628+
if is_many_component {
16301629
quote!(#field_name: impl IntoIterator<Item = impl Into<#typ>>)
16311630
} else {
16321631
quote!(#field_name: impl Into<#typ>)
16331632
}
16341633
});
16351634

1636-
// TODO(cmc): This goes away once all archetypes have been made eager.
1635+
// TODO(#7245): This goes away once all archetypes have been made eager.
16371636
let quoted_native_required = required.iter().map(|field| {
16381637
let field_name = format_ident!("{}", field.name);
1639-
let (_, unwrapped) = quote_field_type_from_typ(&field.typ, true);
1640-
if unwrapped {
1641-
// This was originally a vec/array!
1638+
let (_, is_many_component) = quote_field_type_from_typ(&field.typ, true);
1639+
if is_many_component {
16421640
quote!(#field_name: #field_name.into_iter().map(Into::into).collect())
16431641
} else {
16441642
quote!(#field_name: #field_name.into())
@@ -1649,9 +1647,8 @@ fn quote_builder_from_obj(reporter: &Reporter, objects: &Objects, obj: &Object)
16491647
let field_name = format_ident!("{}", field.name);
16501648
let descr_fn_name = format_ident!("descriptor_{field_name}");
16511649

1652-
let (_, unwrapped) = quote_field_type_from_typ(&field.typ, true);
1653-
if unwrapped {
1654-
// This was originally a vec/array!
1650+
let (_, is_many_component) = quote_field_type_from_typ(&field.typ, true);
1651+
if is_many_component {
16551652
quote!(#field_name: try_serialize_field(Self::#descr_fn_name(), #field_name))
16561653
} else {
16571654
quote!(#field_name: try_serialize_field(Self::#descr_fn_name(), [#field_name]))
@@ -1705,16 +1702,15 @@ fn quote_builder_from_obj(reporter: &Reporter, objects: &Objects, obj: &Object)
17051702
}
17061703
};
17071704

1708-
// TODO(cmc): This goes away once all archetypes have been made eager.
1705+
// TODO(#7245): This goes away once all archetypes have been made eager.
17091706
let native_with_methods = optional.iter().map(|field| {
17101707
// fn with_*()
17111708
let field_name = format_ident!("{}", field.name);
17121709
let method_name = format_ident!("with_{field_name}");
1713-
let (typ, unwrapped) = quote_field_type_from_typ(&field.typ, true);
1710+
let (typ, is_many_component) = quote_field_type_from_typ(&field.typ, true);
17141711
let docstring = quote_field_docs(reporter, objects, field);
17151712

1716-
if unwrapped {
1717-
// This was originally a vec/array!
1713+
if is_many_component {
17181714
quote! {
17191715
#docstring
17201716
#[inline]
@@ -1740,11 +1736,10 @@ fn quote_builder_from_obj(reporter: &Reporter, objects: &Objects, obj: &Object)
17401736
let field_name = format_ident!("{}", field.name);
17411737
let descr_fn_name = format_ident!("descriptor_{field_name}");
17421738
let method_name = format_ident!("with_{field_name}");
1743-
let (typ, unwrapped) = quote_field_type_from_typ(&field.typ, true);
1739+
let (typ, is_many_component) = quote_field_type_from_typ(&field.typ, true);
17441740
let docstring = quote_field_docs(reporter, objects, field);
17451741

1746-
if unwrapped {
1747-
// This was originally a vec/array!
1742+
if is_many_component {
17481743
quote! {
17491744
#docstring
17501745
#[inline]

crates/store/re_types_core/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ macro_rules! static_assert_struct_has_fields {
150150
///
151151
/// There are very few ways in which serialization can fail, all of which are very rare to hit
152152
/// in practice.
153+
/// One such example is trying to serialize data with more than 2^31 elements into a `ListArray`.
153154
///
154155
/// For that reason, this method favors a nice user experience over error handling: errors will
155156
/// merely be logged, not returned (except in debug builds, where all errors panic).

0 commit comments

Comments
 (0)