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

session.Session.environment_all

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

View as Markdown

Module
session
Declared in
Session
Package
libtmux
Source
crates/libtmux/src/session/settings.rs
environment_all ( self ) → Result<BTreeMap<String, EnvironmentEntry>, Error>
method [source]
method [source]
environment_all

Read the session's whole environment.

tmux distinguishes a variable it holds a value for from one it has marked for *removal*, so that a process started in the session does not inherit it. Both appear in the listing, and EnvironmentEntry keeps them apart, exactly as Self::environment does for a single name.

Costs one tmux command. The listing is read in tmux's shell form, which escapes each value, so a value containing a newline or an = is not mistaken for the next variable. Each value reads exactly as Self::environment reads it. Names are not escaped: a removed name holding ; and a newline lists exactly as two removed names do, and reads as them.

Errors

Returns an error when tmux cannot be reached or refuses the listing, and Error::DecodeListing when the listing is not in the shape tmux prints. An empty map means the session holds nothing, never that the listing failed.

Examples

use libtmux::EnvironmentEntry;
let guard = libtmux::test::TestServer::new().await?;
let session = guard.server().new_session("env").await?;
session.set_environment("EDITOR", "vi").await?;
session.hide_environment("PAGER").await?;
let environment = session.environment_all().await?;
assert!(matches!(
environment.get("EDITOR"),
Some(EnvironmentEntry::Set(value)) if value.as_bytes() == b"vi",
));
assert_eq!(environment.get("PAGER"), Some(&EnvironmentEntry::Removed));
guard.shutdown().await?;

Discussed in Environment

0 declared, 0 inherited

Esc

Type to search.