> This page is for NeMo Relay, version dev.
> For other versions, use one of these documentation indexes:
> - Latest (v0.11.1) (default): https://docs.nvidia.com/nemo/relay/latest/llms.txt
> - dev: https://docs.nvidia.com/nemo/relay/dev/llms.txt
> - v0.11.1: https://docs.nvidia.com/nemo/relay/v0.11.1/llms.txt
> - v0.10.4: https://docs.nvidia.com/nemo/relay/v0.10.4/llms.txt
> - v0.9.4: https://docs.nvidia.com/nemo/relay/v0.9.4/llms.txt
> - v0.8.4: https://docs.nvidia.com/nemo/relay/v0.8.4/llms.txt
> - v0.7.3: https://docs.nvidia.com/nemo/relay/v0.7.3/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/relay/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server.

# Struct Propagation Context

> Versioned, transport-neutral causal context for crossing a Relay boundary.

Generated from `cargo doc --no-deps -p nemo-relay-builtins -p nemo-relay-diagnostics -p nemo-relay-logging -p nemo-relay-plugin-host -p nemo-relay-codecs -p nemo-relay -p nemo-relay-runtime -p nemo-relay-model-pricing -p nemo-relay-resource-metrics -p nemo-relay-observability -p nemo-relay-adaptive -p nemo-relay-pii-redaction -p nemo-relay-ffi -p nemo-relay-types -p nemo-relay-plugin -p nemo-relay-worker-proto -p nemo-relay-worker`.

<pre />

Versioned, transport-neutral causal context for crossing a Relay boundary.

Applications are responsible for serializing, transporting, authenticating, and trusting this value. It intentionally contains only Relay identifiers; OpenTelemetry `traceparent` and `tracestate` are optional transport fields. A valid pair continues an upstream OpenTelemetry trace while Relay UUIDs continue to own Relay event parentage.

## Fields

### `version: u16`

Wire-format version. Version 1 is the only currently supported value.

### `root_uuid: Option<Uuid>`

Stable session root when the sending application knows one. When this root and a valid `traceparent` are both absent, the first local OpenTelemetry span after import starts a new trace.

### `parent_uuid: Uuid`

Immediate Relay event or scope that caused the boundary crossing.

### `traceparent: Option<String>`

Optional W3C traceparent header for the remote OpenTelemetry parent.

### `tracestate: Option<String>`

Optional W3C tracestate header associated with `traceparent`.

## Implementations

### `impl PropagationContext`

<pre />

#### `VERSION`

<pre />

The current wire-format version.

#### `to_json`

<pre />

Serialize this validated context for application-managed transport.

#### `to_traceparent`

<pre />

Convert this context to a W3C `traceparent` header value.

A valid imported W3C context is forwarded even without a Relay root; otherwise a Relay root is required to derive a trace ID.

#### `from_json`

<pre />

Deserialize and validate a context received from application-managed transport.

#### `validate`

<pre />

Validate a context received from an untrusted transport.

#### `normalized`

<pre />

Discard invalid W3C headers while retaining valid Relay identifiers.

## Trait Implementations

### `impl Clone for PropagationContext`

<pre />

#### `clone`

<pre />

#### `clone_from`

<pre />

### `impl Debug for PropagationContext`

<pre />

#### `fmt`

<pre />

### `impl<'de> Deserialize<'de> for PropagationContext`

<pre />

#### `deserialize`

<pre />

### `impl PartialEq for PropagationContext`

<pre />

#### `eq`

<pre />

#### `ne`

<pre />

### `impl Serialize for PropagationContext`

<pre />

#### `serialize`

<pre />

### `impl Eq for PropagationContext`

<pre />

### `impl StructuralPartialEq for PropagationContext`

<pre />