# `Benchee.Suite`
[🔗](https://github.com/bencheeorg/benchee/blob/1.5.1/lib/benchee/suite.ex#L1)

Main Benchee data structure that aggregates the results from every step.

Different layers of the benchmarking rely on different data being present
here. For instance for `Benchee.Statistics.statistics/1` to work the
`run_time_data` key of each scenario needs to be filled with the samples
collected by `Benchee.Benchmark.collect/1`.

Formatters can then use the data to display all of the results and the
configuration.

# `key`

```elixir
@type key() :: String.t() | atom()
```

Valid key for either input or benchmarking job names.

# `t`

```elixir
@type t() :: %Benchee.Suite{
  configuration: Benchee.Configuration.t() | nil,
  scenarios: [] | [Benchee.Scenario.t()],
  system: Benchee.System.t() | nil
}
```

The main suite consisting of the configuration data, information about the system and most
importantly a list of `t:Benchee.Scenario.t/0`.

