---
title: "ClikaRT::graph::WalkOptions"
sidebar_label: "WalkOptions"
description: "The bounds and filters of a walk. A walk is breadth-first from its start: each node is reached once, at its fewest edges from the start."
---

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

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

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

The bounds and filters of a walk. A walk is breadth-first from its start: each node is reached once, at its fewest edges from the start.

## Data members

### direction {#direction}

<div class="api-signature">

[`WalkDirection`](./index.md#WalkDirection) **`direction`** `=` [`WalkDirection::Forward`](./index.md#WalkDirection)

</div>

Which way the walk crosses edges.

<div class="api-declared">

Declared in `ClikaRT/graph/query.h`, line 80

</div>

### max\_depth {#max_depth}

<div class="api-signature">

`std::optional<std::size_t>` **`max_depth`**

</div>

The most edges between the start and a node the walk reaches: 0 reaches the start alone. Empty: no limit.

<div class="api-declared">

Declared in `ClikaRT/graph/query.h`, line 83

</div>

### max\_nodes {#max_nodes}

<div class="api-signature">

`std::optional<std::size_t>` **`max_nodes`**

</div>

The most nodes the walk may reach, the start included. A walk that would reach one more fails with [`Status::InvalidArgument`](../../index.md#Status) naming this budget; it never returns a cut answer. Empty: no budget.

<div class="api-declared">

Declared in `ClikaRT/graph/query.h`, line 87

</div>

### stop\_at {#stop_at}

<div class="api-signature">

[`NodePredicate`](./index.md#NodePredicate) **`stop_at`**

</div>

A node this accepts is reached but not gone past (the start included), so a walk can end a region at each node of a kind. Empty: none.

<div class="api-declared">

Declared in `ClikaRT/graph/query.h`, line 90

</div>

### edge\_filter {#edge_filter}

<div class="api-signature">

[`EdgePredicate`](./index.md#EdgePredicate) **`edge_filter`**

</div>

The walk crosses only the edges this accepts. Empty: every edge.

<div class="api-declared">

Declared in `ClikaRT/graph/query.h`, line 92

</div>

### skip\_shape\_lane {#skip_shape_lane}

<div class="api-signature">

`bool` **`skip_shape_lane`** `= false`

</div>

Cross no edge that carries shape or index arithmetic (the shape computations a graph optimization marks), so the nodes only such edges reach are left out. A graph that was not optimized carries no marks.

<div class="api-declared">

Declared in `ClikaRT/graph/query.h`, line 96

</div>
