Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

control.PaneOutput.snapshot

Rust
  • Python Unavailable
  • Ruby Unavailable
  • Lua Unavailable
  • TypeScript Unavailable
  • Rust
  • Go Unavailable
  • Java Unavailable
  • .NET Unavailable
  • C++ Unavailable
  • Swift Unavailable

View as Markdown

Module
control
Declared in
PaneOutput
Package
libtmux
Source
crates/libtmux/src/control.rs
snapshot ( mut , on_output : impl FnMut(&[u8]) ) → Result<Vec<TmuxText>, Error>
method [source]
method [source]
snapshot

Capture the pane's visible screen at an ordered point in this stream.

on_output receives every unread chunk tmux ordered before the capture block. The callback owns any retention policy, so libtmux does not retain those chunks. It runs synchronously and should return promptly.

Each chunk passed to on_output is consumed from this stream and is not repeated by Self::next_chunk , even when this returns an error.

The visible screen and preceding output may overlap: the screen is tmux's rendered grid, while the callback receives the raw terminal byte stream that reached that grid.

Errors

Returns an error when the connection closes, the command deadline elapses, or tmux refuses the capture, including when the pane vanished.

Cancel safety

Partly happened: chunks already passed to on_output stay consumed, so what the callback kept is the only copy. The stream stays usable.

Examples

let mut output = pane.stream_output().await?;
let mut preceding = Vec::new();
let visible = output
.snapshot(|chunk| preceding.extend_from_slice(chunk))
.await?;
println!("{} visible lines after {} raw bytes", visible.len(), preceding.len());
output.shutdown().await

0 declared, 0 inherited

Esc

Type to search.