Skip to content

Commit cfb69d9

Browse files
authored
Represent std_msgs/msg/Empty as empty list (#11460)
1 parent e9429eb commit cfb69d9

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

crates/utils/re_mcap/src/layers/ros2_reflection.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use arrow::{
55
array::{
66
ArrayBuilder, ArrowPrimitiveType, BooleanBuilder, FixedSizeListBuilder, Float32Builder,
77
Float64Builder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, ListBuilder,
8-
PrimitiveBuilder, StringBuilder, StructBuilder, UInt8Builder, UInt16Builder, UInt32Builder,
9-
UInt64Builder,
8+
NullBuilder, PrimitiveBuilder, StringBuilder, StructBuilder, UInt8Builder, UInt16Builder,
9+
UInt32Builder, UInt64Builder,
1010
},
1111
datatypes::{
1212
DataType, Field, Fields, Float32Type, Float64Type, Int8Type, Int16Type, Int32Type,
@@ -204,22 +204,19 @@ fn create_empty_message_chunk(
204204
num_rows: usize,
205205
archetype_name: &str,
206206
) -> anyhow::Result<Chunk> {
207-
let empty_list = arrow::array::ListArray::new_null(
208-
std::sync::Arc::new(Field::new(
209-
"empty",
210-
DataType::FixedSizeList(Arc::new(Field::new("item", DataType::Null, true)), 1),
211-
true,
212-
)),
213-
num_rows,
214-
);
207+
let mut empty_list = ListBuilder::with_capacity(NullBuilder::new(), num_rows);
208+
for _ in 0..num_rows {
209+
empty_list.values().append_null();
210+
empty_list.append(true);
211+
}
215212

216213
let chunk = Chunk::from_auto_row_ids(
217214
ChunkId::new(),
218215
entity_path,
219216
timelines,
220217
std::iter::once((
221218
ComponentDescriptor::partial("empty").with_builtin_archetype(archetype_name),
222-
empty_list,
219+
empty_list.finish(),
223220
))
224221
.collect(),
225222
)

0 commit comments

Comments
 (0)