Expand description
Asciicast v2 recorder for capturing terminal sessions.
This recorder writes newline-delimited JSON (NDJSON) compatible with
asciinema-player. The first line is the header object, followed by event
arrays of the form [time, "o", "text"] for output and [time, "i", "text"]
for input (optional).
§Example
use ftui_core::terminal_capabilities::TerminalCapabilities;
use ftui_runtime::asciicast::{AsciicastRecorder, AsciicastWriter};
use ftui_runtime::{ScreenMode, TerminalWriter, UiAnchor};
use std::io::Cursor;
let recorder = AsciicastRecorder::with_writer(Cursor::new(Vec::new()), 80, 24, 0).unwrap();
let output = Cursor::new(Vec::new());
let recording_output = AsciicastWriter::new(output, recorder);
let caps = TerminalCapabilities::detect();
let mut writer = TerminalWriter::new(recording_output, ScreenMode::Inline { ui_height: 10 }, UiAnchor::Bottom, caps);
writer.write_log("hello\n").unwrap();Structs§
- Asciicast
Recorder - Records terminal output in asciicast v2 format.
- Asciicast
Writer - Writer that mirrors terminal output into an asciicast recorder.