//! [The next 700 data description languages](https://collaborate.princeton.edu/en/publications/the-next-700-data-description-languages) by Kathleen Fisher, Yitzhak Mandelbaum, David P. Walker.
// [azul web-lift] BTreeMap not HashMap for ReadCache: this cache (coverages/classdefs etc.) starts
// EMPTY (cap-0) and the FIRST insert during GSUB/GPOS shaping hits the lifted hashbrown EMPTY-INSERT
// mis-lift (reserve_rehash-from-0) → the remill-lifted web backend HANGS in shape_text. BTreeMap has
pub fn offset_length(&self, offset: usize, length: usize) -> Result<ReadScope<'a>, ParseError> {
pub fn read<T: ReadBinaryDep<Args<'a> = ()>>(&self) -> Result<T::HostType<'a>, ParseError> {
pub fn read<T: ReadBinaryDep<Args<'a> = ()>>(&mut self) -> Result<T::HostType<'a>, ParseError> {
Some(unsafe { T::read_unchecked(&mut ctxt) }) // Safe because we have `SIZE` bytes available.