Whether as many fragments are decoded as the message has; result is then defined or throws.
Fraction of the message's fragments decoded.
The message once done, else undefined: the decoded fragments in
order, cut to messageLen. The decoder does not change once done, so
the first outcome is kept and returned (or thrown) again.
Feed a part. Returns whether it added information: false once done
and for a repeated index set. The part's data is copied, never kept.
Forget every part received.
Reassembles a message from parts in any order, exactly as the reference's
ur::fountain::Decoderdoes: a mixed part is reduced against the fragments known when it arrives and then buffered; a buffered part is reduced further only when a later simple part (or a fragment derived while processing one) arrives, so completion can need more parts than a decoder that re-reduces its buffer after every part. A later simple part replaces a fragment derived earlier, and the reassembled message is not checked against the parts' checksum field.