# litert::OpaqueOptions


`#include <litert_opaque_options.h>`

A C++ wrapper for `LiteRtOpaqueOptions`, providing a way to manage and access type-erased configuration data.

## Summary

<br />

### Inheritance

Inherits from: internal::BaseHandle\< LiteRtOpaqueOptions \>

| ### Constructors and Destructors ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1a6050691b5a80d672f7ae665818e2764b()` ||

| ### Public types ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1a4d1b8dcdc76cf2bebb1ca6459be53cae` | using `std::reference_wrapper< https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options >` |

| ### Friend classes ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1aea2ac8783b30a0648c2eef5f638f4d17` | `friend class` |

| ### Public functions ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1a4ab4250393845cb13bdf21922958e24a(https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options && appended_options)` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< void >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1adc5bc3741b9a3d55887ad4b26576354a() const ` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< T * >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1aa134ce6a521e89b0a72e8b3a6f4ec62b() const ` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< absl::string_view >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1a05b9b3de69d14395ac1b6686b27ea486() const ` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< uint64_t >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1a3fc11818df9794371dbb4b1b72a9846a()` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1ad50e651152c2770cc68c38b4844a2216()` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< void >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1a8e45956d1ddc962c137f956b7d2c9acc(LiteRtOpaqueOptionsHashFunc payload_hash_func)` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< void >` |

| ### Public static functions ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1a45f3e40f1e20e1ce3db586b8503320bf(const std::string & payload_identifier, void *payload_data, void(*)(void *payload_data) payload_destructor)` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1aae703cbf9c0e67630f49b0df0d28d421(LiteRtOpaqueOptions options, OwnHandle owned)` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options` |

| ### Protected functions ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-opaque-options#classlitert_1_1_opaque_options_1aff5f3770ba8101e0f490310afbff4b9c(LiteRtOpaqueOptions options, OwnHandle owned)` |   |

## Public types

### Ref

```
std::reference_wrapper< OpaqueOptions > Ref
```

## Friend classes

### RuntimeOptions

```
friend class RuntimeOptions
```

## Public functions

### Append

```
Expected< void > Append(
  OpaqueOptions && appended_options
)
```

### GetData

```
Expected< T * > GetData() const 
```

### GetIdentifier

```
Expected< absl::string_view > GetIdentifier() const 
```

### Hash

```
Expected< uint64_t > Hash() const 
```

### Next

```
Expected< OpaqueOptions > Next()
```

### OpaqueOptions

```
 OpaqueOptions()=default
```

### Pop

```
Expected< void > Pop()
```

### SetHash

```
Expected< void > SetHash(
  LiteRtOpaqueOptionsHashFunc payload_hash_func
)
```

## Public static functions

### Create

```
Expected< OpaqueOptions > Create(
  const std::string & payload_identifier,
  void *payload_data,
  void(*)(void *payload_data) payload_destructor
)
```

### WrapCObject

```
OpaqueOptions WrapCObject(
  LiteRtOpaqueOptions options,
  OwnHandle owned
)
```

## Protected functions

### OpaqueOptions

```
 OpaqueOptions(
  LiteRtOpaqueOptions options,
  OwnHandle owned
)
```
<br />

Details Parameters `owned` Indicates if the created `AcceleratorCompilationOptions` object should take ownership of the provided `options` handle.