Skip to content

Commit 9d38c5d

Browse files
committed
Resolve cherry-picking conflict: move some conversion helper to re_protos
Note: doesn't need to be applied on `main
1 parent b463bb0 commit 9d38c5d

File tree

2 files changed

+105
-107
lines changed

2 files changed

+105
-107
lines changed

crates/store/re_chunk_store/src/protobuf_conversions.rs

+3-106
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,7 @@
11
use std::collections::{BTreeMap, BTreeSet};
22

33
use re_protos::{missing_field, TypeConversionError};
4-
5-
impl TryFrom<re_protos::common::v1alpha1::ComponentColumnSelector>
6-
for crate::ComponentColumnSelector
7-
{
8-
type Error = TypeConversionError;
9-
10-
fn try_from(
11-
value: re_protos::common::v1alpha1::ComponentColumnSelector,
12-
) -> Result<Self, Self::Error> {
13-
let entity_path = value
14-
.entity_path
15-
.ok_or(missing_field!(
16-
re_protos::common::v1alpha1::ComponentColumnSelector,
17-
"entity_path",
18-
))?
19-
.try_into()?;
20-
21-
let component_name = value
22-
.component
23-
.ok_or(missing_field!(
24-
re_protos::common::v1alpha1::ComponentColumnSelector,
25-
"component",
26-
))?
27-
.name;
28-
29-
Ok(Self {
30-
entity_path,
31-
component_name,
32-
})
33-
}
34-
}
35-
36-
impl TryFrom<re_protos::common::v1alpha1::TimeColumnSelector> for crate::TimeColumnSelector {
37-
type Error = TypeConversionError;
38-
39-
fn try_from(
40-
value: re_protos::common::v1alpha1::TimeColumnSelector,
41-
) -> Result<Self, Self::Error> {
42-
let timeline = value.timeline.ok_or(missing_field!(
43-
re_protos::common::v1alpha1::TimeColumnSelector,
44-
"timeline",
45-
))?;
46-
47-
Ok(Self {
48-
timeline: timeline.name.into(),
49-
})
50-
}
51-
}
52-
53-
impl TryFrom<re_protos::common::v1alpha1::ColumnSelector> for crate::ColumnSelector {
54-
type Error = TypeConversionError;
55-
56-
fn try_from(value: re_protos::common::v1alpha1::ColumnSelector) -> Result<Self, Self::Error> {
57-
match value.selector_type.ok_or(missing_field!(
58-
re_protos::common::v1alpha1::ColumnSelector,
59-
"selector_type",
60-
))? {
61-
re_protos::common::v1alpha1::column_selector::SelectorType::ComponentColumn(
62-
component_column_selector,
63-
) => {
64-
let selector: crate::ComponentColumnSelector =
65-
component_column_selector.try_into()?;
66-
Ok(selector.into())
67-
}
68-
re_protos::common::v1alpha1::column_selector::SelectorType::TimeColumn(
69-
time_column_selector,
70-
) => {
71-
let selector: crate::TimeColumnSelector = time_column_selector.try_into()?;
72-
73-
Ok(selector.into())
74-
}
75-
}
76-
}
77-
}
78-
79-
impl From<crate::ColumnSelector> for re_protos::common::v1alpha1::ColumnSelector {
80-
fn from(value: crate::ColumnSelector) -> Self {
81-
match value {
82-
crate::ColumnSelector::Component(ccs) => Self {
83-
selector_type: Some(
84-
re_protos::common::v1alpha1::column_selector::SelectorType::ComponentColumn(
85-
re_protos::common::v1alpha1::ComponentColumnSelector {
86-
entity_path: Some(ccs.entity_path.into()),
87-
component: Some(re_protos::common::v1alpha1::Component {
88-
name: ccs.component_name,
89-
}),
90-
},
91-
),
92-
),
93-
},
94-
crate::ColumnSelector::Time(tcs) => Self {
95-
selector_type: Some(
96-
re_protos::common::v1alpha1::column_selector::SelectorType::TimeColumn(
97-
re_protos::common::v1alpha1::TimeColumnSelector {
98-
timeline: Some(re_protos::common::v1alpha1::Timeline {
99-
name: tcs.timeline.to_string(),
100-
}),
101-
},
102-
),
103-
),
104-
},
105-
}
106-
}
107-
}
4+
use re_sorbet::{ColumnSelector, ComponentColumnSelector};
1085

