# control.PaneOutput

- **Module:** control
- **Package:** libtmux
- **Language:** Rust
- **Kind:** struct
- **Source:** https://github.com/libtmux/libtmux-rs/blob/f0e37052c232636b61d095817046e6bfc8f2ca40/crates/libtmux/src/control.rs#L1324
- **Page:** https://libtmux.org/en/rs/latest/reference/control-paneoutput/

What one pane writes, as it writes it.

Built by [`crate::Pane::stream_output`]. This is a [`Stream`] of the bytes
that pane produced, in order.
Its infallible items combine normal termination, connection failure, and
the watched pane being killed into `None`, once whatever was already
buffered has drained. Call [`Self::shutdown`] to observe a connection
error, or use [`ControlEvents`] to receive errors during iteration; a
killed pane is not an error either way, since ending is the correct answer
once nothing more will arrive.

tmux is told to send this connection nothing but the watched pane. A
neighbouring pane running `yes` otherwise moves tens of megabytes a second
through it, and the watched pane's output queues behind that.

Each of these owns a control-mode connection, so a caller watching many
panes at once is better served by [`ControlEvents`] and one connection,
narrowed with [`ControlSender::watch_only`].

## Members

- `pane` (method): Return the pane being watched.
- `sender` (method): Return the connection this stream reads, to mute or resume panes on it.
- `snapshot` (method): Capture the pane's visible screen at an ordered point in this stream.
- `next_chunk` (method): Return the next chunk this pane wrote, or `None` once it stops.
- `shutdown` (method): End the connection and report how it went.
