1 #include <stdio.h>
2 #include <stdarg.h>
3 
4 typedef void (wl_log_func_t)(const char *, va_list);
5 
6 void wl_log_trampoline_to_rust_server(char const *fmt, va_list list);
7 
8 void wl_log_rust_logger_server(char const *msg);
9 
wl_log_trampoline_to_rust_server(char const * fmt,va_list list)10 void wl_log_trampoline_to_rust_server(char const *fmt, va_list list) {
11     char buffer[256];
12     int ret = vsnprintf(buffer, 256, fmt, list);
13     if (ret <= 0) {
14         // forward the unformatted message, in a best-effort attempt
15         wl_log_rust_logger_server(fmt);
16     } else {
17         wl_log_rust_logger_server(buffer);
18     }
19 }