Skip to main content

Session

Struct Session 

Source
pub struct Session {
    pub terminal: Terminal,
    /* private fields */
}
Expand description

A persistent terminal session.

Tracks connected clients, buffers recent output for replay on reconnect, and detects when the session becomes orphaned.

Fields§

§terminal: Terminal

Implementations§

Source§

impl Session

Source

pub fn new( terminal: Terminal, output_rx: Receiver<Vec<u8>>, scrollback_limit: usize, orphan_timeout: Duration, ) -> Arc<Self>

Create a new session.

orphan_timeout controls how long a session with no attached clients survives before the reaper removes it (default: DEFAULT_ORPHAN_TIMEOUT).

Source

pub fn id(&self) -> &str

Session identifier.

Source

pub fn attach(&self) -> AttachResult

Attach a client: increment the counter, subscribe to live output, and return the scrollback event log. The subscription and snapshot are taken under the same lock so no output is lost.

Source

pub fn set_window_size(&self, rows: u16, cols: u16)

Update the current PTY window size (broadcast to viewers) and record the resize in the scrollback log so replay clients see it too.

Source

pub fn detach(&self)

Detach a client. When the last client detaches, the orphan timer starts.

Source

pub fn client_count(&self) -> usize

Number of currently attached clients.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more