# inspect Namespace

# inspect

## Summary

| ### Enumerations ||
|---|---|
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a0404af53b16d8fc185449f24ed2a9e55{ https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a0404af53b16d8fc185449f24ed2a9e55a87e664a10c53376737024444ba714bba, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a0404af53b16d8fc185449f24ed2a9e55a3c7eac2461e6eab33cb68d53372fc99c, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a0404af53b16d8fc185449f24ed2a9e55a571fe7fd6ffb3dca4aec8a59065d182c }` | enum |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a670139f1dc13b1734621e16acc87f4cb{ https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a670139f1dc13b1734621e16acc87f4cbacfd089efcafce5c525526ccfa1b0fa33 = 0, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a670139f1dc13b1734621e16acc87f4cbaf4e44c151d7e6d1894ed3df9de48aec1 = 1 }` | enum |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a9ea20cd66a0f556968bfed04e41b7ff6{ https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a9ea20cd66a0f556968bfed04e41b7ff6a1d1ba11927a913ec4201ee44eb2d429e = 1, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a9ea20cd66a0f556968bfed04e41b7ff6aa4211c9b41d5f02f4095e8f1fa4fecf2 = 2, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a9ea20cd66a0f556968bfed04e41b7ff6a956ce3ee902c3bc8015409fcd32029ee = 3 }` | enum |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90{ https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90ab10913c938482a8aa4ba85b7a1116cb4 = 0, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90a355088fbd6ac81f051e0bd6ede5ab8e0 = 1, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90a66ffbc99f2d9ad41461a22821b14f8ec = 2, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90a7fb3efa35444cd88d5a31dc125ca9c28 = 3, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90acb59a0837f5db07e5565a0765d5af76c = 4, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90ade7e22ae6758729343eac120fbdc3700 = 5, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90a3b0c09d2d3b86da2330c195889798d72 = 6, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90a302e56d566a2561033b27c13680ea4b2 = 7, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90a507438f0fd4ca4bceea729b226535e5b = 8, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90a18268c9f691ba5a5f650049d9d0da8dc = 9, https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2f6b978ad046c0ec9892443e675bbf90ab77ee53359ad606360288eaba24142bf = 10 }` | enum |

| ### Typedefs ||
|---|---|
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a55f82c6eed7ddc8adbd7356a4f8837ed` | using `https://fuchsia.dev/reference/cpp/class/fit/function-impl#classfit_1_1function__impl< void(https://fuchsia.dev/reference/cpp/class/inspect/node#classinspect_1_1_node &)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2a428631c2434e51ee6fad4076b0c4ba` | using `internal::Property< bool >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1add1b8d6d3c59e7a3ccaece2a77dc0830` | using `internal::Value< bool, static_cast< size_t >(PropertyFormat::kBool)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a202579ccbec9f9e478c4593d9fe1a94e` | using `internal::Property< std::vector< uint8_t >>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a2d7876d905d4436b8f355476e11436a8` | using `internal::Value< std::vector< uint8_t >, static_cast< size_t >(PropertyFormat::kBytes)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a1eced5d08fa978aedd213c30c690b24c` | using `internal::ArrayValue< double >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1ab3c44179f27fed419b4f048cf8bc2887` | using `internal::Array< double, static_cast< size_t >(PropertyFormat::kDoubleArray)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a3b7c12d0e46f1497dbb11e8683b0ccac` | using `internal::NumericProperty< double >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1adb0d9c430dbf95941a3defc6955a1f69` | using `internal::Value< double, static_cast< size_t >(PropertyFormat::kDouble)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1ad996e1a7890b7527c5bff6263030973d` | using `internal::ExponentialHistogram< double >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a4904aed9cff9f95e8f3fdafa56782a3f` | using `internal::ExponentialHistogram< int64_t >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1af12c3c1b6382ada52db540aac538de0c` | using `internal::ExponentialHistogram< uint64_t >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a84e42d5c5f17b75886a4e65c808ca291` | using `internal::ArrayValue< int64_t >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a975eefd48f1e2dfd962b594d3177b8bf` | using `internal::Array< int64_t, static_cast< size_t >(PropertyFormat::kIntArray)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1abecd40d3ea121e74a1d9dbb17ade56ce` | using `internal::NumericProperty< int64_t >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a05f82785aed6e7dac95fe3726c3e8731` | using `internal::Value< int64_t, static_cast< size_t >(PropertyFormat::kInt)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a39f095f4b6f43bd9ee3b71895c8e5633` | using `https://fuchsia.dev/reference/cpp/class/fit/function-impl#classfit_1_1function__impl< https://fuchsia.dev/reference/cpp/class/fpromise/promise-impl#classfpromise_1_1promise__impl< https://fuchsia.dev/reference/cpp/class/inspect/inspector#classinspect_1_1_inspector >()>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a9a4e874c40da1bfb5df0a0a2ef298e36` | using `internal::LinearHistogram< double >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1ab334a36f5c5d716ddd990c5e3982f193` | using `internal::LinearHistogram< int64_t >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1aab1c45ddc5f7671df4440dd5faf69edb` | using `internal::LinearHistogram< uint64_t >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a1b8d4f9c0aa8b2462e81eec06d61e577` | using `internal::NamedValue< std::variant< std::monostate, IntPropertyValue, UintPropertyValue, DoublePropertyValue, IntArrayValue, UintArrayValue, DoubleArrayValue, StringPropertyValue, ByteVectorPropertyValue, BoolPropertyValue, StringArrayValue >, PropertyFormat >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a3c9b1bbf8d2e72c646304c3004a9801e` | using `https://fuchsia.dev/reference/cpp/class/fit/function-impl#classfit_1_1function__impl< void(https://fuchsia.dev/reference/cpp/class/inspect/node#classinspect_1_1_node &)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a4e504b7a04dfc8e87b714ca8e3e3b399` | using `internal::ArrayValue< std::string_view >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a96933236a781f3c4f2a4aa41e748b037` | using `internal::Array< std::string, static_cast< size_t >(PropertyFormat::kStringArray)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1afd4ef975ad6a3949c4f9da0d1240bae0` | using `internal::Property< std::string >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1ab9961c60798bfc6cc8af9379319ec4b4` | using `internal::Value< std::string, static_cast< size_t >(PropertyFormat::kString)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1abc14d6e00fd72d5dd632deafedf11c2c` | using `internal::ArrayValue< uint64_t >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1af8612e06a5a558e1e5bf99ee389769ff` | using `internal::Array< uint64_t, static_cast< size_t >(PropertyFormat::kUintArray)>` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1add45599ab3a3ca8f520937a1dab260f3` | using `internal::NumericProperty< uint64_t >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a0d5c70d84e5d2871b06549993c449e46` | using `internal::Value< uint64_t, static_cast< size_t >(PropertyFormat::kUint)>` |

| ### Functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1aa56e41e4b43911ee500a89579ab1eb61(async_dispatcher_t *dispatcher, https://fuchsia.dev/reference/cpp/class/zx/vmo#classzx_1_1vmo vmo, https://fuchsia.dev/reference/cpp/struct/inspect/vmo-options#structinspect_1_1_vmo_options opts)` | `void` Publish a VMO according to `opts`. |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1af776a10a3911e7f191b764b3fa4ae018(std::vector< uint8_t > buffer)` | `https://fuchsia.dev/reference/cpp/class/fpromise/result#classfpromise_1_1result< https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a02cdf2fc129f4392ea3fdf4098131612(https://fuchsia.dev/reference/cpp/class/inspect/inspector#classinspect_1_1_inspector insp)` | `https://fuchsia.dev/reference/cpp/class/fpromise/promise-impl#classfpromise_1_1promise__impl< https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1afe7e1f444dd2461f86f70c686b7d4dbf(https://fuchsia.dev/reference/cpp/class/inspect/snapshot#classinspect_1_1_snapshot snapshot)` | `https://fuchsia.dev/reference/cpp/class/fpromise/result#classfpromise_1_1result< https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1ac30fbea7d90f6e53d9101c3169ed5d8b(const https://fuchsia.dev/reference/cpp/class/zx/vmo#classzx_1_1vmo & vmo)` | `https://fuchsia.dev/reference/cpp/class/fpromise/result#classfpromise_1_1result< https://fuchsia.dev/reference/cpp/class/inspect/hierarchy#classinspect_1_1_hierarchy >` |
| `https://fuchsia.dev/reference/cpp/namespace/inspect#namespaceinspect_1a8a839c1eaccd2a743c5c81f9e5394070(1, 26, "strings are interned automatically: https://fxbug.dev/300003477")` | `class https://fuchsia.dev/reference/cpp/class/inspect/string-reference#classinspect_1_1_string_reference` |

