# `Membrane.ComponentPath`
[🔗](https://github.com/membraneframework/membrane-core/blob/v1.3.1/lib/membrane/component_path.ex#L1)

A list consisting of following pipeline/bin/element names down the assembled pipeline.

It traces element's path inside a pipeline.
Information is being stored in a process dictionary and can be set/appended to.

# `formatted_path`

```elixir
@type formatted_path() :: String.t()
```

# `path`

```elixir
@type path() :: [String.t()]
```

A list consisting of following pipeline/bin/element names down the assembled pipeline.

It traces element's path inside a pipeline.
Information is being stored in a process dictionary and can be set/appended to.

# `format`

```elixir
@spec format(path()) :: String.t()
```

Returns formatted string of given path's names.

# `get`

```elixir
@spec get() :: path()
```

Returns currently stored path.

If path has not been set, empty list is returned.

# `get_formatted`

```elixir
@spec get_formatted() :: String.t()
```

Works the same way as `format/1` but uses currently stored path.

# `set`

```elixir
@spec set(path()) :: :ok
```

Sets current path.

If path had already existed then replaces it.

---

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