---
title: "ClikaRT::spec::InputSpecs"
sidebar_label: "InputSpecs"
description: "The full input-shape specification: named-dim bindings + one or more per-input profiles."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--struct">struct</span>

**Header:** `ClikaRT/graph/input_specs.h`

The full input-shape specification: named-dim bindings + one or more per-input profiles. Every profile is validated against the model; profile 0's `opt` shapes are what the compiled graph is specialized to (additional profiles are recorded, not engine-selected; execution is eager, binding real shapes at run time).

## Member functions

### empty() {#empty}

<div class="api-signature">

`bool` **`empty`**() `const noexcept`

</div>

True when no named-dim binding and no profile entry is present.

<div class="api-declared">

Declared in `ClikaRT/graph/input_specs.h`, line 216

</div>

### bind() {#bind}

<div class="api-signature">

[`InputSpecs`](./InputSpecs.md)`&` **`bind`**([`Dim`](./Dim.md) `dim`)

</div>

Bind a named dimension. Chains: `specs.bind(`[`Dim`](./Dim.md)`("batch_size", 1)).`[`bind`](./InputSpecs.md#bind)`(`[`Dim`](./Dim.md)`("sequence_length", 128))`.

<div class="api-declared">

Declared in `ClikaRT/graph/input_specs.h`, line 226

</div>

### add() {#add}

<div class="api-signature">

[`InputSpecs`](./InputSpecs.md)`&` **`add`**([`InputSpec`](./InputSpec.md) `spec`)

</div>

Append [`spec`](./index.md) to profile 0 (created if absent). Chains: `specs.add({"input_ids", {1, 128}}).`[`add`](./InputSpecs.md#add)`({"attention_mask", {1, 128}})`.

<div class="api-declared">

Declared in `ClikaRT/graph/input_specs.h`, line 233

</div>

### merge() {#merge}

<div class="api-signature">

[`InputSpecs`](./InputSpecs.md)`&` **`merge`**(`const` [`InputSpecs`](./InputSpecs.md)`&` `other`)

</div>

Merge another spec set: named-dim bindings append; profile i of `other` appends to profile i here (created as needed). The merge tool for combining a hand-written set with a derived one (`generate_kv_input_specs`).

<div class="api-declared">

Declared in `ClikaRT/graph/input_specs.h`, line 243

</div>

## Data members

### dims {#dims}

<div class="api-signature">

`std::vector<`[`Dim`](./Dim.md)`>` **`dims`**

</div>

Named-dim bindings: each resolves EVERY input dim declared with that name (see [`Dim`](./Dim.md)). The most compact road for models whose exporter named the dynamic dims. A binding naming a dim the model does not declare is an error (it would silently do nothing).

<div class="api-declared">

Declared in `ClikaRT/graph/input_specs.h`, line 212

</div>

### profiles {#profiles}

<div class="api-signature">

`std::vector<`[`InputProfile`](./InputProfile.md)`>` **`profiles`**

</div>

per-input profiles; profile 0 drives specialization.

<div class="api-declared">

Declared in `ClikaRT/graph/input_specs.h`, line 213

</div>
