Skip to content

Commit

Permalink
use bytemuck cast_vec for from_arrow when possible
Browse files Browse the repository at this point in the history
  • Loading branch information
Wumpf committed Jul 5, 2024
1 parent 67c8fc1 commit 2026c55
Show file tree
Hide file tree
Showing 13 changed files with 26 additions and 27 deletions.
3 changes: 1 addition & 2 deletions crates/re_types/src/components/class_id.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/color.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/fill_ratio.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/gamma_correction.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/keypoint_id.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/position2d.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/position3d.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/range1d.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/texcoord2d.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/triangle_indices.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/vector2d.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions crates/re_types/src/components/vector3d.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 14 additions & 3 deletions crates/re_types_builder/src/codegen/rust/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -798,9 +798,20 @@ fn quote_trait_impls_from_obj(
let from_arrow_body = if forward_serialization {
let forwarded_type = quote_field_type_from_typ(&obj.fields[0].typ, true).0;

// TODO: Do #forwarded_type::from_arrow(arrow_data).map(|v| bytemuck::cast_vec(v)) if PODsible.
quote! {
#forwarded_type::from_arrow(arrow_data).map(|v| v.into_iter().map(|v| Self(v)).collect())
if obj
.try_get_attr::<String>(ATTR_RUST_DERIVE)
.map_or(false, |d| d.contains("bytemuck::Pod"))
|| obj
.try_get_attr::<String>(ATTR_RUST_DERIVE_ONLY)
.map_or(false, |d| d.contains("bytemuck::Pod"))
{
quote! {
#forwarded_type::from_arrow(arrow_data).map(|v| bytemuck::cast_vec(v))
}
} else {
quote! {
#forwarded_type::from_arrow(arrow_data).map(|v| v.into_iter().map(|v| Self(v)).collect())
}
}
} else {
let quoted_deserializer =
Expand Down

0 comments on commit 2026c55

Please sign in to comment.