stream property
A stream of Querys received by this queryable.
⚠️ UNBOUNDED, and pausing it does not stop the flow. Queries are
pushed in as they arrive, and each one holds a z_owned_query_t clone
open until disposed — so a slow consumer here grows native memory as
well as the Dart queue. Measured: a paused push queryable retained all
64 queries fired at it, against 9 for
Session.declarePullQueryable(…, capacity: 8).stream.
⚠️ A value this binding cannot convert arrives as a STREAM ERROR, never
as empty or absent data. Zenoh can hand over a payload or attachment
the conversion step refuses; delivering that as a zero-length value would
be indistinguishable from a legitimately empty one, and empty is a real
value on this path. The error carries canon's own code.
⛔ The stream keeps running. A conversion failure is a failed call,
not a dead channel — the same rule the pull family already ships — so
later values still arrive and terminating on the first bad one would
lose them. ⚠️ But an unhandled stream error is still an unhandled error:
pass onError (or handleError), because an unhandled one can take the
program down.
Implementation
Stream<Query> get stream => _channel.stream;