# `Snodo.TraceContext`
[🔗](https://github.com/joshrotenberg/snodo/blob/v0.4.1/lib/snodo/trace_context.ex#L1)

Extracts bounded W3C trace context from request `_meta` without changing it.

Invalid values are omitted from the extracted context. `tracestate` is only
used with a valid `traceparent`, as required by W3C Trace Context. Applications
that need the original metadata can read `Snodo.Context.metadata`.

# `t`

```elixir
@type t() :: %{optional(String.t()) =&gt; String.t()}
```

# `client_metadata!`

```elixir
@spec client_metadata!(term()) :: map()
```

Validates the named client option and returns protocol-native metadata.

# `from_metadata`

```elixir
@spec from_metadata(term()) :: t()
```

Returns valid trace fields from a request metadata map.

---

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