> 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 Sorted Registry

> A named registry that maintains a sorted order by priority.

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 />

A named registry that maintains a sorted order by priority.

Items are stored by their embedded [`RegistryEntry::name`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/trait-registryentry) value and sorted by [`RegistryEntry::priority`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/trait-registryentry). The sort is performed eagerly: every [`register`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/struct-sortedregistry) or [`deregister`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/struct-sortedregistry) call re-sorts immediately, so [`sorted_values`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/struct-sortedregistry) is a read-only lookup.

Clones share immutable storage. A successful mutation copies shared storage, leaving snapshots unchanged; failed mutations keep sharing the original storage.

## Priority ordering

Entries are sorted in **ascending** priority order (lower numbers run first). This means a guardrail with priority `1` executes before one with priority `10`.

## Uniqueness

Names must be unique within a registry. Attempting to [`register`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/struct-sortedregistry) a duplicate name returns an error. Use [`deregister`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/struct-sortedregistry) first to remove an existing entry before re-registering.

## Implementations

### `impl<T: RegistryEntry> SortedRegistry<T>`

<pre />

#### `new`

<pre />

Create a new empty registry.

##### Returns

A new empty [`SortedRegistry`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/struct-sortedregistry) with no entries.

#### `register`

<pre />

Register a new entry under its embedded name.

##### Parameters

* `entry`: Value to store in the registry.

##### Returns

`Ok(())` when the entry was inserted.

##### Errors

Returns `Err(String)` when `name` is already present in the registry.

##### Notes

Successful registration eagerly re-sorts the cached priority order.

#### `deregister`

<pre />

Deregister an entry by name.

##### Parameters

* `name`: Name of the entry to remove.

##### Returns

`true` when an entry was removed and `false` when `name` was not present.

##### Notes

Successful removal eagerly re-sorts the cached priority order.

#### `sorted_values`

<pre />

Return entries sorted by priority (ascending).

This is a read-only operation - the sort order is maintained eagerly on every [`register`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/struct-sortedregistry) / [`deregister`](/reference/api/rust-library-reference/nemo-relay-runtime/registry/struct-sortedregistry) call.

##### Returns

Shared references ordered from lowest priority to highest priority, without allocating an intermediate collection.

#### `is_empty`

<pre />

Whether this registry contains no entries, without scanning retained storage.

#### `values`

<pre />

Return every entry without imposing priority order.

## Trait Implementations

### `impl<T: Clone + RegistryEntry> Clone for SortedRegistry<T>`

<pre />

#### `clone`

<pre />

#### `clone_from`

<pre />

### `impl<T: RegistryEntry> Default for SortedRegistry<T>`

<pre />

#### `default`

<pre />