1096
impl TryFrom<re_protos::common::v1alpha1::ViewContents> for crate::ViewContentsSelector {
1107
type Error = TypeConversionError;
@@ -151,14 +48,14 @@ impl TryFrom<re_protos::common::v1alpha1::Query> for crate::QueryExpression {
15148
.map(|cs| {
15249
cs.columns
15350
.into_iter()
154-
.map(crate::ColumnSelector::try_from)
51+
.map(ColumnSelector::try_from)
15552
.collect::<Result<Vec<_>, _>>()
15653
})
15754
.transpose()?;
15855

15956
let filtered_is_not_null = value
16057
.filtered_is_not_null
161-
.map(crate::ComponentColumnSelector::try_from)
58+
.map(ComponentColumnSelector::try_from)
16259
.transpose()?;
16360

16461
Ok(Self {

crates/store/re_protos/src/v1alpha1/rerun.common.v1alpha1.ext.rs

+102-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::sync::Arc;
33
use crate::{invalid_field, missing_field, TypeConversionError};
44
use arrow::{datatypes::Schema as ArrowSchema, error::ArrowError};
55
use re_log_types::{external::re_types_core::ComponentDescriptor, TableId};
6-
6+
use re_sorbet::{ColumnSelector, ComponentColumnSelector, TimeColumnSelector};
77
// --- Arrow ---
88

99
impl TryFrom<&crate::common::v1alpha1::Schema> for ArrowSchema {
@@ -922,6 +922,107 @@ impl TryFrom<crate::common::v1alpha1::ComponentDescriptor> for ComponentDescript
922922
}
923923
}
924924

925+
// ---
926+
927+
impl TryFrom<crate::common::v1alpha1::ComponentColumnSelector> for ComponentColumnSelector {
928+
type Error = TypeConversionError;
929+
930+
fn try_from(
931+
value: crate::common::v1alpha1::ComponentColumnSelector,
932+
) -> Result<Self, Self::Error> {
933+
let entity_path = value
934+
.entity_path
935+
.ok_or(missing_field!(
936+
crate::common::v1alpha1::ComponentColumnSelector,
937+
"entity_path",
938+
))?
939+
.try_into()?;
940+
941+
let component_name = value
942+
.component
943+
.ok_or(missing_field!(
944+
crate::common::v1alpha1::ComponentColumnSelector,
945+
"component",
946+
))?
947+
.name;
948+
949+
Ok(Self {
950+
entity_path,
951+
component_name,
952+
})
953+
}
954+
}
955+
956+
impl TryFrom<crate::common::v1alpha1::TimeColumnSelector> for TimeColumnSelector {
957+
type Error = TypeConversionError;
958+
959+
fn try_from(value: crate::common::v1alpha1::TimeColumnSelector) -> Result<Self, Self::Error> {
960+
let timeline = value.timeline.ok_or(missing_field!(
961+
crate::common::v1alpha1::TimeColumnSelector,
962+
"timeline",
963+
))?;
964+
965+
Ok(Self {
966+
timeline: timeline.name.into(),
967+
})
968+
}
969+
}
970+
971+
impl TryFrom<crate::common::v1alpha1::ColumnSelector> for ColumnSelector {
972+
type Error = TypeConversionError;
973+
974+
fn try_from(value: crate::common::v1alpha1::ColumnSelector) -> Result<Self, Self::Error> {
975+
match value.selector_type.ok_or(missing_field!(
976+
crate::common::v1alpha1::ColumnSelector,
977+
"selector_type",
978+
))? {
979+
crate::common::v1alpha1::column_selector::SelectorType::ComponentColumn(
980+
component_column_selector,
981+
) => {
982+
let selector: ComponentColumnSelector = component_column_selector.try_into()?;
983+
Ok(selector.into())
984+
}
985+
crate::common::v1alpha1::column_selector::SelectorType::TimeColumn(
986+
time_column_selector,
987+
) => {
988+
let selector: TimeColumnSelector = time_column_selector.try_into()?;
989+
990+
Ok(selector.into())
991+
}
992+
}
993+
}
994+
}
995+
996+
impl From<ColumnSelector> for crate::common::v1alpha1::ColumnSelector {
997+
fn from(value: ColumnSelector) -> Self {
998+
match value {
999+
ColumnSelector::Component(ccs) => Self {
1000+
selector_type: Some(
1001+
crate::common::v1alpha1::column_selector::SelectorType::ComponentColumn(
1002+
crate::common::v1alpha1::ComponentColumnSelector {
1003+
entity_path: Some(ccs.entity_path.into()),
1004+
component: Some(crate::common::v1alpha1::Component {
1005+
name: ccs.component_name,
1006+
}),
1007+
},
1008+
),
1009+
),
1010+
},
1011+
ColumnSelector::Time(tcs) => Self {
1012+
selector_type: Some(
1013+
crate::common::v1alpha1::column_selector::SelectorType::TimeColumn(
1014+
crate::common::v1alpha1::TimeColumnSelector {
1015+
timeline: Some(crate::common::v1alpha1::Timeline {
1016+
name: tcs.timeline.to_string(),
1017+
}),
1018+
},
1019+
),
1020+
),
1021+
},
1022+
}
1023+
}
1024+
}
1025+
9251026
// --
9261027

9271028
#[cfg(test)]

0 commit comments

Comments
 (0)