# plan.planner.Planner.explain

- **Module:** plan.planner.Planner
- **Package:** libtmux
- **Language:** Rust
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-rs/blob/f0e37052c232636b61d095817046e6bfc8f2ca40/crates/libtmux/src/plan/planner.rs#L195
- **Page:** https://libtmux.org/en/rs/latest/reference/plan-planner-planner-explain/

```
plan.planner.Planner.explain(self, plan: &Plan) -> Vec<(Step, StepReason)>
```

Group a plan and say why each invocation is separate.

## Example

```rust
use libtmux::plan::{CapturePane, Plan, Planner, StepReason};
use libtmux::PaneId;

let pane: PaneId = "%1".parse()?;
let mut plan = Plan::new();
plan.add(CapturePane::new(pane));

let explained = Planner::Folding.explain(&plan);
assert_eq!(explained[0].1, StepReason::ReadsOutput);
```
