Exmbus.Parser.Apl.DataRecord.ValueInformationBlock.Vife (Exmbus v0.3.0)

View Source

Takes care of VIF extension parsing.

It might be possible to refactor this away at some point, but right now it seems like a lot of the VIFE functionality is the same across VIF tables, so we gather it all here.

Summary

Functions

Consume all VIFE bytes and return them. Useful for ignoring VIFE.

Ignore VIFE and return {:error, reason, rest}

Parse VIFEs into a %VIB{} struct. The first argument is the extension bit from the previous byte. When a function call sees a zero from the previous extension bit, we know that rest isn't part of the VIFE and we can return the accumulated VIB and rest of data.

Functions

consume(arg, acc)

Consume all VIFE bytes and return them. Useful for ignoring VIFE.

error(int, rest, reason, ctx)

Ignore VIFE and return {:error, reason, rest}

parse(int, rest, ctx)

Parse VIFEs into a %VIB{} struct. The first argument is the extension bit from the previous byte. When a function call sees a zero from the previous extension bit, we know that rest isn't part of the VIFE and we can return the accumulated VIB and rest of data.