Sound Byte Libs 1ee2ca6
C++ firmware library for audio applications on 32-bit ARM Cortex-M processors
Loading...
Searching...
No Matches
Classes | Variables
sbl::validation Namespace Reference

Compile-time validation infrastructure. More...

Classes

struct  adc_driver_interface_complete
 Combined ADC driver interface check. More...
 
class  AdcDriverRequirements
 ADC driver requirements validator. More...
 
struct  gpio_driver_interface_complete
 Combined GPIO driver interface check. More...
 
class  GpioDriverRequirements
 GPIO driver requirements validator. More...
 
struct  has_adc_configure_channel
 
struct  has_adc_configure_channel< T, std::void_t< decltype(T::configure_channel(std::declval< const sbl::AdcHandle & >(), std::declval< sbl::core::hal::adc::SampleTime >()))> >
 
struct  has_adc_init
 ADC Driver Method Detection. More...
 
struct  has_adc_init< T, std::void_t< decltype(T::init())> >
 
struct  has_adc_is_conversion_complete
 
struct  has_adc_is_conversion_complete< T, std::void_t< decltype(T::is_conversion_complete())> >
 
struct  has_adc_read_raw
 
struct  has_adc_read_raw< T, std::void_t< decltype(T::read_raw())> >
 
struct  has_adc_resolution_bits
 
struct  has_adc_resolution_bits< T, std::void_t< decltype(T::resolution_bits())> >
 
struct  has_adc_start_conversion
 
struct  has_adc_start_conversion< T, std::void_t< decltype(T::start_conversion(std::declval< const sbl::AdcHandle & >()))> >
 
struct  has_gpio_read
 
struct  has_gpio_read< T, std::void_t< decltype(T::read(std::declval< const sbl::GpioHandle & >()))> >
 
struct  has_gpio_set_mode
 GPIO Driver Method Detection (Handle-First API) More...
 
struct  has_gpio_set_mode< T, std::void_t< decltype(T::set_mode(std::declval< const sbl::GpioHandle & >(), std::declval< sbl::core::hal::gpio::PinMode >()))> >
 
struct  has_gpio_toggle
 
struct  has_gpio_toggle< T, std::void_t< decltype(T::toggle(std::declval< const sbl::GpioHandle & >()))> >
 
struct  has_gpio_write
 
struct  has_gpio_write< T, std::void_t< decltype(T::write(std::declval< const sbl::GpioHandle & >(), std::declval< bool >()))> >
 
struct  has_timer_delay_ms
 Timer Driver Method Detection. More...
 
struct  has_timer_delay_ms< T, std::void_t< decltype(T::delay_ms(std::declval< uint32_t >()))> >
 
struct  has_timer_millis
 
struct  has_timer_millis< T, std::void_t< decltype(T::millis())> >
 
struct  has_uart_init
 UART Driver Method Detection. More...
 
struct  has_uart_init< T, std::void_t< decltype(T::init(std::declval< const sbl::UartHandle & >()))> >
 
struct  has_uart_write
 
struct  has_uart_write< T, std::void_t< decltype(T::write(std::declval< const uint8_t * >(), std::declval< std::size_t >()))> >
 
struct  has_uart_write_byte
 
struct  has_uart_write_byte< T, std::void_t< decltype(T::write_byte(std::declval< uint8_t >()))> >
 
class  TimerDriverRequirements
 Timer driver requirements validator. More...
 
class  UartDriverRequirements
 UART driver requirements validator. More...
 

Variables

template<typename AdcDriver >
constexpr bool adc_driver_valid = AdcDriverRequirements<AdcDriver>::validate()
 Helper to validate an ADC driver implementation.
 
template<typename GpioDriver >
constexpr bool gpio_driver_valid = GpioDriverRequirements<GpioDriver>::validate()
 Helper to validate a GPIO driver implementation.
 
template<typename TimerDriver >
constexpr bool timer_driver_valid = TimerDriverRequirements<TimerDriver>::validate()
 Helper to validate a Timer driver implementation.
 
template<typename UartDriver >
constexpr bool uart_driver_valid = UartDriverRequirements<UartDriver>::validate()
 Helper to validate a UART driver implementation.
 

Detailed Description

Compile-time validation infrastructure.

SFINAE-based validation ensuring platform implementations meet interface requirements with clear error messages.

Variable Documentation

◆ adc_driver_valid

template<typename AdcDriver >
constexpr bool sbl::validation::adc_driver_valid = AdcDriverRequirements<AdcDriver>::validate()
constexpr

Helper to validate an ADC driver implementation.

Usage:

static_assert(sbl::validation::adc_driver_valid<MyAdcDriver>,
"ADC driver incomplete");

Definition at line 90 of file adc_requirements.hpp.

◆ gpio_driver_valid

template<typename GpioDriver >
constexpr bool sbl::validation::gpio_driver_valid = GpioDriverRequirements<GpioDriver>::validate()
constexpr

Helper to validate a GPIO driver implementation.

Usage:

static_assert(sbl::validation::gpio_driver_valid<MyGpioDriver>,
"GPIO driver incomplete");

Definition at line 80 of file gpio_requirements.hpp.

◆ timer_driver_valid

template<typename TimerDriver >
constexpr bool sbl::validation::timer_driver_valid = TimerDriverRequirements<TimerDriver>::validate()
constexpr

Helper to validate a Timer driver implementation.

Usage:

static_assert(sbl::validation::timer_driver_valid<MyTimerDriver>,
"Timer driver incomplete");

Definition at line 69 of file timer_requirements.hpp.

◆ uart_driver_valid

template<typename UartDriver >
constexpr bool sbl::validation::uart_driver_valid = UartDriverRequirements<UartDriver>::validate()
constexpr

Helper to validate a UART driver implementation.

Usage:

static_assert(sbl::validation::uart_driver_valid<MyUartDriver>,
"UART driver incomplete");

Definition at line 75 of file uart_requirements.hpp.