-pub unsafe fn compare_answers(answers: &[Answer], mut ap: VaList) -> usize {
- for (i, answer) in answers.iter().enumerate() {
- match answer {
- Answer { tag: AnswerType::Double, data: AnswerData { double: d } } => {
- let tmp = ap.arg::<c_double>();
- if d.floor() != tmp.floor() {
- println!("Double: {} != {}", d, tmp);
- return i + 1;
- }
- }
- Answer { tag: AnswerType::Long, data: AnswerData { long: l } } => {
- let tmp = ap.arg::<c_long>();
- if *l != tmp {
- println!("Long: {} != {}", l, tmp);
- return i + 1;
- }
- }
- Answer { tag: AnswerType::LongLong, data: AnswerData { longlong: l } } => {
- let tmp = ap.arg::<c_longlong>();
- if *l != tmp {
- println!("Long Long: {} != {}", l, tmp);
- return i + 1;
- }
- }
- Answer { tag: AnswerType::Int, data: AnswerData { int: n } } => {
- let tmp = ap.arg::<c_int>();
- if *n != tmp {
- println!("Int: {} != {}", n, tmp);
- return i + 1;
- }
- }
- Answer { tag: AnswerType::Byte, data: AnswerData { byte: b } } => {
- let tmp = ap.arg::<c_char>();
- if *b != tmp {
- println!("Byte: {} != {}", b, tmp);
- return i + 1;
- }
- }
- Answer { tag: AnswerType::CStr, data: AnswerData { cstr: c0 } } => {
- let c1 = ap.arg::<*const c_char>();
- let cstr0 = CStr::from_ptr(*c0);
- let cstr1 = CStr::from_ptr(c1);
- if cstr0 != cstr1 {
- println!("C String: {:?} != {:?}", cstr0, cstr1);
- return i + 1;
- }
- }
- _ => {
- println!("Unknown type!");
- return i + 1;
- }
- }
- }
- return 0;
+pub unsafe extern "C" fn check_list_1(mut ap: VaList) -> usize {
+ continue_if!(ap.arg::<c_int>() == -1);
+ continue_if!(ap.arg::<c_char>() == 'A' as c_char);
+ continue_if!(ap.arg::<c_char>() == '4' as c_char);
+ continue_if!(ap.arg::<c_char>() == ';' as c_char);
+ continue_if!(ap.arg::<c_int>() == 0x32);
+ continue_if!(ap.arg::<c_int>() == 0x10000001);
+ continue_if!(compare_c_str(ap.arg::<*const c_char>(), "Valid!"));
+ 0