Skip to main content

Session

Struct Session 

Source
pub struct Session {
    pub id: SessionId,
    pub command: String,
    pub created_at: DateTime<Utc>,
    /* private fields */
}
Expand description

Session state

Fields§

§id: SessionId§command: String§created_at: DateTime<Utc>

Implementations§

Source§

impl Session

Source

pub fn pid(&self) -> Option<u32>

Get process ID

Source

pub fn is_running(&mut self) -> bool

Check if process is running

Source

pub fn size(&self) -> (u16, u16)

Get terminal size

Source

pub fn update(&mut self) -> Result<(), SessionError>

Process any pending PTY output and update the terminal

Source

pub fn screen_text(&self) -> String

Get screen text

Source

pub fn screen_buffer(&self) -> ScreenBuffer

Get screen buffer with style data

Source

pub fn cursor(&self) -> CursorPosition

Get cursor position

Source

pub fn detect_elements(&mut self) -> &[Element]

Detect elements and cache them

Source

pub fn elements(&self) -> &[Element]

Get cached elements

Source

pub fn find_element(&self, element_ref: &str) -> Option<&Element>

Find element by ref

Source

pub fn keystroke(&self, key: &str) -> Result<(), SessionError>

Send a keystroke

Source

pub fn keydown(&mut self, key: &str) -> Result<(), SessionError>

Hold a modifier key down

This tracks the modifier state for subsequent keystrokes. In PTY terminals, modifier keys don’t have separate “down” events - they’re combined with other keys. This method allows sequences like: keydown(“Shift”) -> click(@item1) -> click(@item2) -> keyup(“Shift”)

Source

pub fn keyup(&mut self, key: &str) -> Result<(), SessionError>

Release a held modifier key

Source

pub fn type_text(&self, text: &str) -> Result<(), SessionError>

Type text

Source

pub fn click(&mut self, element_ref: &str) -> Result<(), SessionError>

Click an element (move cursor and press Enter/Space)

Source

pub fn fill( &mut self, element_ref: &str, value: &str, ) -> Result<(), SessionError>

Fill an input with a value

Source

pub fn resize(&mut self, cols: u16, rows: u16) -> Result<(), SessionError>

Resize the terminal

Source

pub fn kill(&mut self) -> Result<(), SessionError>

Kill the session

Source

pub fn pty_write(&self, data: &[u8]) -> Result<(), SessionError>

Write raw bytes to the PTY

Source

pub fn pty_try_read( &self, buf: &mut [u8], timeout_ms: i32, ) -> Result<usize, SessionError>

Read from PTY with timeout (for attach mode)

Source

pub fn pty_reader_fd(&self) -> RawFd

Get the PTY reader file descriptor (for polling in attach mode)

Source

pub fn start_recording(&mut self)

Start recording

Source

pub fn stop_recording(&mut self) -> Vec<RecordingFrame>

Stop recording and return captured frames

Source

pub fn recording_status(&self) -> RecordingStatus

Get recording status

Source

pub fn capture_frame(&mut self)

Capture a recording frame if recording is active

Source

pub fn start_trace(&mut self)

Start tracing

Source

pub fn stop_trace(&mut self)

Stop tracing

Source

pub fn is_tracing(&self) -> bool

Check if tracing is active

Source

pub fn add_trace_entry(&mut self, action: &str, details: Option<&str>)

Add a trace entry

Source

pub fn get_trace_entries(&self, count: usize) -> Vec<TraceEntry>

Get recent trace entries

Source

pub fn add_error(&mut self, message: &str, source: &str)

Add an error entry

Source

pub fn get_errors(&self, count: usize) -> Vec<ErrorEntry>

Get recent errors

Source

pub fn error_count(&self) -> usize

Get total error count

Source

pub fn clear_errors(&mut self)

Clear all errors

Source

pub fn clear_console(&mut self)

Clear console (resets terminal screen buffer)

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.