Sound Byte Libs 29c5ff3
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  audio_driver_interface_complete
 Combined Audio driver interface check. More...
 
class  AudioDriverRequirements
 Audio 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::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_adc_start_dma_scan
 
struct  has_adc_start_dma_scan< T, std::void_t< decltype(T::start_dma_scan(std::declval< const sbl::AdcHandle * >(), std::declval< uint8_t >(), std::declval< uint16_t * >(), std::declval< sbl::hal::adc::SampleTime >()))> >
 
struct  has_adc_stop_dma_scan
 
struct  has_adc_stop_dma_scan< T, std::void_t< decltype(T::stop_dma_scan())> >
 
struct  has_audio_init
 Audio Driver Method Detection. More...
 
struct  has_audio_init< T, std::void_t< decltype(T::init())> >
 
struct  has_audio_init_config
 
struct  has_audio_init_config< T, std::void_t< decltype(T::init(std::declval< const sbl::hal::audio::AudioConfig & >()))> >
 
struct  has_audio_set_callback
 
struct  has_audio_set_callback< T, std::void_t< decltype(T::set_callback(std::declval< sbl::hal::audio::AudioCallback >()))> >
 
struct  has_audio_start
 
struct  has_audio_start< T, std::void_t< decltype(T::start())> >
 
struct  has_audio_stop
 
struct  has_audio_stop< T, std::void_t< decltype(T::stop())> >
 
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::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_busy_wait_ms
 Timer Driver Method Detection. More...
 
struct  has_timer_busy_wait_ms< T, std::void_t< decltype(T::busy_wait_ms(std::declval< uint32_t >()))> >
 
struct  has_timer_init
 
struct  has_timer_init< T, std::void_t< decltype(T::init(std::declval< uint32_t >()))> >
 
struct  has_timer_micros
 
struct  has_timer_micros< T, std::void_t< decltype(T::micros())> >
 
struct  has_timer_millis
 
struct  has_timer_millis< T, std::void_t< decltype(T::millis())> >
 
struct  has_uart_available
 
struct  has_uart_available< T, std::void_t< decltype(T::available())> >
 
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_init_rx
 
struct  has_uart_init_rx< T, std::void_t< decltype(T::init_rx(std::declval< const sbl::UartHandle & >()))> >
 
struct  has_uart_read_byte
 
struct  has_uart_read_byte< T, std::void_t< decltype(T::read_byte())> >
 
struct  has_uart_try_write_byte
 
struct  has_uart_try_write_byte< T, std::void_t< decltype(T::try_write_byte(std::declval< uint8_t >()))> >
 
struct  has_uart_try_write_string
 
struct  has_uart_try_write_string< T, std::void_t< decltype(T::try_write_string(std::declval< const char * >()))> >
 
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 >()))> >
 
struct  has_uart_write_string
 
struct  has_uart_write_string< T, std::void_t< decltype(T::write_string(std::declval< const char * >()))> >
 
struct  timer_driver_interface_complete
 Combined Timer driver interface check. More...
 
struct  timer_micros_returns_uint32
 
struct  timer_micros_returns_uint32< T, std::enable_if_t< std::is_same_v< decltype(T::micros()), uint32_t > > >
 
class  TimerDriverRequirements
 Timer driver requirements validator. More...
 
struct  uart_available_returns_bool
 
struct  uart_available_returns_bool< T, std::enable_if_t< std::is_same_v< decltype(T::available()), bool > > >
 
struct  uart_driver_interface_complete
 Combined UART driver interface check. More...
 
struct  uart_read_byte_returns_uint8
 
struct  uart_read_byte_returns_uint8< T, std::enable_if_t< std::is_same_v< decltype(T::read_byte()), uint8_t > > >
 
struct  uart_try_write_byte_returns_bool
 
struct  uart_try_write_byte_returns_bool< T, std::enable_if_t< std::is_same_v< decltype(T::try_write_byte(std::declval< uint8_t >())), bool > > >
 
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 AudioDriver >
constexpr bool audio_driver_valid = AudioDriverRequirements<AudioDriver>::validate()
 Helper to validate an audio 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 106 of file adc_requirements.hpp.

◆ audio_driver_valid

template<typename AudioDriver >
constexpr bool sbl::validation::audio_driver_valid = AudioDriverRequirements<AudioDriver>::validate()
constexpr

Helper to validate an audio driver implementation.

Usage:

static_assert(sbl::validation::audio_driver_valid<MyAudioDriver>,
"Audio driver incomplete");

Definition at line 82 of file audio_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 89 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 117 of file uart_requirements.hpp.