# server.settings.Server.options

- **Module:** server.settings.Server
- **Package:** libtmux
- **Language:** Rust
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-rs/blob/8a648c0894dfffc9303583f753b6c8ae01f2fe76/crates/libtmux/src/server/settings.rs#L96
- **Page:** https://libtmux.org/reference/rs/server-settings-server-options/

```
server.settings.Server.options(self) -> Result<BTreeMap<String, OptionValue>, Error>
```

Read every option set at this server, decoded by its declared kind.

Costs one tmux command per option, because each value is read as the
bytes tmux stored rather than the form it lists them in. Use
[`Self::option_names`] when only the names are wanted, and
[`Self::typed_option`] for one value.

An array option keeps the indexed name tmux lists it under, so
`command-alias[0]` and `command-alias[1]` are separate entries.

Reports what is set *at this scope*, not what the object resolves to.
A session that has set nothing of its own answers empty even though
every option still has an effective value it inherits.

# Errors

Returns an error when tmux cannot be reached or refuses the listing.
An empty map means nothing is set, never that the listing failed.

## Example

```rust
let guard = libtmux::test::TestServer::new().await?;
let server = guard.server();

server.set_option("buffer-limit", "42").await?;
let options = server.options().await?;
assert!(options.contains_key("buffer-limit"));

guard.shutdown().await?;
```
