# Libtmux_workspace.Execution.executor

**Workspace Manager concept example** A working example of the core library. It can change without notice.

- **Module:** Libtmux_workspace
- **Package:** libtmux-workspace
- **Language:** OCaml
- **Kind:** struct
- **Source:** https://github.com/libtmux/libtmux-ocaml/blob/205dfda49742592b479247049d186956e4a4cfe9/workspace/libtmux_workspace.mli#L185
- **Public owner:** Libtmux_workspace
- **Page:** https://libtmux.org/en/ocaml/latest/workspace/reference/libtmux_workspace-execution-executor/

```
type executor =
  {
  source: unit -> Libtmux.Source.t option ;
  capture: unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result ;
  run: 'a . 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result ;
  bootstrap: Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result ;
  inspect: unit -> unit -> observation ;
  protect: (unit -> unit) -> (unit, Libtmux.Error.t) result }
```

Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API.

## Members

### Common operations

- [`protect`](/en/ocaml/latest/workspace/reference/libtmux_workspace-execution-executor-protect/) (attribute)

### Other members

- [`bootstrap`](/en/ocaml/latest/workspace/reference/libtmux_workspace-execution-executor-bootstrap/) (attribute)
- [`capture`](/en/ocaml/latest/workspace/reference/libtmux_workspace-execution-executor-capture/) (attribute)
- [`inspect`](/en/ocaml/latest/workspace/reference/libtmux_workspace-execution-executor-inspect/) (attribute)
- [`run`](/en/ocaml/latest/workspace/reference/libtmux_workspace-execution-executor-run/) (attribute)
- [`source`](/en/ocaml/latest/workspace/reference/libtmux_workspace-execution-executor-source/) (attribute)
