> 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 Tool Attributes

> Bitflags that modify tool-call behavior and observability.

Generated from `cargo doc --no-deps -p nemo-relay -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`.

```rust
pub struct ToolAttributes(/* private fields */);
```

Bitflags that modify tool-call behavior and observability.

## Implementations

### `impl ToolAttributes`

<pre />

#### `REMOTE`

<pre />

Marks the tool as executing out-of-process.

### `impl ToolAttributes`

<pre />

#### `empty`

<pre />

Get a flags value with all bits unset.

#### `all`

<pre />

Get a flags value with all known bits set.

#### `bits`

<pre />

Get the underlying bits value.

The returned value is exactly the bits set in this flags value.

#### `from_bits`

<pre />

Convert from a bits value.

This method will return `None` if any unknown bits are set.

#### `from_bits_truncate`

<pre />

Convert from a bits value, unsetting any unknown bits.

#### `from_bits_retain`

<pre />

Convert from a bits value exactly.

#### `from_name`

<pre />

Get a flags value with the bits of a flag with the given name set.

This method will return `None` if `name` is empty or doesn't correspond to any named flag.

#### `is_empty`

<pre />

Whether all bits in this flags value are unset.

#### `is_all`

<pre />

Whether all known bits in this flags value are set.

#### `intersects`

<pre />

Whether any set bits in a source flags value are also set in a target flags value.

#### `contains`

<pre />

Whether all set bits in a source flags value are also set in a target flags value.

#### `insert`

<pre />

The bitwise or (`|`) of the bits in two flags values.

#### `remove`

<pre />

The intersection of a source flags value with the complement of a target flags value (`&!`).

This method is not equivalent to `self & !other` when `other` has unknown bits set. `remove` won't truncate `other`, but the `!` operator will.

#### `toggle`

<pre />

The bitwise exclusive-or (`^`) of the bits in two flags values.

#### `set`

<pre />

Call `insert` when `value` is `true` or `remove` when `value` is `false`.

#### `intersection`

<pre />

The bitwise and (`&`) of the bits in two flags values.

#### `union`

<pre />

The bitwise or (`|`) of the bits in two flags values.

#### `difference`

<pre />

The intersection of a source flags value with the complement of a target flags value (`&!`).

This method is not equivalent to `self & !other` when `other` has unknown bits set. `difference` won't truncate `other`, but the `!` operator will.

#### `symmetric_difference`

<pre />

The bitwise exclusive-or (`^`) of the bits in two flags values.

#### `complement`

<pre />

The bitwise negation (`!`) of the bits in a flags value, truncating the result.

### `impl ToolAttributes`

<pre />

#### `iter`

<pre />

Yield a set of contained flags values.

Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.

#### `iter_names`

<pre />

Yield a set of contained named flags values.

This method is like `iter`, except only yields bits in contained named flags. Any unknown bits, or bits not corresponding to a contained flag will not be yielded.

## Trait Implementations

### `impl Binary for ToolAttributes`

<pre />

#### `fmt`

<pre />

### `impl BitAnd for ToolAttributes`

<pre />

#### `bitand`

<pre />

The bitwise and (`&`) of the bits in two flags values.

#### `Output`

<pre />

### `impl BitAndAssign for ToolAttributes`

<pre />

#### `bitand_assign`

<pre />

The bitwise and (`&`) of the bits in two flags values.

### `impl BitOr for ToolAttributes`

<pre />

#### `bitor`

<pre />

The bitwise or (`|`) of the bits in two flags values.

#### `Output`

<pre />

### `impl BitOrAssign for ToolAttributes`

<pre />

#### `bitor_assign`

<pre />

The bitwise or (`|`) of the bits in two flags values.

### `impl BitXor for ToolAttributes`

<pre />

#### `bitxor`

<pre />

The bitwise exclusive-or (`^`) of the bits in two flags values.

#### `Output`

<pre />

### `impl BitXorAssign for ToolAttributes`

<pre />

#### `bitxor_assign`

<pre />

The bitwise exclusive-or (`^`) of the bits in two flags values.

### `impl Clone for ToolAttributes`

<pre />

#### `clone`

<pre />

#### `clone_from`

<pre />

### `impl Debug for ToolAttributes`

<pre />

#### `fmt`

<pre />

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

<pre />

#### `deserialize`

<pre />

### `impl Extend<ToolAttributes> for ToolAttributes`

<pre />

#### `extend`

<pre />

The bitwise or (`|`) of the bits in each flags value.

#### `extend_one`

<pre />

#### `extend_reserve`

<pre />

### `impl Flags for ToolAttributes`

<pre />

#### `FLAGS`

<pre />

#### `Bits`

<pre />

#### `bits`

<pre />

#### `from_bits_retain`

<pre />

#### `empty`

<pre />

#### `all`

<pre />

#### `known_bits`

<pre />

#### `unknown_bits`

<pre />

#### `contains_unknown_bits`

<pre />

#### `from_bits`

<pre />

#### `from_bits_truncate`

<pre />

#### `from_name`

<pre />

#### `iter`

<pre />

#### `iter_names`

<pre />

#### `iter_defined_names`

<pre />

#### `is_empty`

<pre />

#### `is_all`

<pre />

#### `intersects`

<pre />

#### `contains`

<pre />

#### `truncate`

<pre />

#### `insert`

<pre />

#### `remove`

<pre />

#### `toggle`

<pre />

#### `set`

<pre />

#### `clear`

<pre />

#### `intersection`

<pre />

#### `union`

<pre />

#### `difference`

<pre />

#### `symmetric_difference`

<pre />

#### `complement`

<pre />

### `impl FromIterator<ToolAttributes> for ToolAttributes`

<pre />

#### `from_iter`

<pre />

The bitwise or (`|`) of the bits in each flags value.

### `impl Hash for ToolAttributes`

<pre />

#### `hash`

<pre />

#### `hash_slice`

<pre />

### `impl IntoIterator for ToolAttributes`

<pre />

#### `Item`

<pre />

#### `IntoIter`

<pre />

#### `into_iter`

<pre />

### `impl LowerHex for ToolAttributes`

<pre />

#### `fmt`

<pre />

### `impl Not for ToolAttributes`

<pre />

#### `not`

<pre />

The bitwise negation (`!`) of the bits in a flags value, truncating the result.

#### `Output`

<pre />

### `impl Octal for ToolAttributes`

<pre />

#### `fmt`

<pre />

### `impl PartialEq for ToolAttributes`

<pre />

#### `eq`

<pre />

#### `ne`

<pre />

### `impl Serialize for ToolAttributes`

<pre />

#### `serialize`

<pre />

### `impl Sub for ToolAttributes`

<pre />

#### `sub`

<pre />

The intersection of a source flags value with the complement of a target flags value (`&!`).

This method is not equivalent to `self & !other` when `other` has unknown bits set. `difference` won't truncate `other`, but the `!` operator will.

#### `Output`

<pre />

### `impl SubAssign for ToolAttributes`

<pre />

#### `sub_assign`

<pre />

The intersection of a source flags value with the complement of a target flags value (`&!`).

This method is not equivalent to `self & !other` when `other` has unknown bits set. `difference` won't truncate `other`, but the `!` operator will.

### `impl UpperHex for ToolAttributes`

<pre />

#### `fmt`

<pre />

### `impl Copy for ToolAttributes`

<pre />

### `impl Eq for ToolAttributes`

<pre />

### `impl StructuralPartialEq for ToolAttributes`

<pre />