template <typename UartDriver = Driver>

class Config

Defined at line 118 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

This represents the a configuration tagged with a driver from the set of available drivers.

Helper methods allows us to generate a `uart::all::Driver`.

The provided configuration object has the following properties:

* `uart_type` alias for the uart driver type.

* `config_type` alias for `uart_type::config_type`.

* `operator*()` and `operator()->` return reference and pointer to the underlying

`config_type` object.

Note: There is no driver `state` being held in this object, just the configuration.

Public Methods

template <typename... Args>
std::optional<Config<UartDriver>> Match (Args &&... args)

Returns a `Config` object if any supported driver provides a `TryMatch` static method that can

be invoked with the provided arguments `args`. Otherwise `std::nullopt` is returned.

Note: The matching order is determined by the position in the list of drivers.

Defined at line 125 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename... Args>
std::optional<Config<UartDriver>> Match (Args &&... args)

Returns a `Config` object if any supported driver provides a `TryMatch` static method that can

be invoked with the provided arguments `args`. Otherwise `std::nullopt` is returned.

Note: The matching order is determined by the position in the list of drivers.

Defined at line 125 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename... Args>
std::optional<Config<UartDriver>> Select (Args &&... args)

Returns an empty `Config` object if any supported driver provides a `TrySelect` static method

that succeeds when invoked with `args`. Otherwise `std::nullopt` is returned. This allows

separating driver type selection from the actual configuration, or partially filling the

configuration.

Note: The matching order is determined by the position in the list of the driver.

Defined at line 167 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename... Args>
std::optional<Config<UartDriver>> Select (Args &&... args)

Returns an empty `Config` object if any supported driver provides a `TrySelect` static method

that succeeds when invoked with `args`. Otherwise `std::nullopt` is returned. This allows

separating driver type selection from the actual configuration, or partially filling the

configuration.

Note: The matching order is determined by the position in the list of the driver.

Defined at line 167 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

void Config<UartDriver> ()

Defined at line 189 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

void Config<UartDriver> (const Config<UartDriver> & )

Defined at line 190 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

void Config<UartDriver> (Config<UartDriver> && )

Defined at line 191 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename Uart>
void Config<UartDriver> (const uart::Config<Uart> & config)

Constructor to obtain configurations from a Uart.

Defined at line 195 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename Uart>
void Config<UartDriver> (const Uart & uart)

Defined at line 197 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename Uart, template <typename, IoRegisterType> class IoProvider, typename Sync, class IrqProvider>
void Config<UartDriver> (const uart::KernelDriver<Uart, IoProvider, Sync, IrqProvider> & uart)

Defined at line 200 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

Config<UartDriver> & operator= (const Config<UartDriver> & )

Defined at line 203 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

Config<UartDriver> & operator= (Config<UartDriver> && )

Defined at line 204 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename Uart, template <typename, IoRegisterType> class IoProvider, typename Sync, class IrqProvider>
Config<UartDriver> & operator= (const uart::KernelDriver<Uart, IoProvider, Sync, IrqProvider> & driver)

Defined at line 208 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename T>
Config<UartDriver> & operator= (const T & uart)

Defined at line 214 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename T>
Config<UartDriver> & operator= (const uart::Config<T> & uart_config)

Defined at line 220 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename T>
void Visit (T && visitor)

Visitor to access the active configuration object.

Defined at line 227 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

template <typename T>
void Visit (T && visitor)

Defined at line 232 of file ../../zircon/system/ulib/uart/include/lib/uart/all.h

Records