# `Membrane.Buffer.Metric`
[🔗](https://github.com/membraneframework/membrane_core/blob/v1.3.4/lib/membrane/buffer/metric.ex#L1)

Specifies the type for demand units.

> #### Deprecated behaviour {: .warning}
> The callbacks defined here are deprecated. The metric functionality has been moved
> to the internal API of the Membrane Framework.

# `unit`

```elixir
@type unit() :: :buffers | :bytes
```

# `buffer_size_approximation`

```elixir
@callback buffer_size_approximation() :: pos_integer()
```

# `buffers_size`

```elixir
@callback buffers_size([Membrane.Buffer.t()]) :: non_neg_integer()
```

# `split_buffers`

```elixir
@callback split_buffers([Membrane.Buffer.t()], non_neg_integer()) ::
  {[Membrane.Buffer.t()], [Membrane.Buffer.t()]}
```

# `from_unit`

```elixir
@spec from_unit(unit()) :: module()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
