Add a method to get a component `Ptr` to `ThinColumn`
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 161
Description
## What problem does this solve or what need does it fill?
After #12929 we can no longer get `Ptr` by component ID from the column.
Previously my code to get ticks a component looked like this:
```rust
let column = table.get_column(component_id).unwrap_unchecked();
let component = column.get_data_unchecked(entity.table_row());
let ticks = column.get_ticks_unchecked(entity.table_row());
```
After 0.15 it looks like this:
```rust
let component: Ptr<'w> = table
.get_component(component_id, entity.table_row())
.unwrap_unchecked();
let ticks = table
.get_ticks_unchecked(component_id, entity.table_row())
.unwrap_unchecked();
```
The problem is that new code makes a lookup for a row twice (for component and ticks).
I can get ticks like this:
```rust
let column = table.get_column(component_id).unwrap();
let added = column
.get_added_ticks_slice(table.entity_count())
.get_unchecked(entity.table_row().as_usize())
.read();
let changed = column
.get_changed_ticks_slice(table.entity_count())
.get_unchecked(entity.table_row().as_usize())
.read();
let ticks = ComponentTicks { added, changed };
```
But for component only `get_data_slice` is exposed which expects `T`, while I need `Ptr`.
## What solution would you like?
Provide a getter to obtain `Ptr`.
## What alternative(s) have you considered?
A helper method that returns both, component `Ptr` and ticks.
Contributor guide
Assessment
This issue has not been assessed yet.