Skip to content

Display multibyte e-expression headers #181

Description

@zslayton

Currently, inspect assumes all e-expressions will have a one-byte header:

fn inspect_eexp(&mut self, depth: usize, eexp: EExpression<AnyEncoding>) -> Result<()> {
let mut formatter = BytesFormatter::new(
BYTES_PER_ROW,
vec![
// TODO: Add methods to EExpression that allow nuanced access to its encoded spans
// TODO: Length-prefixed and multibyte e-expression addresses
IonBytes::new(BytesKind::MacroId, &eexp.span().bytes()[0..1]),
],
);

However, is only the case for invocations of user macros with an ID lower than 64.
Invocations of system macros are two bytes (0xEE 0x__), and invocations of macros with IDs >= 64 are at least two bytes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions