/******************************************************************************
******* include guard ********************************************************
******************************************************************************/
#ifndef ALX_STDIO_SBPRINTF_H
#define ALX_STDIO_SBPRINTF_H
/******************************************************************************
******* headers **************************************************************
******************************************************************************/
#include <stdio.h>
#include "libalx/base/assert/assert.h"
#include "libalx/base/compiler/size.h"
/******************************************************************************
******* macros ***************************************************************
******************************************************************************/
/* int sbprintf(char buff[restrict], const char *restrict format, ...); */
#define sbprintf(buff, format, ...) ( \
{ \
alx_static_assert_array(buff); \
\
snprintf(buff, sizeof(buff), format, ##__VA_ARGS__) >= SSIZEOF(buff) \
} \
)
/******************************************************************************
******* include guard ********************************************************
******************************************************************************/
#endif /* libalx/base/stdio/sbprintf.h */