#pragma once
#include <Print.h>

#if defined( ARDUINO_ARCH_ESP32 )
    template<typename T>
    void safe_printf( T& out, const char* format, ... ){
        va_list args;
        va_start( args, format );
        out.printf( format, args );  // Uwaga: printf nie przyjmuje va_list
        va_end( args );
    }
#else
    template<typename T>
    void safe_printf( T& out, const char* format, ... ){
        char buffer[128];
        va_list args;
        va_start( args, format );
        vsnprintf( buffer, sizeof(buffer), format, args );
        va_end( args );
        out.print( buffer );
    }
#endif