# fdf_internal Namespace

# fdf_internal

## Summary

| ### Functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1aba0b71f184db887b649e1bce76341177(LogArgs... values)` | `constexpr https://fuchsia.dev/reference/cpp/struct/fdf-internal/tuplet#structfdf__internal_1_1_tuplet< LogArgs...>` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1af586b3e2aefdb003e57df3035a3661a5(Args... args)` | `constexpr size_t` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1ad1f80121bd108999eacf9b57eeef776d(const char *value)` | `std::optional< std::string_view >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a4bc18ca54fa7ee962e450dc3e5f3c8f6(const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols)` | `std::unordered_set< std::string >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a6c25ef826ec8fa84a5a2f3fc4628b92a(const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols, std::string_view name, T default_value)` | `T` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1ac500810265d5835eaecf2621a36f8221(const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols, std::string_view module_name, std::string_view symbol_name, T default_value)` | `T` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1aed70252d1d5b60d78671e290cf04edf1()` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1abf792b02adc34286950bfb9c47344831(https://fuchsia.dev/reference/cpp/class/fit/function-impl#classfit_1_1function__impl< bool()> condition)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1af388826422dcf929b94fc70c03ceaf07(Key key, Value value)` | `constexpr https://fuchsia.dev/reference/cpp/struct/fdf-internal/key-value#structfdf__internal_1_1_key_value< Key, Value >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1aa44ac4af7904917ea125018d2b7625cc(std::tuple< Values...> value, std::tuple< Tuple...> tuple)` | `auto` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1ad65fdf60fb78ff42d4b3885f0d5f8417(std::tuple< Args...> args, std::tuple< EmptyTuple...> start_tuple)` | `auto` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a66fead860728d1841db8479077d4ae16(std::tuple< Args...> args)` | `auto` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a7654091a74ee9064892c0940a3cd7827(Msg msg, https://fuchsia.dev/reference/cpp/struct/fdf-internal/tuplet#structfdf__internal_1_1_tuplet< Args...> args)` | `auto` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a5ca1647444ce87854f66b8cab4719eee()` | `constexpr bool` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a98394b21ad3d65b85ddc1c02aaad316b(const https://fuchsia.dev/reference/cpp/other/singletonfidl/vector-view#singletonfidl_1_1_vector_view< fuchsia_component_runner::wire::ComponentNamespaceEntry > & entries, std::string_view path)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< https://fuchsia.dev/reference/cpp/other/singletonfidl/unowned-client-end#singletonfidl_1_1_unowned_client_end< fuchsia_io::Directory > >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a5aaa89892dd050852c365ee5c7fdb54a(const std::vector< fuchsia_component_runner::ComponentNamespaceEntry > & entries, std::string_view path)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< https://fuchsia.dev/reference/cpp/other/singletonfidl/unowned-client-end#singletonfidl_1_1_unowned_client_end< fuchsia_io::Directory > >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a72f3ad3b28e369b150bb8255eba48324(const fuchsia_data::wire::Dictionary & program, std::string_view key)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< std::string >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a8833ea63ec95830014e77b66b2c78a24(const std::optional< fuchsia_data::Dictionary > & program, std::string_view key)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< std::string >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a89030a678c88aa4031f2c91fe8ab8f7b(const fuchsia_data::wire::Dictionary & program, std::string_view key)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< std::vector< fuchsia_data::wire::Dictionary > >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a93c1cbd38c447d7cb13b91ee94356775(const fuchsia_data::Dictionary & program, std::string_view key)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< std::vector< fuchsia_data::Dictionary > >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1aea5d16774d01d3f11ef53534469a228d(const fuchsia_data::wire::Dictionary & program, std::string_view key)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< std::vector< std::string > >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1ad0527f814e017f3f2cd7e836d0131f0c(const fuchsia_data::Dictionary & program, std::string_view key)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< std::vector< std::string > >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a177398b7b487f4d7e66d3bebabb5d269(const fuchsia_driver_framework::wire::DriverStartArgs & args, std::string_view name)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< T >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a00400b8ed8b5f65e1134b1b05d158343(const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols, std::string_view name)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< T >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a8db3d9ee574c1718b08dede055a29ee1(const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols, std::string_view module_name, std::string_view symbol_name)` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< T >` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1a278ff78991c9bee037578e448b19978d(https://fuchsia.dev/reference/cpp/class/fdf/logger#classfdf_1_1_logger & logger, FuchsiaLogSeverity severity, const char *file, int line, Msg msg, Args... args)` | `void` |
| `https://fuchsia.dev/reference/cpp/namespace/fdf-internal#namespacefdf__internal_1ad18adb646fcce0ff22017ae754ced0b2(std::string_view fmt, std::format_args args)` | `void` |

