apio
de38eb6877
All checks were successful
continuous-integration/drone/push Build is passing
It was causing a lot of code duplication. If someone doesn't have errors, just return {} from the callback and unwrap the Result.
16 lines
632 B
C
16 lines
632 B
C
#pragma once
|
|
#include <luna/Attributes.h>
|
|
#include <luna/Result.h>
|
|
#include <stdarg.h>
|
|
|
|
typedef Result<void> (*callback_t)(char, void*);
|
|
|
|
// Used to format anything that can fail (writing to C FILEs, etc...)
|
|
Result<usize> cstyle_format(const char* format, callback_t callback, void* arg, va_list ap);
|
|
|
|
// Convenience function which outputs into a fixed-size buffer (not unlike vsnprintf)
|
|
usize vstring_format(char* buf, usize max, const char* format, va_list ap);
|
|
|
|
// Convenience function which outputs into a fixed-size buffer (not unlike snprintf)
|
|
usize string_format(char* buf, usize max, const char* format, ...) _format(3, 4);
|