re_components 0.8.2

The standard rerun data types, component types, and archetypes
Documentation
use re_components::datagen::{build_frame_nr, build_some_point2d, build_some_rects};
use re_log_types::{ArrowMsg, DataRow, DataTable, RowId};

#[test]
fn arrow_msg_roundtrip() {
    let row = DataRow::from_cells2(
        RowId::random(),
        "world/rects",
        [build_frame_nr(0.into())],
        1,
        (build_some_point2d(1), build_some_rects(1)),
    );

    let table_in = {
        let mut table = row.into_table();
        table.compute_all_size_bytes();
        table
    };
    let msg_in = table_in.to_arrow_msg().unwrap();
    let buf = rmp_serde::to_vec(&msg_in).unwrap();
    let msg_out: ArrowMsg = rmp_serde::from_slice(&buf).unwrap();
    let table_out = {
        let mut table = DataTable::from_arrow_msg(&msg_out).unwrap();
        table.compute_all_size_bytes();
        table
    };

    assert_eq!(msg_in, msg_out);
    assert_eq!(table_in, table_out);
}