| ### Classes ||
|---|---|
| [inspect::BackingBuffer](https://fuchsia.dev/reference/cpp/class/inspect/backing-buffer) |   |
| [inspect::BoundedListNode](https://fuchsia.dev/reference/cpp/class/inspect/bounded-list-node) |   |
| [inspect::ComponentInspector](https://fuchsia.dev/reference/cpp/class/inspect/component-inspector) | [ComponentInspector](https://fuchsia.dev/reference/cpp/class/inspect/component-inspector#classinspect_1_1_component_inspector) is an instance of an [Inspector](https://fuchsia.dev/reference/cpp/class/inspect/inspector#classinspect_1_1_inspector) that serves its Inspect data via the fuchsia.inspect.Tree protocol. |
| [inspect::Hierarchy](https://fuchsia.dev/reference/cpp/class/inspect/hierarchy) |   |
| [inspect::Inspector](https://fuchsia.dev/reference/cpp/class/inspect/inspector) |   |
| [inspect::LazyNode](https://fuchsia.dev/reference/cpp/class/inspect/lazy-node) |   |
| [inspect::Link](https://fuchsia.dev/reference/cpp/class/inspect/link) |   |
| [inspect::LinkValue](https://fuchsia.dev/reference/cpp/class/inspect/link-value) |   |
| [inspect::Node](https://fuchsia.dev/reference/cpp/class/inspect/node) |   |
| [inspect::NodeHealth](https://fuchsia.dev/reference/cpp/class/inspect/node-health) |   |
| [inspect::NodeValue](https://fuchsia.dev/reference/cpp/class/inspect/node-value) |   |
| [inspect::Snapshot](https://fuchsia.dev/reference/cpp/class/inspect/snapshot) |   |
| [inspect::StringReference](https://fuchsia.dev/reference/cpp/class/inspect/string-reference) | [StringReference](https://fuchsia.dev/reference/cpp/class/inspect/string-reference#classinspect_1_1_string_reference) is deprecated. |
| [inspect::TreeNameIterator](https://fuchsia.dev/reference/cpp/class/inspect/tree-name-iterator) |   |
| [inspect::TreeServer](https://fuchsia.dev/reference/cpp/class/inspect/tree-server) | [TreeServer](https://fuchsia.dev/reference/cpp/class/inspect/tree-server#classinspect_1_1_tree_server) is an implementation of the fuchsia.inspect.Tree protocol. |
| [inspect::TreeServerSendPreference](https://fuchsia.dev/reference/cpp/class/inspect/tree-server-send-preference) | [TreeServerSendPreference](https://fuchsia.dev/reference/cpp/class/inspect/tree-server-send-preference#classinspect_1_1_tree_server_send_preference) describes how the Inspect VMO should be served. |
| [inspect::ValueList](https://fuchsia.dev/reference/cpp/class/inspect/value-list) |   |

| ### Structs ||
|---|---|
| [inspect::InspectSettings](https://fuchsia.dev/reference/cpp/struct/inspect/inspect-settings) |   |
| [inspect::InspectStats](https://fuchsia.dev/reference/cpp/struct/inspect/inspect-stats) |   |
| [inspect::MissingValue](https://fuchsia.dev/reference/cpp/struct/inspect/missing-value) |   |
| [inspect::PublishOptions](https://fuchsia.dev/reference/cpp/struct/inspect/publish-options) | Options for a published `https://fuchsia.dev/reference/cpp/class/inspect/component-inspector#classinspect_1_1_component_inspector`. |
| [inspect::TreeHandlerSettings](https://fuchsia.dev/reference/cpp/struct/inspect/tree-handler-settings) |   |
| [inspect::VmoOptions](https://fuchsia.dev/reference/cpp/struct/inspect/vmo-options) | Options for publishing a VMO. |

| ### Namespaces ||
|---|---|
| [inspect::testing](https://fuchsia.dev/reference/cpp/namespace/inspect/testing) |   |

## Enumerations

### ArrayDisplayFormat

```c++
 ArrayDisplayFormat
```

| Properties ||
|---|---|
| `kExponentialHistogram` |   |
| `kFlat` |   |
| `kLinearHistogram` |   |

### LinkDisposition

```c++
 LinkDisposition
```

| Properties ||
|---|---|
| `kChild` |   |
| `kInline` |   |

### MissingValueReason

```c++
 MissingValueReason
```

| Properties ||
|---|---|
| `kLinkHierarchyParseFailure` |   |
| `kLinkInvalid` |   |
| `kLinkNotFound` |   |

### PropertyFormat

```c++
 PropertyFormat
```

| Properties ||
|---|---|
| `kBool` |   |
| `kBytes` |   |
| `kDouble` |   |
| `kDoubleArray` |   |
| `kInt` |   |
| `kIntArray` |   |
| `kInvalid` |   |
| `kString` |   |
| `kStringArray` |   |
| `kUint` |   |
| `kUintArray` |   |

## Typedefs

### AtomicUpdateCallbackFn

```c++
fit::function< void(Node &)> AtomicUpdateCallbackFn
```

### BoolProperty

```c++
internal::Property< bool > BoolProperty
```

### BoolPropertyValue

```c++
internal::Value< bool, static_cast< size_t >(PropertyFormat::kBool)> BoolPropertyValue
```

### ByteVectorProperty

```c++
internal::Property< std::vector< uint8_t >> ByteVectorProperty
```

### ByteVectorPropertyValue

```c++
internal::Value< std::vector< uint8_t >, static_cast< size_t >(PropertyFormat::kBytes)> ByteVectorPropertyValue
```

### DoubleArray

```c++
internal::ArrayValue< double > DoubleArray
```

### DoubleArrayValue

```c++
internal::Array< double, static_cast< size_t >(PropertyFormat::kDoubleArray)> DoubleArrayValue
```

### DoubleProperty

```c++
internal::NumericProperty< double > DoubleProperty
```

### DoublePropertyValue

```c++
internal::Value< double, static_cast< size_t >(PropertyFormat::kDouble)> DoublePropertyValue
```

### ExponentialDoubleHistogram

```c++
internal::ExponentialHistogram< double > ExponentialDoubleHistogram
```

### ExponentialIntHistogram

```c++
internal::ExponentialHistogram< int64_t > ExponentialIntHistogram
```

### ExponentialUintHistogram

```c++
internal::ExponentialHistogram< uint64_t > ExponentialUintHistogram
```

### IntArray

```c++
internal::ArrayValue< int64_t > IntArray
```

### IntArrayValue

```c++
internal::Array< int64_t, static_cast< size_t >(PropertyFormat::kIntArray)> IntArrayValue
```

### IntProperty

```c++
internal::NumericProperty< int64_t > IntProperty
```

### IntPropertyValue

```c++
internal::Value< int64_t, static_cast< size_t >(PropertyFormat::kInt)> IntPropertyValue
```

### LazyNodeCallbackFn

```c++
fit::function< fpromise::promise< Inspector >()> LazyNodeCallbackFn
```

### LinearDoubleHistogram

```c++
internal::LinearHistogram< double > LinearDoubleHistogram
```

### LinearIntHistogram

```c++
internal::LinearHistogram< int64_t > LinearIntHistogram
```

### LinearUintHistogram

```c++
internal::LinearHistogram< uint64_t > LinearUintHistogram
```

### PropertyValue

```c++
internal::NamedValue< std::variant< std::monostate, IntPropertyValue, UintPropertyValue, DoublePropertyValue, IntArrayValue, UintArrayValue, DoubleArrayValue, StringPropertyValue, ByteVectorPropertyValue, BoolPropertyValue, StringArrayValue >, PropertyFormat > PropertyValue
```

### RecordChildCallbackFn

```c++
fit::function< void(Node &)> RecordChildCallbackFn
```

### StringArray

```c++
internal::ArrayValue< std::string_view > StringArray
```

### StringArrayValue

```c++
internal::Array< std::string, static_cast< size_t >(PropertyFormat::kStringArray)> StringArrayValue
```

### StringProperty

```c++
internal::Property< std::string > StringProperty
```

### StringPropertyValue

```c++
internal::Value< std::string, static_cast< size_t >(PropertyFormat::kString)> StringPropertyValue
```

### UintArray

```c++
internal::ArrayValue< uint64_t > UintArray
```

### UintArrayValue

```c++
internal::Array< uint64_t, static_cast< size_t >(PropertyFormat::kUintArray)> UintArrayValue
```

### UintProperty

```c++
internal::NumericProperty< uint64_t > UintProperty
```

### UintPropertyValue

```c++
internal::Value< uint64_t, static_cast< size_t >(PropertyFormat::kUint)> UintPropertyValue
```

## Functions

### PublishVmo

```c++
void PublishVmo(
  async_dispatcher_t *dispatcher,
  zx::vmo vmo,
  VmoOptions opts
)
```
Publish a VMO according to `opts`.

### ReadFromBuffer

```c++
fpromise::result< Hierarchy > ReadFromBuffer(
  std::vector< uint8_t > buffer
)
```

### ReadFromInspector

```c++
fpromise::promise< Hierarchy > ReadFromInspector(
  Inspector insp
)
```

### ReadFromSnapshot

```c++
fpromise::result< Hierarchy > ReadFromSnapshot(
  Snapshot snapshot
)
```

### ReadFromVmo

```c++
fpromise::result< Hierarchy > ReadFromVmo(
  const zx::vmo & vmo
)
```

### ZX_DEPRECATED_SINCE

```c++
class inspect::StringReference ZX_DEPRECATED_SINCE(
  1,
  26,
  "strings are interned automatically: https://fxbug.dev/300003477"
)
```