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