Whilst we may want to manage multiple sparse data files, don't do this yet, but sculpt for the possibility in the future.
We need a class that can:
- Wrap an ArrayBuffer (think raw bytes in RAM), potentially multiple arrays in future if we want to partially fetch data.
- Directs requests for data to the appropriate offset, or null if we don't have this data yet
- Have an async method to fetch data if it's been requested at least once (eventually this would be a list of cache misses)
On top of this, specialisms that can convert metacode/OZids to byte offsets, and return typed data (e.g. bool offset is divided by 8, then picks the relevant bit out)
Ultimately this will be used for epoc data & branch length, but could be retrofitted to e.g. IUCN data, removing special-case code.
Whilst we may want to manage multiple sparse data files, don't do this yet, but sculpt for the possibility in the future.
We need a class that can:
On top of this, specialisms that can convert metacode/OZids to byte offsets, and return typed data (e.g. bool offset is divided by 8, then picks the relevant bit out)
Ultimately this will be used for epoc data & branch length, but could be retrofitted to e.g. IUCN data, removing special-case code.