externcrate libc;#[macro_use]externcrate va_list;uselibc::{c_char,c_int};// Here we declare the C function with va_list that we'll use.
extern"C"{fnvprintf(f:*const c_char, v:va_list::va_list)-> c_int;}fnmain(){// You just have to call this macro and it'll return you the va_list.
unsafe{to_va_list!(|v:va_list::va_list|{// And now you can just give the va_list to the C function:
vprintf(b"%d %d %s\n\0".as_ptr()as*constc_char, v);},1,2,b"salut!\0".as_ptr());// We pass the arguments after the closure.
}}