-
Notifications
You must be signed in to change notification settings - Fork 384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
End-to-end tagging: C++ #8316
End-to-end tagging: C++ #8316
Conversation
Web viewer built successfully. If applicable, you should also test it:
Note: This comment is updated whenever you push a commit. |
a20cd08
to
f201277
Compare
087fe42
to
74dd688
Compare
/// Unconditionally sets `archetype_name` to the given one. | ||
ComponentDescriptor with_archetype_name(std::optional<std::string_view> archetype_name_ | ||
) const { | ||
ComponentDescriptor descriptor = *this; | ||
descriptor.archetype_name = archetype_name_; | ||
return descriptor; | ||
} | ||
|
||
/// Unconditionally sets `archetype_name` to the given one. | ||
ComponentDescriptor with_archetype_name(const char* archetype_name_) const { | ||
ComponentDescriptor descriptor = *this; | ||
descriptor.archetype_name = archetype_name_; | ||
return descriptor; | ||
} | ||
|
||
/// Unconditionally sets `archetype_field_name` to the given one. | ||
ComponentDescriptor with_archetype_field_name( | ||
std::optional<std::string_view> archetype_field_name_ | ||
) const { | ||
ComponentDescriptor descriptor = *this; | ||
descriptor.archetype_field_name = archetype_field_name_; | ||
return descriptor; | ||
} | ||
|
||
/// Unconditionally sets `archetype_field_name` to the given one. | ||
ComponentDescriptor with_archetype_field_name(const char* archetype_field_name_) const { | ||
ComponentDescriptor descriptor = *this; | ||
descriptor.archetype_field_name = archetype_field_name_; | ||
return descriptor; | ||
} | ||
|
||
/// Sets `archetype_name` to the given one iff it's not already set. | ||
ComponentDescriptor or_with_archetype_name(std::optional<std::string_view> archetype_name_ | ||
) const { | ||
if (this->archetype_field_name.has_value()) { | ||
return *this; | ||
} | ||
ComponentDescriptor descriptor = *this; | ||
descriptor.archetype_name = archetype_name_; | ||
return descriptor; | ||
} | ||
|
||
/// Sets `archetype_name` to the given one iff it's not already set. | ||
ComponentDescriptor or_with_archetype_name(const char* archetype_name_) const { | ||
if (this->archetype_field_name.has_value()) { | ||
return *this; | ||
} | ||
ComponentDescriptor descriptor = *this; | ||
descriptor.archetype_name = archetype_name_; | ||
return descriptor; | ||
} | ||
|
||
/// Sets `archetype_field_name` to the given one iff it's not already set. | ||
ComponentDescriptor or_with_archetype_field_name( | ||
std::optional<std::string_view> archetype_field_name_ | ||
) const { | ||
if (this->archetype_field_name.has_value()) { | ||
return *this; | ||
} | ||
ComponentDescriptor descriptor = *this; | ||
descriptor.archetype_field_name = archetype_field_name_; | ||
return descriptor; | ||
} | ||
|
||
/// Sets `archetype_field_name` to the given one iff it's not already set. | ||
ComponentDescriptor or_with_archetype_field_name(const char* archetype_field_name_) const { | ||
if (this->archetype_field_name.has_value()) { | ||
return *this; | ||
} | ||
ComponentDescriptor descriptor = *this; | ||
descriptor.archetype_field_name = archetype_field_name_; | ||
return descriptor; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: I tried to not repeat myself so much, but anytime I try to do something any fancier than that, either clang and/or gcc complains or things just segfault. Whatever.
a82a5bb
to
82a1dae
Compare
74dd688
to
470cbd3
Compare
@rerun-bot full-check |
Started a full build: https://github.com/rerun-io/rerun/actions/runs/12162244534 |
TODO: end-to-end failed on arm64 mac:
|
@rerun-bot full-check |
Started a full build: https://github.com/rerun-io/rerun/actions/runs/12176032638 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking great!
Didn't understand though how indicator components work now in this world - did you just change the interim definitions of indicator components to not contain the archetype name?
For now, indicators just set their component_name (same is true of all languages, so that roundtrips pass). This will change soon when we enter milestone 2: #8129 (comment), but one issue at a time. |
82a1dae
to
deb1615
Compare
e9be108
to
98a76e4
Compare
@rerun-bot full-check |
Started a full build: https://github.com/rerun-io/rerun/actions/runs/12183925403 |
90ef75b
to
18cb6b3
Compare
oh god what now 😂 |
@rerun-bot full-check |
this is the one 👇 |
Started a full build: https://github.com/rerun-io/rerun/actions/runs/12199877275 |
d8abb0b
to
772fb23
Compare
Co-authored-by: Andreas Reich <andreas@rerun.io>
7dd6190
to
87ec140
Compare
This semantically mimics very closely the way things are done in Rust, minus all technical differences due to the differences between both the languages and the SDKs. For that reason, everything stated in #8304 (comment) basically applies as-is. Pretty happy about it, I must say. * DNM: requires #8316 * Part of #7948
Implemented with the help of @Wumpf.
This semantically mimics very closely the way things are done in Rust, minus all technical differences due to the differences between both the languages and the SDKs.
For that reason, everything stated in #8304 (comment) basically applies as-is.
Pretty happy about it, I must say.