Core Library0.xAPI Reference

Choose documentation 3

latest

Current version

latest
English

Early release libtmux is released, and its APIs may still change between releases. This site's structure and URLs may change too.

Rust API

enum libtmux-rs latest

Error

An error returned by libtmux.

Source and package
Qualified name
libtmux::error::Error
Module
error
Package
libtmux
Source
crates/libtmux/src/error.rs
enum error.Error

Description#

Request-bearing variants expose a Core-scoped dispatch-request identity. The Core allocates it before validation, so an error may carry an identity even when no process was spawned. Clones of one crate::Server share the allocating Core; independently constructed servers do not share its scope. The identity is not globally unique, a process ID, an internal attempt ID, or a control-mode protocol-block ID.

Examples#

use libtmux::ErrorKind;
let guard = libtmux::test::TestServer::new().await?;
let doomed = guard.server().new_session("doomed").await?;
let mut stale = doomed.clone();
guard.server().new_session("survivor").await?;
doomed.kill().await?;
// A handle outliving its object is the normal way this fails, so
// `is_object_gone` is the branch most callers write.
let failure = stale.rename("renamed").await.expect_err("the session is gone");
assert!(failure.is_object_gone());
assert_eq!(failure.kind(), ErrorKind::ObjectGone);
guard.shutdown().await?;

Variants43#

Error variants
CasePayloadDescription
OptionScopeMismatch { option: String, requested: crate::OptionScope, declared: &'static [crate::OptionScope] } The handle's scope is not one tmux keeps this option in.
AfterEffect Not extracted tmux accepted an effectful step before a later part of the operation failed.
AmbiguousLayout { input: String, candidates: Vec<&'static str> } A saved layout value is a preset prefix that names more than one preset on the running tmux release.
CapabilityDefective { capability: &'static str, found: TmuxVersion, broken_in: ReleaseVersion, fixed_in: ReleaseVersion } tmux has this capability and the running release gets it wrong.
ClientSuspended { name: String } A client is stopped rather than gone, so listings leave it out.
CommandFailed { command: &'static str, exit_code: Option<i32>, stderr: String } tmux rejected a command that the crate requires to succeed.
ControlMode Not extracted A control-mode connection failed.
ControlModeFrameTooLarge { frame: &'static str, limit: usize } A control-mode frame grew past what the connection admits.
DecodeListing { list_command: &'static str, detail: ListingDecodeError } tmux listing output could not be decoded into typed snapshots.
DuplicateRequest { request_id: u64, command: CommandSummary } A Core-scoped dispatch-request identity is already active in this executor.
ExecutableNotFound Not extracted The configured tmux executable was not found.
ExecutorShutdown { request_id: u64, command: CommandSummary } The executor has stopped accepting requests.
InvalidCommandInput { request_id: u64, input: &'static str } A command or executable contained a byte that cannot be passed to a process.
InvalidLayout { reason: &'static str } A layout is unsafe to dispatch or cannot hold the planned panes.
InvalidPlan Not extracted A plan has a dependency that cannot be resolved before dispatch.
InvalidServerConfiguration { kind: ServerConfigurationErrorKind } A server builder value was invalid.
InvalidVersionOutput { output_len: usize } What the version check read from tmux was not a version report.
LinkGone { kind: ObjectKind, target: String } A target found nothing, which does not prove the object is gone.
NoEffect { command: &'static str, stderr: String } A creating command exited 0 without creating anything.
ObjectGone { kind: ObjectKind, id: String } A refresh could not find the object it was asked to update.
OptionRejected { kind: OptionErrorKind, detail: String } tmux would not accept an option name or value.
OptionValueRefused { option: &'static str, reason: crate::OptionValueRefusal } A typed option write that tmux's option table refuses, so nothing was sent.
OutputLimitExceeded { request_id: u64, command: CommandSummary, stream: &'static str, limit: usize } tmux produced more output than the dispatch was allowed to read.
Overloaded { request_id: u64, command: CommandSummary, in_flight: usize } The server is already running as much work of this kind as it admits.
ReadOutput { request_id: u64, command: CommandSummary, stream: &'static str, kind: io::ErrorKind } A captured output stream could not be drained.
RuntimeNested No payload A blocking runtime was driven from inside another runtime.
RuntimeUnavailable Not extracted A blocking runtime could not be created.
ServerGenerationChanged { expected: crate::ServerGeneration, found: crate::ServerGeneration } A different tmux daemon now holds this endpoint.
ServerGone { command: &'static str, kind: ServerGoneKind } The tmux server the command needed was not there.
ServerMismatch { operation: &'static str } Handles passed to one operation belong to different tmux endpoints.
ServerReplaced { request_id: u64, command: CommandSummary } The daemon was replaced between its version check and the request.
SessionExists { name: String } A session of this name already exists.
Spawn Not extracted The tmux process could not be started.
SupervisorLost { request_id: u64, command: CommandSummary } The independent supervisor ended unexpectedly after cleaning up its child.
Timeout { request_id: u64, command: CommandSummary, timeout: Duration, before_dispatch: bool } A tmux request exceeded its configured deadline.
UnreadableAccessRule { marker: String } A server-access -l line matched neither grammar tmux is known to print.
UnreadableFormatValue { format: &'static str, detail: IdParseError } tmux answered a format query with a value this crate cannot read.
UnrecognizedLayout No payload A saved layout value is not a preset name, a classic layout string, or a JSON layout.
UnrecognizedTmuxVersion { found: TmuxVersion } The daemon reported a version that names no release, such as a bare master, an openbsd-* build or 3.3a-dev.
UnsupportedCapability { capability: &'static str, needs: ReleaseVersion, found: TmuxVersion } The running tmux is too old for a capability the caller asked for.
UnsupportedTmuxVersion { found: TmuxVersion, minimum: ReleaseVersion } The detected tmux version does not meet the supported floor.
VersionProbeFailed { request_id: u64, command: CommandSummary, exit_code: Option<i32>, signal: Option<i32> } The version probe could not establish the daemon's version.
WaitChild Not extracted The direct tmux child could not be awaited.

Members7#

Common operations4#

  • found_version method Return the detected version for a minimum-version error.
  • invalid_version_output_len method Return the length of the invalid tmux -V output, when present.
  • kind method Return what this failure means for the caller.
  • minimum_version method Return the required release for a minimum-version error.

Other members3#

  • after_effect method Mark this failure as following an effect that tmux accepted.
  • is_object_gone method Report whether tmux no longer has the object the call named.
  • is_transient method Report whether retrying the same call unchanged is safe and may succeed.

Guides#

Pages that discuss Error.

Esc

Type to search.

Reference previewOpen reference