[−][src]Crate unsegen_terminal
A pluggable unsegen
ANSI terminal.
Examples:
extern crate unsegen; use std::io::stdout; use unsegen::base; use unsegen::widget::{RenderingHints, Widget}; use unsegen_terminal::{SlaveInputSink, Terminal}; use std::sync::mpsc; struct MpscSlaveInputSink(mpsc::Sender<Box<[u8]>>); impl SlaveInputSink for MpscSlaveInputSink { fn receive_bytes_from_pty(&mut self, data: Box<[u8]>) { self.0.send(data).unwrap(); } } fn main() { let stdout = stdout(); let (pty_sink, pty_src) = mpsc::channel(); let mut term = base::Terminal::new(stdout.lock()); let mut term_widget = Terminal::new(MpscSlaveInputSink(pty_sink)).unwrap(); println!("Created pty: {}", term_widget.slave_name().to_str().unwrap()); while let Ok(bytes) = pty_src.recv() { // Read input and do further processing here... // When you write to the created pty, the input should appear on screen! term_widget.add_byte_input(&bytes); { let win = term.create_root_window(); term_widget.draw(win, RenderingHints::default()); } term.present(); } }
Structs
PassthroughBehavior | An unsegen |
Terminal | unsegen |
Traits
SlaveInputSink | Implement this trait by forwarding all received bytes to your main loop (somehow, for example
using using |