| ### Classes ||
|---|---|
| [fdf_internal::DefaultDispatcherSetting](https://fuchsia.dev/reference/cpp/class/fdf-internal/default-dispatcher-setting) |   |
| [fdf_internal::TestDispatcherBuilder](https://fuchsia.dev/reference/cpp/class/fdf-internal/test-dispatcher-builder) |   |
| [fdf_internal::TestSynchronizedDispatcher](https://fuchsia.dev/reference/cpp/class/fdf-internal/test-synchronized-dispatcher) |   |
| [fdf_internal::output_iterator](https://fuchsia.dev/reference/cpp/class/fdf-internal/output-iterator) |   |

| ### Structs ||
|---|---|
| [fdf_internal::EncoderState](https://fuchsia.dev/reference/cpp/struct/fdf-internal/encoder-state) |   |
| [fdf_internal::KeyValue](https://fuchsia.dev/reference/cpp/struct/fdf-internal/key-value) |   |
| [fdf_internal::LogValue](https://fuchsia.dev/reference/cpp/struct/fdf-internal/log-value) |   |
| [fdf_internal::Tuplet](https://fuchsia.dev/reference/cpp/struct/fdf-internal/tuplet) |   |

## Functions

### Args

```c++
constexpr fdf_internal::Tuplet< LogArgs...> Args(
  LogArgs... values
)
```

### ArgsSize

```c++
constexpr size_t ArgsSize(
  Args... args
)
```

### FromCString

```c++
std::optional< std::string_view > FromCString(
  const char *value
)
```

### GetModules

```c++
std::unordered_set< std::string > GetModules(
  const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols
)
```

### GetSymbol

```c++
T GetSymbol(
  const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols,
  std::string_view name,
  T default_value
)
```

### GetSymbol

```c++
T GetSymbol(
  const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols,
  std::string_view module_name,
  std::string_view symbol_name,
  T default_value
)
```

### ILessThanSize

```c++
constexpr bool ILessThanSize()
```

### IfExistsRunUnmanagedUntil

```c++
zx::result IfExistsRunUnmanagedUntil(
  fit::function< bool()> condition
)
```

### KeyValueInternal

```c++
constexpr fdf_internal::KeyValue< Key, Value > KeyValueInternal(
  Key key,
  Value value
)
```

### MakeKV

```c++
auto MakeKV(
  std::tuple< Values...> value,
  std::tuple< Tuple...> tuple
)
```

### MakeKV

```c++
auto MakeKV(
  std::tuple< Args...> args,
  std::tuple< EmptyTuple...> start_tuple
)
```

### MakeKV

```c++
auto MakeKV(
  std::tuple< Args...> args
)
```

### MakeValue

```c++
auto MakeValue(
  Msg msg,
  fdf_internal::Tuplet< Args...> args
)
```

### Not

```c++
constexpr bool Not()
```

### NsValue

```c++
zx::result< fidl::UnownedClientEnd< fuchsia_io::Directory > > NsValue(
  const fidl::VectorView< fuchsia_component_runner::wire::ComponentNamespaceEntry > & entries,
  std::string_view path
)
```

### NsValue

```c++
zx::result< fidl::UnownedClientEnd< fuchsia_io::Directory > > NsValue(
  const std::vector< fuchsia_component_runner::ComponentNamespaceEntry > & entries,
  std::string_view path
)
```

### ProgramValue

```c++
zx::result< std::string > ProgramValue(
  const fuchsia_data::wire::Dictionary & program,
  std::string_view key
)
```

### ProgramValue

```c++
zx::result< std::string > ProgramValue(
  const std::optional< fuchsia_data::Dictionary > & program,
  std::string_view key
)
```

### ProgramValueAsObjVector

```c++
zx::result< std::vector< fuchsia_data::wire::Dictionary > > ProgramValueAsObjVector(
  const fuchsia_data::wire::Dictionary & program,
  std::string_view key
)
```

### ProgramValueAsObjVector

```c++
zx::result< std::vector< fuchsia_data::Dictionary > > ProgramValueAsObjVector(
  const fuchsia_data::Dictionary & program,
  std::string_view key
)
```

### ProgramValueAsVector

```c++
zx::result< std::vector< std::string > > ProgramValueAsVector(
  const fuchsia_data::wire::Dictionary & program,
  std::string_view key
)
```

### ProgramValueAsVector

```c++
zx::result< std::vector< std::string > > ProgramValueAsVector(
  const fuchsia_data::Dictionary & program,
  std::string_view key
)
```

### SymbolValue

```c++
zx::result< T > SymbolValue(
  const fuchsia_driver_framework::wire::DriverStartArgs & args,
  std::string_view name
)
```

### SymbolValue

```c++
zx::result< T > SymbolValue(
  const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols,
  std::string_view name
)
```

### SymbolValue

```c++
zx::result< T > SymbolValue(
  const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol >> & symbols,
  std::string_view module_name,
  std::string_view symbol_name
)
```

### fx_slog

```c++
void fx_slog(
  fdf::Logger & logger,
  FuchsiaLogSeverity severity,
  const char *file,
  int line,
  Msg msg,
  Args... args
)
```

### vpanic

```c++
void vpanic(
  std::string_view fmt,
  std::format_args args
)
```