Skip to main content

Module range

Module range 

Source
Expand description

What the host answers when a decoder asks for bytes it has not been given.

The request itself is crate::RangeRequest when it travels as a record. Across the WebAssembly boundary it is a call rather than a record, because the decoder is stopped inside it waiting for the answer and a record would mean framing a request the caller is going to consume immediately. What crosses is three numbers in and one number out, and the number that comes out is this.

The reason it is an integer rather than a boolean is that the four ways a range can fail are not the same failure. Two of them are the decoder asking for the wrong thing and are worth reporting back so it can ask for the right thing instead, and two of them are the host being unable to serve a request that was perfectly reasonable. A decoder that cannot tell those apart has no choice but to give up on all four.

Structsยง

RangeStatus
The answer to iris.require_range.