page! : Decoder(page, page, err)
Decode the discovered page value.
:= []
Compose pure or effectful decoders that derive typed data from a page source.
A decoder receives the discovered page value together with its UTF-8 source.
Record-builder syntax combines independent decoders into a decoder for a
record: { page: PageDecoder.page!, data: ... }.PageDecoder.
page! : Decoder(page, page, err)
Decode the discovered page value.
Decode the unmodified UTF-8 source text.
from_source : (Str -> Try(value, err)) -> Decoder(page, value, err)
Lift a pure source parser into a page decoder.
from_effect : (Input(page) => Try(value, err)) -> Decoder(page, value, err)
Use a custom effectful decoder with access to both the page and its source.
map : Decoder(page, a, err), (a -> b) -> Decoder(page, b, err)
Transform a decoded value.
map2 : Decoder(page, a, err), Decoder(page, b, err), (a, b -> c) -> Decoder(page, c, err)
Combine two independent decoders. Decoders run from left to right, and the
second decoder is skipped if the first returns Err.
This is the applicative operation used by Roc's record-builder syntax.
Run a decoder with an already-loaded page input.
The input shared by every decoder for a page.
An effectful decoder that derives value from one page input.