# inspect::Hierarchy

## Summary

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a4a6a3bd62bbda239860ce4f70371ab7f()` ||
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1aebac45c2056945b2d0182c2baa8da8f7(https://fuchsia.dev/reference/cpp/class/inspect/node-value#classinspect_1_1_node_value node, std::vector< https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy > children)` ||
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a03c926815751caa9d96de03534573782(https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy &&)` ||
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1ae02edddf4258faa9cf043815dc5b2b1f(const https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy &)` ||

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a3ca85ad6afc1b1cd0c652b7adfe7083b(const std::vector< std::string > & path) const ` | `const https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy *` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1aa7d8401e10547a52296cf2181f7438d9()` | `void` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1ada6131a2e0975370c5802912fb338f53(https://fuchsia.dev/reference/cpp/class/fit/function-impl#classfit_1_1function__impl< bool(const std::vector< std::string > &, https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy *)> callback)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a89bcddc79ff222bbc9847a563b0ca7bf(https://fuchsia.dev/reference/cpp/class/fit/function-impl#classfit_1_1function__impl< bool(const std::vector< std::string > &, const https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy *)> callback) const ` | `void` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1acf17bf519b61fad3ff242ef41102457e(https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy child)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1acbbb50a1963e2022122284552234acab(MissingValueReason reason, std::string name)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1ae4950031fbc0623882e5f5d1eeb5ab67() const ` | `const std::vector< https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy > &` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a86eb2861a3653cc43f218c71748edbc6() const ` | `const std::vector< https://fuchsia.dev/reference/cpp/struct/inspect/missing-value#structinspect_1_1_missing_value > &` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a2c4f8dc481e7ff01c2c208ea9b229aa2() const ` | `const std::string &` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a48403d4d63bbad6c73665eac6da79973() const ` | `const https://fuchsia.dev/reference/cpp/class/inspect/node-value#classinspect_1_1_node_value &` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a8f7ec8b1bcd6846106a5a8ea04a8b1f9()` | `https://fuchsia.dev/reference/cpp/class/inspect/node-value#classinspect_1_1_node_value *` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1a4964cf4df237a0c399da9a6f8d02b67d(https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy &&)=default` | `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy &` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1ae98a0fec52b93b3365c60ffed3221934(const https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy &)=delete` | `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy &` |
| `https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy_1ae4273b19661f651d7a7cf99e38e8eb5a()` | `std::vector< https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy >` |

## Public functions

### GetByPath

```c++
const Hierarchy * GetByPath(
  const std::vector< std::string > & path
) const 
```

### Hierarchy

```c++
 Hierarchy()=default
```

### Hierarchy

```c++
 Hierarchy(
  NodeValue node,
  std::vector< Hierarchy > children
)
```

### Hierarchy

```c++
 Hierarchy(
  Hierarchy &&
)=default
```

### Hierarchy

```c++
 Hierarchy(
  const Hierarchy &
)=delete
```

### Sort

```c++
void Sort()
```

### Visit

```c++
void Visit(
  fit::function< bool(const std::vector< std::string > &, Hierarchy *)> callback
)
```

### Visit

```c++
void Visit(
  fit::function< bool(const std::vector< std::string > &, const Hierarchy *)> callback
) const 
```

### add_child

```c++
void add_child(
  Hierarchy child
)
```

### add_missing_value

```c++
void add_missing_value(
  MissingValueReason reason,
  std::string name
)
```

### children

```c++
const std::vector< Hierarchy > & children() const 
```

### missing_values

```c++
const std::vector< MissingValue > & missing_values() const 
```

### name

```c++
const std::string & name() const 
```

### node

```c++
const NodeValue & node() const 
```

### node_ptr

```c++
NodeValue * node_ptr()
```

### operator=

```c++
Hierarchy & operator=(
  Hierarchy &&
)=default
```

### operator=

```c++
Hierarchy & operator=(
  const Hierarchy &
)=delete
```

### take_children

```c++
std::vector< Hierarchy > take_children()
```