biodiff_wfa2_sys/
lib.rs

1/* automatically generated by rust-bindgen 0.69.4 */
2
3#![allow(non_upper_case_globals,non_snake_case,non_camel_case_types,unused)]
4pub type FILE = libc::FILE;
5pub type timespec = libc::timespec;
6
7pub type __off_t = ::std::os::raw::c_long;
8pub type __off64_t = ::std::os::raw::c_long;
9pub type __time_t = ::std::os::raw::c_long;
10pub type __syscall_slong_t = ::std::os::raw::c_long;
11pub const heatmap_type_heatmap_min: heatmap_type = 0;
12pub const heatmap_type_heatmap_max: heatmap_type = 1;
13pub const heatmap_type_heatmap_value: heatmap_type = 2;
14pub type heatmap_type = ::std::os::raw::c_uint;
15#[repr(C)]
16#[derive(Debug, Copy, Clone)]
17pub struct heatmap_t {
18    pub type_: heatmap_type,
19    pub num_rows: ::std::os::raw::c_int,
20    pub num_columns: ::std::os::raw::c_int,
21    pub min_v: ::std::os::raw::c_int,
22    pub max_v: ::std::os::raw::c_int,
23    pub min_h: ::std::os::raw::c_int,
24    pub max_h: ::std::os::raw::c_int,
25    pub binning_factor: f32,
26    pub values: *mut *mut ::std::os::raw::c_int,
27}
28#[test]
29fn bindgen_test_layout_heatmap_t() {
30    const UNINIT: ::std::mem::MaybeUninit<heatmap_t> = ::std::mem::MaybeUninit::uninit();
31    let ptr = UNINIT.as_ptr();
32    assert_eq!(
33        ::std::mem::size_of::<heatmap_t>(),
34        40usize,
35        concat!("Size of: ", stringify!(heatmap_t))
36    );
37    assert_eq!(
38        ::std::mem::align_of::<heatmap_t>(),
39        8usize,
40        concat!("Alignment of ", stringify!(heatmap_t))
41    );
42    assert_eq!(
43        unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
44        0usize,
45        concat!(
46            "Offset of field: ",
47            stringify!(heatmap_t),
48            "::",
49            stringify!(type_)
50        )
51    );
52    assert_eq!(
53        unsafe { ::std::ptr::addr_of!((*ptr).num_rows) as usize - ptr as usize },
54        4usize,
55        concat!(
56            "Offset of field: ",
57            stringify!(heatmap_t),
58            "::",
59            stringify!(num_rows)
60        )
61    );
62    assert_eq!(
63        unsafe { ::std::ptr::addr_of!((*ptr).num_columns) as usize - ptr as usize },
64        8usize,
65        concat!(
66            "Offset of field: ",
67            stringify!(heatmap_t),
68            "::",
69            stringify!(num_columns)
70        )
71    );
72    assert_eq!(
73        unsafe { ::std::ptr::addr_of!((*ptr).min_v) as usize - ptr as usize },
74        12usize,
75        concat!(
76            "Offset of field: ",
77            stringify!(heatmap_t),
78            "::",
79            stringify!(min_v)
80        )
81    );
82    assert_eq!(
83        unsafe { ::std::ptr::addr_of!((*ptr).max_v) as usize - ptr as usize },
84        16usize,
85        concat!(
86            "Offset of field: ",
87            stringify!(heatmap_t),
88            "::",
89            stringify!(max_v)
90        )
91    );
92    assert_eq!(
93        unsafe { ::std::ptr::addr_of!((*ptr).min_h) as usize - ptr as usize },
94        20usize,
95        concat!(
96            "Offset of field: ",
97            stringify!(heatmap_t),
98            "::",
99            stringify!(min_h)
100        )
101    );
102    assert_eq!(
103        unsafe { ::std::ptr::addr_of!((*ptr).max_h) as usize - ptr as usize },
104        24usize,
105        concat!(
106            "Offset of field: ",
107            stringify!(heatmap_t),
108            "::",
109            stringify!(max_h)
110        )
111    );
112    assert_eq!(
113        unsafe { ::std::ptr::addr_of!((*ptr).binning_factor) as usize - ptr as usize },
114        28usize,
115        concat!(
116            "Offset of field: ",
117            stringify!(heatmap_t),
118            "::",
119            stringify!(binning_factor)
120        )
121    );
122    assert_eq!(
123        unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize },
124        32usize,
125        concat!(
126            "Offset of field: ",
127            stringify!(heatmap_t),
128            "::",
129            stringify!(values)
130        )
131    );
132}
133#[repr(C)]
134#[derive(Debug, Copy, Clone)]
135pub struct profiler_counter_t {
136    pub total: u64,
137    pub samples: u64,
138    pub min: u64,
139    pub max: u64,
140    pub m_oldM: f64,
141    pub m_newM: f64,
142    pub m_oldS: f64,
143    pub m_newS: f64,
144}
145#[test]
146fn bindgen_test_layout_profiler_counter_t() {
147    const UNINIT: ::std::mem::MaybeUninit<profiler_counter_t> = ::std::mem::MaybeUninit::uninit();
148    let ptr = UNINIT.as_ptr();
149    assert_eq!(
150        ::std::mem::size_of::<profiler_counter_t>(),
151        64usize,
152        concat!("Size of: ", stringify!(profiler_counter_t))
153    );
154    assert_eq!(
155        ::std::mem::align_of::<profiler_counter_t>(),
156        8usize,
157        concat!("Alignment of ", stringify!(profiler_counter_t))
158    );
159    assert_eq!(
160        unsafe { ::std::ptr::addr_of!((*ptr).total) as usize - ptr as usize },
161        0usize,
162        concat!(
163            "Offset of field: ",
164            stringify!(profiler_counter_t),
165            "::",
166            stringify!(total)
167        )
168    );
169    assert_eq!(
170        unsafe { ::std::ptr::addr_of!((*ptr).samples) as usize - ptr as usize },
171        8usize,
172        concat!(
173            "Offset of field: ",
174            stringify!(profiler_counter_t),
175            "::",
176            stringify!(samples)
177        )
178    );
179    assert_eq!(
180        unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize },
181        16usize,
182        concat!(
183            "Offset of field: ",
184            stringify!(profiler_counter_t),
185            "::",
186            stringify!(min)
187        )
188    );
189    assert_eq!(
190        unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize },
191        24usize,
192        concat!(
193            "Offset of field: ",
194            stringify!(profiler_counter_t),
195            "::",
196            stringify!(max)
197        )
198    );
199    assert_eq!(
200        unsafe { ::std::ptr::addr_of!((*ptr).m_oldM) as usize - ptr as usize },
201        32usize,
202        concat!(
203            "Offset of field: ",
204            stringify!(profiler_counter_t),
205            "::",
206            stringify!(m_oldM)
207        )
208    );
209    assert_eq!(
210        unsafe { ::std::ptr::addr_of!((*ptr).m_newM) as usize - ptr as usize },
211        40usize,
212        concat!(
213            "Offset of field: ",
214            stringify!(profiler_counter_t),
215            "::",
216            stringify!(m_newM)
217        )
218    );
219    assert_eq!(
220        unsafe { ::std::ptr::addr_of!((*ptr).m_oldS) as usize - ptr as usize },
221        48usize,
222        concat!(
223            "Offset of field: ",
224            stringify!(profiler_counter_t),
225            "::",
226            stringify!(m_oldS)
227        )
228    );
229    assert_eq!(
230        unsafe { ::std::ptr::addr_of!((*ptr).m_newS) as usize - ptr as usize },
231        56usize,
232        concat!(
233            "Offset of field: ",
234            stringify!(profiler_counter_t),
235            "::",
236            stringify!(m_newS)
237        )
238    );
239}
240#[repr(C)]
241#[derive(Copy, Clone)]
242pub struct profiler_timer_t {
243    pub begin_timer: timespec,
244    pub time_ns: profiler_counter_t,
245    pub accumulated: u64,
246}
247#[test]
248fn bindgen_test_layout_profiler_timer_t() {
249    const UNINIT: ::std::mem::MaybeUninit<profiler_timer_t> = ::std::mem::MaybeUninit::uninit();
250    let ptr = UNINIT.as_ptr();
251    assert_eq!(
252        ::std::mem::size_of::<profiler_timer_t>(),
253        88usize,
254        concat!("Size of: ", stringify!(profiler_timer_t))
255    );
256    assert_eq!(
257        ::std::mem::align_of::<profiler_timer_t>(),
258        8usize,
259        concat!("Alignment of ", stringify!(profiler_timer_t))
260    );
261    assert_eq!(
262        unsafe { ::std::ptr::addr_of!((*ptr).begin_timer) as usize - ptr as usize },
263        0usize,
264        concat!(
265            "Offset of field: ",
266            stringify!(profiler_timer_t),
267            "::",
268            stringify!(begin_timer)
269        )
270    );
271    assert_eq!(
272        unsafe { ::std::ptr::addr_of!((*ptr).time_ns) as usize - ptr as usize },
273        16usize,
274        concat!(
275            "Offset of field: ",
276            stringify!(profiler_timer_t),
277            "::",
278            stringify!(time_ns)
279        )
280    );
281    assert_eq!(
282        unsafe { ::std::ptr::addr_of!((*ptr).accumulated) as usize - ptr as usize },
283        80usize,
284        concat!(
285            "Offset of field: ",
286            stringify!(profiler_timer_t),
287            "::",
288            stringify!(accumulated)
289        )
290    );
291}
292#[repr(C)]
293#[derive(Debug, Copy, Clone)]
294pub struct vector_t {
295    pub memory: *mut ::std::os::raw::c_void,
296    pub used: u64,
297    pub element_size: u64,
298    pub elements_allocated: u64,
299}
300#[test]
301fn bindgen_test_layout_vector_t() {
302    const UNINIT: ::std::mem::MaybeUninit<vector_t> = ::std::mem::MaybeUninit::uninit();
303    let ptr = UNINIT.as_ptr();
304    assert_eq!(
305        ::std::mem::size_of::<vector_t>(),
306        32usize,
307        concat!("Size of: ", stringify!(vector_t))
308    );
309    assert_eq!(
310        ::std::mem::align_of::<vector_t>(),
311        8usize,
312        concat!("Alignment of ", stringify!(vector_t))
313    );
314    assert_eq!(
315        unsafe { ::std::ptr::addr_of!((*ptr).memory) as usize - ptr as usize },
316        0usize,
317        concat!(
318            "Offset of field: ",
319            stringify!(vector_t),
320            "::",
321            stringify!(memory)
322        )
323    );
324    assert_eq!(
325        unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize },
326        8usize,
327        concat!(
328            "Offset of field: ",
329            stringify!(vector_t),
330            "::",
331            stringify!(used)
332        )
333    );
334    assert_eq!(
335        unsafe { ::std::ptr::addr_of!((*ptr).element_size) as usize - ptr as usize },
336        16usize,
337        concat!(
338            "Offset of field: ",
339            stringify!(vector_t),
340            "::",
341            stringify!(element_size)
342        )
343    );
344    assert_eq!(
345        unsafe { ::std::ptr::addr_of!((*ptr).elements_allocated) as usize - ptr as usize },
346        24usize,
347        concat!(
348            "Offset of field: ",
349            stringify!(vector_t),
350            "::",
351            stringify!(elements_allocated)
352        )
353    );
354}
355#[repr(C)]
356#[derive(Debug, Copy, Clone)]
357pub struct mm_allocator_t {
358    pub request_ticker: u64,
359    pub segment_size: u64,
360    pub segments: *mut vector_t,
361    pub segments_free: *mut vector_t,
362    pub current_segment_idx: u64,
363    pub malloc_requests: *mut vector_t,
364    pub malloc_requests_freed: u64,
365}
366#[test]
367fn bindgen_test_layout_mm_allocator_t() {
368    const UNINIT: ::std::mem::MaybeUninit<mm_allocator_t> = ::std::mem::MaybeUninit::uninit();
369    let ptr = UNINIT.as_ptr();
370    assert_eq!(
371        ::std::mem::size_of::<mm_allocator_t>(),
372        56usize,
373        concat!("Size of: ", stringify!(mm_allocator_t))
374    );
375    assert_eq!(
376        ::std::mem::align_of::<mm_allocator_t>(),
377        8usize,
378        concat!("Alignment of ", stringify!(mm_allocator_t))
379    );
380    assert_eq!(
381        unsafe { ::std::ptr::addr_of!((*ptr).request_ticker) as usize - ptr as usize },
382        0usize,
383        concat!(
384            "Offset of field: ",
385            stringify!(mm_allocator_t),
386            "::",
387            stringify!(request_ticker)
388        )
389    );
390    assert_eq!(
391        unsafe { ::std::ptr::addr_of!((*ptr).segment_size) as usize - ptr as usize },
392        8usize,
393        concat!(
394            "Offset of field: ",
395            stringify!(mm_allocator_t),
396            "::",
397            stringify!(segment_size)
398        )
399    );
400    assert_eq!(
401        unsafe { ::std::ptr::addr_of!((*ptr).segments) as usize - ptr as usize },
402        16usize,
403        concat!(
404            "Offset of field: ",
405            stringify!(mm_allocator_t),
406            "::",
407            stringify!(segments)
408        )
409    );
410    assert_eq!(
411        unsafe { ::std::ptr::addr_of!((*ptr).segments_free) as usize - ptr as usize },
412        24usize,
413        concat!(
414            "Offset of field: ",
415            stringify!(mm_allocator_t),
416            "::",
417            stringify!(segments_free)
418        )
419    );
420    assert_eq!(
421        unsafe { ::std::ptr::addr_of!((*ptr).current_segment_idx) as usize - ptr as usize },
422        32usize,
423        concat!(
424            "Offset of field: ",
425            stringify!(mm_allocator_t),
426            "::",
427            stringify!(current_segment_idx)
428        )
429    );
430    assert_eq!(
431        unsafe { ::std::ptr::addr_of!((*ptr).malloc_requests) as usize - ptr as usize },
432        40usize,
433        concat!(
434            "Offset of field: ",
435            stringify!(mm_allocator_t),
436            "::",
437            stringify!(malloc_requests)
438        )
439    );
440    assert_eq!(
441        unsafe { ::std::ptr::addr_of!((*ptr).malloc_requests_freed) as usize - ptr as usize },
442        48usize,
443        concat!(
444            "Offset of field: ",
445            stringify!(mm_allocator_t),
446            "::",
447            stringify!(malloc_requests_freed)
448        )
449    );
450}
451#[repr(C)]
452#[derive(Debug, Copy, Clone)]
453pub struct linear_penalties_t {
454    pub match_: ::std::os::raw::c_int,
455    pub mismatch: ::std::os::raw::c_int,
456    pub indel: ::std::os::raw::c_int,
457}
458#[test]
459fn bindgen_test_layout_linear_penalties_t() {
460    const UNINIT: ::std::mem::MaybeUninit<linear_penalties_t> = ::std::mem::MaybeUninit::uninit();
461    let ptr = UNINIT.as_ptr();
462    assert_eq!(
463        ::std::mem::size_of::<linear_penalties_t>(),
464        12usize,
465        concat!("Size of: ", stringify!(linear_penalties_t))
466    );
467    assert_eq!(
468        ::std::mem::align_of::<linear_penalties_t>(),
469        4usize,
470        concat!("Alignment of ", stringify!(linear_penalties_t))
471    );
472    assert_eq!(
473        unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize },
474        0usize,
475        concat!(
476            "Offset of field: ",
477            stringify!(linear_penalties_t),
478            "::",
479            stringify!(match_)
480        )
481    );
482    assert_eq!(
483        unsafe { ::std::ptr::addr_of!((*ptr).mismatch) as usize - ptr as usize },
484        4usize,
485        concat!(
486            "Offset of field: ",
487            stringify!(linear_penalties_t),
488            "::",
489            stringify!(mismatch)
490        )
491    );
492    assert_eq!(
493        unsafe { ::std::ptr::addr_of!((*ptr).indel) as usize - ptr as usize },
494        8usize,
495        concat!(
496            "Offset of field: ",
497            stringify!(linear_penalties_t),
498            "::",
499            stringify!(indel)
500        )
501    );
502}
503#[repr(C)]
504#[derive(Debug, Copy, Clone)]
505pub struct affine_penalties_t {
506    pub match_: ::std::os::raw::c_int,
507    pub mismatch: ::std::os::raw::c_int,
508    pub gap_opening: ::std::os::raw::c_int,
509    pub gap_extension: ::std::os::raw::c_int,
510}
511#[test]
512fn bindgen_test_layout_affine_penalties_t() {
513    const UNINIT: ::std::mem::MaybeUninit<affine_penalties_t> = ::std::mem::MaybeUninit::uninit();
514    let ptr = UNINIT.as_ptr();
515    assert_eq!(
516        ::std::mem::size_of::<affine_penalties_t>(),
517        16usize,
518        concat!("Size of: ", stringify!(affine_penalties_t))
519    );
520    assert_eq!(
521        ::std::mem::align_of::<affine_penalties_t>(),
522        4usize,
523        concat!("Alignment of ", stringify!(affine_penalties_t))
524    );
525    assert_eq!(
526        unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize },
527        0usize,
528        concat!(
529            "Offset of field: ",
530            stringify!(affine_penalties_t),
531            "::",
532            stringify!(match_)
533        )
534    );
535    assert_eq!(
536        unsafe { ::std::ptr::addr_of!((*ptr).mismatch) as usize - ptr as usize },
537        4usize,
538        concat!(
539            "Offset of field: ",
540            stringify!(affine_penalties_t),
541            "::",
542            stringify!(mismatch)
543        )
544    );
545    assert_eq!(
546        unsafe { ::std::ptr::addr_of!((*ptr).gap_opening) as usize - ptr as usize },
547        8usize,
548        concat!(
549            "Offset of field: ",
550            stringify!(affine_penalties_t),
551            "::",
552            stringify!(gap_opening)
553        )
554    );
555    assert_eq!(
556        unsafe { ::std::ptr::addr_of!((*ptr).gap_extension) as usize - ptr as usize },
557        12usize,
558        concat!(
559            "Offset of field: ",
560            stringify!(affine_penalties_t),
561            "::",
562            stringify!(gap_extension)
563        )
564    );
565}
566#[repr(C)]
567#[derive(Debug, Copy, Clone)]
568pub struct affine2p_penalties_t {
569    pub match_: ::std::os::raw::c_int,
570    pub mismatch: ::std::os::raw::c_int,
571    pub gap_opening1: ::std::os::raw::c_int,
572    pub gap_extension1: ::std::os::raw::c_int,
573    pub gap_opening2: ::std::os::raw::c_int,
574    pub gap_extension2: ::std::os::raw::c_int,
575}
576#[test]
577fn bindgen_test_layout_affine2p_penalties_t() {
578    const UNINIT: ::std::mem::MaybeUninit<affine2p_penalties_t> = ::std::mem::MaybeUninit::uninit();
579    let ptr = UNINIT.as_ptr();
580    assert_eq!(
581        ::std::mem::size_of::<affine2p_penalties_t>(),
582        24usize,
583        concat!("Size of: ", stringify!(affine2p_penalties_t))
584    );
585    assert_eq!(
586        ::std::mem::align_of::<affine2p_penalties_t>(),
587        4usize,
588        concat!("Alignment of ", stringify!(affine2p_penalties_t))
589    );
590    assert_eq!(
591        unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize },
592        0usize,
593        concat!(
594            "Offset of field: ",
595            stringify!(affine2p_penalties_t),
596            "::",
597            stringify!(match_)
598        )
599    );
600    assert_eq!(
601        unsafe { ::std::ptr::addr_of!((*ptr).mismatch) as usize - ptr as usize },
602        4usize,
603        concat!(
604            "Offset of field: ",
605            stringify!(affine2p_penalties_t),
606            "::",
607            stringify!(mismatch)
608        )
609    );
610    assert_eq!(
611        unsafe { ::std::ptr::addr_of!((*ptr).gap_opening1) as usize - ptr as usize },
612        8usize,
613        concat!(
614            "Offset of field: ",
615            stringify!(affine2p_penalties_t),
616            "::",
617            stringify!(gap_opening1)
618        )
619    );
620    assert_eq!(
621        unsafe { ::std::ptr::addr_of!((*ptr).gap_extension1) as usize - ptr as usize },
622        12usize,
623        concat!(
624            "Offset of field: ",
625            stringify!(affine2p_penalties_t),
626            "::",
627            stringify!(gap_extension1)
628        )
629    );
630    assert_eq!(
631        unsafe { ::std::ptr::addr_of!((*ptr).gap_opening2) as usize - ptr as usize },
632        16usize,
633        concat!(
634            "Offset of field: ",
635            stringify!(affine2p_penalties_t),
636            "::",
637            stringify!(gap_opening2)
638        )
639    );
640    assert_eq!(
641        unsafe { ::std::ptr::addr_of!((*ptr).gap_extension2) as usize - ptr as usize },
642        20usize,
643        concat!(
644            "Offset of field: ",
645            stringify!(affine2p_penalties_t),
646            "::",
647            stringify!(gap_extension2)
648        )
649    );
650}
651pub const affine2p_matrix_type_affine2p_matrix_M: affine2p_matrix_type = 0;
652pub const affine2p_matrix_type_affine2p_matrix_I1: affine2p_matrix_type = 1;
653pub const affine2p_matrix_type_affine2p_matrix_I2: affine2p_matrix_type = 2;
654pub const affine2p_matrix_type_affine2p_matrix_D1: affine2p_matrix_type = 3;
655pub const affine2p_matrix_type_affine2p_matrix_D2: affine2p_matrix_type = 4;
656pub type affine2p_matrix_type = ::std::os::raw::c_uint;
657#[repr(C)]
658#[derive(Debug, Copy, Clone)]
659pub struct cigar_t {
660    pub operations: *mut ::std::os::raw::c_char,
661    pub max_operations: ::std::os::raw::c_int,
662    pub begin_offset: ::std::os::raw::c_int,
663    pub end_offset: ::std::os::raw::c_int,
664    pub score: ::std::os::raw::c_int,
665    pub end_v: ::std::os::raw::c_int,
666    pub end_h: ::std::os::raw::c_int,
667    pub has_misms: bool,
668    pub cigar_buffer: *mut u32,
669    pub cigar_length: ::std::os::raw::c_int,
670}
671#[test]
672fn bindgen_test_layout_cigar_t() {
673    const UNINIT: ::std::mem::MaybeUninit<cigar_t> = ::std::mem::MaybeUninit::uninit();
674    let ptr = UNINIT.as_ptr();
675    assert_eq!(
676        ::std::mem::size_of::<cigar_t>(),
677        56usize,
678        concat!("Size of: ", stringify!(cigar_t))
679    );
680    assert_eq!(
681        ::std::mem::align_of::<cigar_t>(),
682        8usize,
683        concat!("Alignment of ", stringify!(cigar_t))
684    );
685    assert_eq!(
686        unsafe { ::std::ptr::addr_of!((*ptr).operations) as usize - ptr as usize },
687        0usize,
688        concat!(
689            "Offset of field: ",
690            stringify!(cigar_t),
691            "::",
692            stringify!(operations)
693        )
694    );
695    assert_eq!(
696        unsafe { ::std::ptr::addr_of!((*ptr).max_operations) as usize - ptr as usize },
697        8usize,
698        concat!(
699            "Offset of field: ",
700            stringify!(cigar_t),
701            "::",
702            stringify!(max_operations)
703        )
704    );
705    assert_eq!(
706        unsafe { ::std::ptr::addr_of!((*ptr).begin_offset) as usize - ptr as usize },
707        12usize,
708        concat!(
709            "Offset of field: ",
710            stringify!(cigar_t),
711            "::",
712            stringify!(begin_offset)
713        )
714    );
715    assert_eq!(
716        unsafe { ::std::ptr::addr_of!((*ptr).end_offset) as usize - ptr as usize },
717        16usize,
718        concat!(
719            "Offset of field: ",
720            stringify!(cigar_t),
721            "::",
722            stringify!(end_offset)
723        )
724    );
725    assert_eq!(
726        unsafe { ::std::ptr::addr_of!((*ptr).score) as usize - ptr as usize },
727        20usize,
728        concat!(
729            "Offset of field: ",
730            stringify!(cigar_t),
731            "::",
732            stringify!(score)
733        )
734    );
735    assert_eq!(
736        unsafe { ::std::ptr::addr_of!((*ptr).end_v) as usize - ptr as usize },
737        24usize,
738        concat!(
739            "Offset of field: ",
740            stringify!(cigar_t),
741            "::",
742            stringify!(end_v)
743        )
744    );
745    assert_eq!(
746        unsafe { ::std::ptr::addr_of!((*ptr).end_h) as usize - ptr as usize },
747        28usize,
748        concat!(
749            "Offset of field: ",
750            stringify!(cigar_t),
751            "::",
752            stringify!(end_h)
753        )
754    );
755    assert_eq!(
756        unsafe { ::std::ptr::addr_of!((*ptr).has_misms) as usize - ptr as usize },
757        32usize,
758        concat!(
759            "Offset of field: ",
760            stringify!(cigar_t),
761            "::",
762            stringify!(has_misms)
763        )
764    );
765    assert_eq!(
766        unsafe { ::std::ptr::addr_of!((*ptr).cigar_buffer) as usize - ptr as usize },
767        40usize,
768        concat!(
769            "Offset of field: ",
770            stringify!(cigar_t),
771            "::",
772            stringify!(cigar_buffer)
773        )
774    );
775    assert_eq!(
776        unsafe { ::std::ptr::addr_of!((*ptr).cigar_length) as usize - ptr as usize },
777        48usize,
778        concat!(
779            "Offset of field: ",
780            stringify!(cigar_t),
781            "::",
782            stringify!(cigar_length)
783        )
784    );
785}
786pub type wf_offset_t = i32;
787pub const distance_metric_t_indel: distance_metric_t = 0;
788pub const distance_metric_t_edit: distance_metric_t = 1;
789pub const distance_metric_t_gap_linear: distance_metric_t = 2;
790pub const distance_metric_t_gap_affine: distance_metric_t = 3;
791pub const distance_metric_t_gap_affine_2p: distance_metric_t = 4;
792pub type distance_metric_t = ::std::os::raw::c_uint;
793#[repr(C)]
794#[derive(Debug, Copy, Clone)]
795pub struct wavefront_penalties_t {
796    pub distance_metric: distance_metric_t,
797    pub match_: ::std::os::raw::c_int,
798    pub mismatch: ::std::os::raw::c_int,
799    pub gap_opening1: ::std::os::raw::c_int,
800    pub gap_extension1: ::std::os::raw::c_int,
801    pub gap_opening2: ::std::os::raw::c_int,
802    pub gap_extension2: ::std::os::raw::c_int,
803    pub linear_penalties: linear_penalties_t,
804    pub affine_penalties: affine_penalties_t,
805    pub affine2p_penalties: affine2p_penalties_t,
806    pub internal_gap_e: ::std::os::raw::c_int,
807}
808#[test]
809fn bindgen_test_layout_wavefront_penalties_t() {
810    const UNINIT: ::std::mem::MaybeUninit<wavefront_penalties_t> =
811        ::std::mem::MaybeUninit::uninit();
812    let ptr = UNINIT.as_ptr();
813    assert_eq!(
814        ::std::mem::size_of::<wavefront_penalties_t>(),
815        84usize,
816        concat!("Size of: ", stringify!(wavefront_penalties_t))
817    );
818    assert_eq!(
819        ::std::mem::align_of::<wavefront_penalties_t>(),
820        4usize,
821        concat!("Alignment of ", stringify!(wavefront_penalties_t))
822    );
823    assert_eq!(
824        unsafe { ::std::ptr::addr_of!((*ptr).distance_metric) as usize - ptr as usize },
825        0usize,
826        concat!(
827            "Offset of field: ",
828            stringify!(wavefront_penalties_t),
829            "::",
830            stringify!(distance_metric)
831        )
832    );
833    assert_eq!(
834        unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize },
835        4usize,
836        concat!(
837            "Offset of field: ",
838            stringify!(wavefront_penalties_t),
839            "::",
840            stringify!(match_)
841        )
842    );
843    assert_eq!(
844        unsafe { ::std::ptr::addr_of!((*ptr).mismatch) as usize - ptr as usize },
845        8usize,
846        concat!(
847            "Offset of field: ",
848            stringify!(wavefront_penalties_t),
849            "::",
850            stringify!(mismatch)
851        )
852    );
853    assert_eq!(
854        unsafe { ::std::ptr::addr_of!((*ptr).gap_opening1) as usize - ptr as usize },
855        12usize,
856        concat!(
857            "Offset of field: ",
858            stringify!(wavefront_penalties_t),
859            "::",
860            stringify!(gap_opening1)
861        )
862    );
863    assert_eq!(
864        unsafe { ::std::ptr::addr_of!((*ptr).gap_extension1) as usize - ptr as usize },
865        16usize,
866        concat!(
867            "Offset of field: ",
868            stringify!(wavefront_penalties_t),
869            "::",
870            stringify!(gap_extension1)
871        )
872    );
873    assert_eq!(
874        unsafe { ::std::ptr::addr_of!((*ptr).gap_opening2) as usize - ptr as usize },
875        20usize,
876        concat!(
877            "Offset of field: ",
878            stringify!(wavefront_penalties_t),
879            "::",
880            stringify!(gap_opening2)
881        )
882    );
883    assert_eq!(
884        unsafe { ::std::ptr::addr_of!((*ptr).gap_extension2) as usize - ptr as usize },
885        24usize,
886        concat!(
887            "Offset of field: ",
888            stringify!(wavefront_penalties_t),
889            "::",
890            stringify!(gap_extension2)
891        )
892    );
893    assert_eq!(
894        unsafe { ::std::ptr::addr_of!((*ptr).linear_penalties) as usize - ptr as usize },
895        28usize,
896        concat!(
897            "Offset of field: ",
898            stringify!(wavefront_penalties_t),
899            "::",
900            stringify!(linear_penalties)
901        )
902    );
903    assert_eq!(
904        unsafe { ::std::ptr::addr_of!((*ptr).affine_penalties) as usize - ptr as usize },
905        40usize,
906        concat!(
907            "Offset of field: ",
908            stringify!(wavefront_penalties_t),
909            "::",
910            stringify!(affine_penalties)
911        )
912    );
913    assert_eq!(
914        unsafe { ::std::ptr::addr_of!((*ptr).affine2p_penalties) as usize - ptr as usize },
915        56usize,
916        concat!(
917            "Offset of field: ",
918            stringify!(wavefront_penalties_t),
919            "::",
920            stringify!(affine2p_penalties)
921        )
922    );
923    assert_eq!(
924        unsafe { ::std::ptr::addr_of!((*ptr).internal_gap_e) as usize - ptr as usize },
925        80usize,
926        concat!(
927            "Offset of field: ",
928            stringify!(wavefront_penalties_t),
929            "::",
930            stringify!(internal_gap_e)
931        )
932    );
933}
934extern "C" {
935    pub fn wavefront_penalties_set_indel(wf_penalties: *mut wavefront_penalties_t);
936}
937extern "C" {
938    pub fn wavefront_penalties_set_edit(wf_penalties: *mut wavefront_penalties_t);
939}
940extern "C" {
941    pub fn wavefront_penalties_set_linear(
942        wf_penalties: *mut wavefront_penalties_t,
943        linear_penalties: *mut linear_penalties_t,
944    );
945}
946extern "C" {
947    pub fn wavefront_penalties_set_affine(
948        wf_penalties: *mut wavefront_penalties_t,
949        affine_penalties: *mut affine_penalties_t,
950    );
951}
952extern "C" {
953    pub fn wavefront_penalties_set_affine2p(
954        wf_penalties: *mut wavefront_penalties_t,
955        affine2p_penalties: *mut affine2p_penalties_t,
956    );
957}
958extern "C" {
959    pub fn wavefront_penalties_print(stream: *mut FILE, wf_penalties: *mut wavefront_penalties_t);
960}
961pub type wavefront_aligner_t = _wavefront_aligner_t;
962#[repr(C)]
963#[derive(Debug, Copy, Clone)]
964pub struct wavefront_plot_attr_t {
965    pub enabled: bool,
966    pub resolution_points: ::std::os::raw::c_int,
967    pub align_level: ::std::os::raw::c_int,
968}
969#[test]
970fn bindgen_test_layout_wavefront_plot_attr_t() {
971    const UNINIT: ::std::mem::MaybeUninit<wavefront_plot_attr_t> =
972        ::std::mem::MaybeUninit::uninit();
973    let ptr = UNINIT.as_ptr();
974    assert_eq!(
975        ::std::mem::size_of::<wavefront_plot_attr_t>(),
976        12usize,
977        concat!("Size of: ", stringify!(wavefront_plot_attr_t))
978    );
979    assert_eq!(
980        ::std::mem::align_of::<wavefront_plot_attr_t>(),
981        4usize,
982        concat!("Alignment of ", stringify!(wavefront_plot_attr_t))
983    );
984    assert_eq!(
985        unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize },
986        0usize,
987        concat!(
988            "Offset of field: ",
989            stringify!(wavefront_plot_attr_t),
990            "::",
991            stringify!(enabled)
992        )
993    );
994    assert_eq!(
995        unsafe { ::std::ptr::addr_of!((*ptr).resolution_points) as usize - ptr as usize },
996        4usize,
997        concat!(
998            "Offset of field: ",
999            stringify!(wavefront_plot_attr_t),
1000            "::",
1001            stringify!(resolution_points)
1002        )
1003    );
1004    assert_eq!(
1005        unsafe { ::std::ptr::addr_of!((*ptr).align_level) as usize - ptr as usize },
1006        8usize,
1007        concat!(
1008            "Offset of field: ",
1009            stringify!(wavefront_plot_attr_t),
1010            "::",
1011            stringify!(align_level)
1012        )
1013    );
1014}
1015#[repr(C)]
1016#[derive(Debug, Copy, Clone)]
1017pub struct wavefront_plot_t {
1018    pub attributes: wavefront_plot_attr_t,
1019    pub distance_metric: distance_metric_t,
1020    pub min_v: ::std::os::raw::c_int,
1021    pub max_v: ::std::os::raw::c_int,
1022    pub min_h: ::std::os::raw::c_int,
1023    pub max_h: ::std::os::raw::c_int,
1024    pub m_heatmap: *mut heatmap_t,
1025    pub i1_heatmap: *mut heatmap_t,
1026    pub d1_heatmap: *mut heatmap_t,
1027    pub i2_heatmap: *mut heatmap_t,
1028    pub d2_heatmap: *mut heatmap_t,
1029    pub behavior_heatmap: *mut heatmap_t,
1030}
1031#[test]
1032fn bindgen_test_layout_wavefront_plot_t() {
1033    const UNINIT: ::std::mem::MaybeUninit<wavefront_plot_t> = ::std::mem::MaybeUninit::uninit();
1034    let ptr = UNINIT.as_ptr();
1035    assert_eq!(
1036        ::std::mem::size_of::<wavefront_plot_t>(),
1037        80usize,
1038        concat!("Size of: ", stringify!(wavefront_plot_t))
1039    );
1040    assert_eq!(
1041        ::std::mem::align_of::<wavefront_plot_t>(),
1042        8usize,
1043        concat!("Alignment of ", stringify!(wavefront_plot_t))
1044    );
1045    assert_eq!(
1046        unsafe { ::std::ptr::addr_of!((*ptr).attributes) as usize - ptr as usize },
1047        0usize,
1048        concat!(
1049            "Offset of field: ",
1050            stringify!(wavefront_plot_t),
1051            "::",
1052            stringify!(attributes)
1053        )
1054    );
1055    assert_eq!(
1056        unsafe { ::std::ptr::addr_of!((*ptr).distance_metric) as usize - ptr as usize },
1057        12usize,
1058        concat!(
1059            "Offset of field: ",
1060            stringify!(wavefront_plot_t),
1061            "::",
1062            stringify!(distance_metric)
1063        )
1064    );
1065    assert_eq!(
1066        unsafe { ::std::ptr::addr_of!((*ptr).min_v) as usize - ptr as usize },
1067        16usize,
1068        concat!(
1069            "Offset of field: ",
1070            stringify!(wavefront_plot_t),
1071            "::",
1072            stringify!(min_v)
1073        )
1074    );
1075    assert_eq!(
1076        unsafe { ::std::ptr::addr_of!((*ptr).max_v) as usize - ptr as usize },
1077        20usize,
1078        concat!(
1079            "Offset of field: ",
1080            stringify!(wavefront_plot_t),
1081            "::",
1082            stringify!(max_v)
1083        )
1084    );
1085    assert_eq!(
1086        unsafe { ::std::ptr::addr_of!((*ptr).min_h) as usize - ptr as usize },
1087        24usize,
1088        concat!(
1089            "Offset of field: ",
1090            stringify!(wavefront_plot_t),
1091            "::",
1092            stringify!(min_h)
1093        )
1094    );
1095    assert_eq!(
1096        unsafe { ::std::ptr::addr_of!((*ptr).max_h) as usize - ptr as usize },
1097        28usize,
1098        concat!(
1099            "Offset of field: ",
1100            stringify!(wavefront_plot_t),
1101            "::",
1102            stringify!(max_h)
1103        )
1104    );
1105    assert_eq!(
1106        unsafe { ::std::ptr::addr_of!((*ptr).m_heatmap) as usize - ptr as usize },
1107        32usize,
1108        concat!(
1109            "Offset of field: ",
1110            stringify!(wavefront_plot_t),
1111            "::",
1112            stringify!(m_heatmap)
1113        )
1114    );
1115    assert_eq!(
1116        unsafe { ::std::ptr::addr_of!((*ptr).i1_heatmap) as usize - ptr as usize },
1117        40usize,
1118        concat!(
1119            "Offset of field: ",
1120            stringify!(wavefront_plot_t),
1121            "::",
1122            stringify!(i1_heatmap)
1123        )
1124    );
1125    assert_eq!(
1126        unsafe { ::std::ptr::addr_of!((*ptr).d1_heatmap) as usize - ptr as usize },
1127        48usize,
1128        concat!(
1129            "Offset of field: ",
1130            stringify!(wavefront_plot_t),
1131            "::",
1132            stringify!(d1_heatmap)
1133        )
1134    );
1135    assert_eq!(
1136        unsafe { ::std::ptr::addr_of!((*ptr).i2_heatmap) as usize - ptr as usize },
1137        56usize,
1138        concat!(
1139            "Offset of field: ",
1140            stringify!(wavefront_plot_t),
1141            "::",
1142            stringify!(i2_heatmap)
1143        )
1144    );
1145    assert_eq!(
1146        unsafe { ::std::ptr::addr_of!((*ptr).d2_heatmap) as usize - ptr as usize },
1147        64usize,
1148        concat!(
1149            "Offset of field: ",
1150            stringify!(wavefront_plot_t),
1151            "::",
1152            stringify!(d2_heatmap)
1153        )
1154    );
1155    assert_eq!(
1156        unsafe { ::std::ptr::addr_of!((*ptr).behavior_heatmap) as usize - ptr as usize },
1157        72usize,
1158        concat!(
1159            "Offset of field: ",
1160            stringify!(wavefront_plot_t),
1161            "::",
1162            stringify!(behavior_heatmap)
1163        )
1164    );
1165}
1166extern "C" {
1167    pub fn wavefront_plot_new(
1168        distance_metric: distance_metric_t,
1169        pattern_length: ::std::os::raw::c_int,
1170        text_length: ::std::os::raw::c_int,
1171        attributes: *mut wavefront_plot_attr_t,
1172    ) -> *mut wavefront_plot_t;
1173}
1174extern "C" {
1175    pub fn wavefront_plot_resize(
1176        wf_plot: *mut wavefront_plot_t,
1177        pattern_length: ::std::os::raw::c_int,
1178        text_length: ::std::os::raw::c_int,
1179    );
1180}
1181extern "C" {
1182    pub fn wavefront_plot_delete(wf_plot: *mut wavefront_plot_t);
1183}
1184extern "C" {
1185    pub fn wavefront_plot(
1186        wf_aligner: *mut wavefront_aligner_t,
1187        score: ::std::os::raw::c_int,
1188        align_level: ::std::os::raw::c_int,
1189    );
1190}
1191extern "C" {
1192    pub fn wavefront_plot_print(stream: *mut FILE, wf_aligner: *mut wavefront_aligner_t);
1193}
1194extern "C" {
1195    pub fn wavefront_aligner_print(
1196        stream: *mut FILE,
1197        wf_aligner: *mut wavefront_aligner_t,
1198        score_begin: ::std::os::raw::c_int,
1199        score_end: ::std::os::raw::c_int,
1200        num_wfs_per_row: ::std::os::raw::c_int,
1201        backtrace_length: ::std::os::raw::c_int,
1202    );
1203}
1204pub const wf_heuristic_strategy_wf_heuristic_none: wf_heuristic_strategy = 0;
1205pub const wf_heuristic_strategy_wf_heuristic_banded_static: wf_heuristic_strategy = 1;
1206pub const wf_heuristic_strategy_wf_heuristic_banded_adaptive: wf_heuristic_strategy = 2;
1207pub const wf_heuristic_strategy_wf_heuristic_wfadaptive: wf_heuristic_strategy = 4;
1208pub const wf_heuristic_strategy_wf_heuristic_xdrop: wf_heuristic_strategy = 16;
1209pub const wf_heuristic_strategy_wf_heuristic_zdrop: wf_heuristic_strategy = 32;
1210pub const wf_heuristic_strategy_wf_heuristic_wfmash: wf_heuristic_strategy = 64;
1211pub type wf_heuristic_strategy = ::std::os::raw::c_uint;
1212#[repr(C)]
1213#[derive(Debug, Copy, Clone)]
1214pub struct wavefront_heuristic_t {
1215    pub strategy: wf_heuristic_strategy,
1216    pub steps_between_cutoffs: ::std::os::raw::c_int,
1217    pub min_k: ::std::os::raw::c_int,
1218    pub max_k: ::std::os::raw::c_int,
1219    pub min_wavefront_length: ::std::os::raw::c_int,
1220    pub max_distance_threshold: ::std::os::raw::c_int,
1221    pub xdrop: ::std::os::raw::c_int,
1222    pub zdrop: ::std::os::raw::c_int,
1223    pub steps_wait: ::std::os::raw::c_int,
1224    pub max_sw_score: ::std::os::raw::c_int,
1225    pub max_wf_score: ::std::os::raw::c_int,
1226    pub max_sw_score_offset: ::std::os::raw::c_int,
1227    pub max_sw_score_k: ::std::os::raw::c_int,
1228}
1229#[test]
1230fn bindgen_test_layout_wavefront_heuristic_t() {
1231    const UNINIT: ::std::mem::MaybeUninit<wavefront_heuristic_t> =
1232        ::std::mem::MaybeUninit::uninit();
1233    let ptr = UNINIT.as_ptr();
1234    assert_eq!(
1235        ::std::mem::size_of::<wavefront_heuristic_t>(),
1236        52usize,
1237        concat!("Size of: ", stringify!(wavefront_heuristic_t))
1238    );
1239    assert_eq!(
1240        ::std::mem::align_of::<wavefront_heuristic_t>(),
1241        4usize,
1242        concat!("Alignment of ", stringify!(wavefront_heuristic_t))
1243    );
1244    assert_eq!(
1245        unsafe { ::std::ptr::addr_of!((*ptr).strategy) as usize - ptr as usize },
1246        0usize,
1247        concat!(
1248            "Offset of field: ",
1249            stringify!(wavefront_heuristic_t),
1250            "::",
1251            stringify!(strategy)
1252        )
1253    );
1254    assert_eq!(
1255        unsafe { ::std::ptr::addr_of!((*ptr).steps_between_cutoffs) as usize - ptr as usize },
1256        4usize,
1257        concat!(
1258            "Offset of field: ",
1259            stringify!(wavefront_heuristic_t),
1260            "::",
1261            stringify!(steps_between_cutoffs)
1262        )
1263    );
1264    assert_eq!(
1265        unsafe { ::std::ptr::addr_of!((*ptr).min_k) as usize - ptr as usize },
1266        8usize,
1267        concat!(
1268            "Offset of field: ",
1269            stringify!(wavefront_heuristic_t),
1270            "::",
1271            stringify!(min_k)
1272        )
1273    );
1274    assert_eq!(
1275        unsafe { ::std::ptr::addr_of!((*ptr).max_k) as usize - ptr as usize },
1276        12usize,
1277        concat!(
1278            "Offset of field: ",
1279            stringify!(wavefront_heuristic_t),
1280            "::",
1281            stringify!(max_k)
1282        )
1283    );
1284    assert_eq!(
1285        unsafe { ::std::ptr::addr_of!((*ptr).min_wavefront_length) as usize - ptr as usize },
1286        16usize,
1287        concat!(
1288            "Offset of field: ",
1289            stringify!(wavefront_heuristic_t),
1290            "::",
1291            stringify!(min_wavefront_length)
1292        )
1293    );
1294    assert_eq!(
1295        unsafe { ::std::ptr::addr_of!((*ptr).max_distance_threshold) as usize - ptr as usize },
1296        20usize,
1297        concat!(
1298            "Offset of field: ",
1299            stringify!(wavefront_heuristic_t),
1300            "::",
1301            stringify!(max_distance_threshold)
1302        )
1303    );
1304    assert_eq!(
1305        unsafe { ::std::ptr::addr_of!((*ptr).xdrop) as usize - ptr as usize },
1306        24usize,
1307        concat!(
1308            "Offset of field: ",
1309            stringify!(wavefront_heuristic_t),
1310            "::",
1311            stringify!(xdrop)
1312        )
1313    );
1314    assert_eq!(
1315        unsafe { ::std::ptr::addr_of!((*ptr).zdrop) as usize - ptr as usize },
1316        28usize,
1317        concat!(
1318            "Offset of field: ",
1319            stringify!(wavefront_heuristic_t),
1320            "::",
1321            stringify!(zdrop)
1322        )
1323    );
1324    assert_eq!(
1325        unsafe { ::std::ptr::addr_of!((*ptr).steps_wait) as usize - ptr as usize },
1326        32usize,
1327        concat!(
1328            "Offset of field: ",
1329            stringify!(wavefront_heuristic_t),
1330            "::",
1331            stringify!(steps_wait)
1332        )
1333    );
1334    assert_eq!(
1335        unsafe { ::std::ptr::addr_of!((*ptr).max_sw_score) as usize - ptr as usize },
1336        36usize,
1337        concat!(
1338            "Offset of field: ",
1339            stringify!(wavefront_heuristic_t),
1340            "::",
1341            stringify!(max_sw_score)
1342        )
1343    );
1344    assert_eq!(
1345        unsafe { ::std::ptr::addr_of!((*ptr).max_wf_score) as usize - ptr as usize },
1346        40usize,
1347        concat!(
1348            "Offset of field: ",
1349            stringify!(wavefront_heuristic_t),
1350            "::",
1351            stringify!(max_wf_score)
1352        )
1353    );
1354    assert_eq!(
1355        unsafe { ::std::ptr::addr_of!((*ptr).max_sw_score_offset) as usize - ptr as usize },
1356        44usize,
1357        concat!(
1358            "Offset of field: ",
1359            stringify!(wavefront_heuristic_t),
1360            "::",
1361            stringify!(max_sw_score_offset)
1362        )
1363    );
1364    assert_eq!(
1365        unsafe { ::std::ptr::addr_of!((*ptr).max_sw_score_k) as usize - ptr as usize },
1366        48usize,
1367        concat!(
1368            "Offset of field: ",
1369            stringify!(wavefront_heuristic_t),
1370            "::",
1371            stringify!(max_sw_score_k)
1372        )
1373    );
1374}
1375extern "C" {
1376    pub fn wavefront_heuristic_set_none(wf_heuristic: *mut wavefront_heuristic_t);
1377}
1378extern "C" {
1379    pub fn wavefront_heuristic_set_wfadaptive(
1380        wf_heuristic: *mut wavefront_heuristic_t,
1381        min_wavefront_length: ::std::os::raw::c_int,
1382        max_distance_threshold: ::std::os::raw::c_int,
1383        steps_between_cutoffs: ::std::os::raw::c_int,
1384    );
1385}
1386extern "C" {
1387    pub fn wavefront_heuristic_set_wfmash(
1388        wf_heuristic: *mut wavefront_heuristic_t,
1389        min_wavefront_length: ::std::os::raw::c_int,
1390        max_distance_threshold: ::std::os::raw::c_int,
1391        steps_between_cutoffs: ::std::os::raw::c_int,
1392    );
1393}
1394extern "C" {
1395    pub fn wavefront_heuristic_set_xdrop(
1396        wf_heuristic: *mut wavefront_heuristic_t,
1397        xdrop: ::std::os::raw::c_int,
1398        steps_between_cutoffs: ::std::os::raw::c_int,
1399    );
1400}
1401extern "C" {
1402    pub fn wavefront_heuristic_set_zdrop(
1403        wf_heuristic: *mut wavefront_heuristic_t,
1404        ydrop: ::std::os::raw::c_int,
1405        steps_between_cutoffs: ::std::os::raw::c_int,
1406    );
1407}
1408extern "C" {
1409    pub fn wavefront_heuristic_set_banded_static(
1410        wf_heuristic: *mut wavefront_heuristic_t,
1411        band_min_k: ::std::os::raw::c_int,
1412        band_max_k: ::std::os::raw::c_int,
1413    );
1414}
1415extern "C" {
1416    pub fn wavefront_heuristic_set_banded_adaptive(
1417        wf_heuristic: *mut wavefront_heuristic_t,
1418        band_min_k: ::std::os::raw::c_int,
1419        band_max_k: ::std::os::raw::c_int,
1420        steps_between_cutoffs: ::std::os::raw::c_int,
1421    );
1422}
1423extern "C" {
1424    pub fn wavefront_heuristic_clear(wf_heuristic: *mut wavefront_heuristic_t);
1425}
1426extern "C" {
1427    pub fn wavefront_heuristic_cufoff(
1428        wf_aligner: *mut wavefront_aligner_t,
1429        score: ::std::os::raw::c_int,
1430        score_mod: ::std::os::raw::c_int,
1431    ) -> bool;
1432}
1433extern "C" {
1434    pub fn wavefront_heuristic_print(stream: *mut FILE, wf_heuristic: *mut wavefront_heuristic_t);
1435}
1436pub const alignment_scope_t_compute_score: alignment_scope_t = 0;
1437pub const alignment_scope_t_compute_alignment: alignment_scope_t = 1;
1438pub type alignment_scope_t = ::std::os::raw::c_uint;
1439pub const alignment_span_t_alignment_end2end: alignment_span_t = 0;
1440pub const alignment_span_t_alignment_endsfree: alignment_span_t = 1;
1441pub type alignment_span_t = ::std::os::raw::c_uint;
1442#[repr(C)]
1443#[derive(Debug, Copy, Clone)]
1444pub struct alignment_form_t {
1445    pub span: alignment_span_t,
1446    pub extension: bool,
1447    pub pattern_begin_free: ::std::os::raw::c_int,
1448    pub pattern_end_free: ::std::os::raw::c_int,
1449    pub text_begin_free: ::std::os::raw::c_int,
1450    pub text_end_free: ::std::os::raw::c_int,
1451}
1452#[test]
1453fn bindgen_test_layout_alignment_form_t() {
1454    const UNINIT: ::std::mem::MaybeUninit<alignment_form_t> = ::std::mem::MaybeUninit::uninit();
1455    let ptr = UNINIT.as_ptr();
1456    assert_eq!(
1457        ::std::mem::size_of::<alignment_form_t>(),
1458        24usize,
1459        concat!("Size of: ", stringify!(alignment_form_t))
1460    );
1461    assert_eq!(
1462        ::std::mem::align_of::<alignment_form_t>(),
1463        4usize,
1464        concat!("Alignment of ", stringify!(alignment_form_t))
1465    );
1466    assert_eq!(
1467        unsafe { ::std::ptr::addr_of!((*ptr).span) as usize - ptr as usize },
1468        0usize,
1469        concat!(
1470            "Offset of field: ",
1471            stringify!(alignment_form_t),
1472            "::",
1473            stringify!(span)
1474        )
1475    );
1476    assert_eq!(
1477        unsafe { ::std::ptr::addr_of!((*ptr).extension) as usize - ptr as usize },
1478        4usize,
1479        concat!(
1480            "Offset of field: ",
1481            stringify!(alignment_form_t),
1482            "::",
1483            stringify!(extension)
1484        )
1485    );
1486    assert_eq!(
1487        unsafe { ::std::ptr::addr_of!((*ptr).pattern_begin_free) as usize - ptr as usize },
1488        8usize,
1489        concat!(
1490            "Offset of field: ",
1491            stringify!(alignment_form_t),
1492            "::",
1493            stringify!(pattern_begin_free)
1494        )
1495    );
1496    assert_eq!(
1497        unsafe { ::std::ptr::addr_of!((*ptr).pattern_end_free) as usize - ptr as usize },
1498        12usize,
1499        concat!(
1500            "Offset of field: ",
1501            stringify!(alignment_form_t),
1502            "::",
1503            stringify!(pattern_end_free)
1504        )
1505    );
1506    assert_eq!(
1507        unsafe { ::std::ptr::addr_of!((*ptr).text_begin_free) as usize - ptr as usize },
1508        16usize,
1509        concat!(
1510            "Offset of field: ",
1511            stringify!(alignment_form_t),
1512            "::",
1513            stringify!(text_begin_free)
1514        )
1515    );
1516    assert_eq!(
1517        unsafe { ::std::ptr::addr_of!((*ptr).text_end_free) as usize - ptr as usize },
1518        20usize,
1519        concat!(
1520            "Offset of field: ",
1521            stringify!(alignment_form_t),
1522            "::",
1523            stringify!(text_end_free)
1524        )
1525    );
1526}
1527#[repr(C)]
1528#[derive(Copy, Clone)]
1529pub struct alignment_system_t {
1530    pub max_alignment_steps: ::std::os::raw::c_int,
1531    pub probe_interval_global: ::std::os::raw::c_int,
1532    pub probe_interval_compact: ::std::os::raw::c_int,
1533    pub max_partial_compacts: u64,
1534    pub max_memory_compact: u64,
1535    pub max_memory_resident: u64,
1536    pub max_memory_abort: u64,
1537    pub verbose: ::std::os::raw::c_int,
1538    pub check_alignment_correct: bool,
1539    pub timer: profiler_timer_t,
1540    pub max_num_threads: ::std::os::raw::c_int,
1541    pub min_offsets_per_thread: ::std::os::raw::c_int,
1542}
1543#[test]
1544fn bindgen_test_layout_alignment_system_t() {
1545    const UNINIT: ::std::mem::MaybeUninit<alignment_system_t> = ::std::mem::MaybeUninit::uninit();
1546    let ptr = UNINIT.as_ptr();
1547    assert_eq!(
1548        ::std::mem::size_of::<alignment_system_t>(),
1549        152usize,
1550        concat!("Size of: ", stringify!(alignment_system_t))
1551    );
1552    assert_eq!(
1553        ::std::mem::align_of::<alignment_system_t>(),
1554        8usize,
1555        concat!("Alignment of ", stringify!(alignment_system_t))
1556    );
1557    assert_eq!(
1558        unsafe { ::std::ptr::addr_of!((*ptr).max_alignment_steps) as usize - ptr as usize },
1559        0usize,
1560        concat!(
1561            "Offset of field: ",
1562            stringify!(alignment_system_t),
1563            "::",
1564            stringify!(max_alignment_steps)
1565        )
1566    );
1567    assert_eq!(
1568        unsafe { ::std::ptr::addr_of!((*ptr).probe_interval_global) as usize - ptr as usize },
1569        4usize,
1570        concat!(
1571            "Offset of field: ",
1572            stringify!(alignment_system_t),
1573            "::",
1574            stringify!(probe_interval_global)
1575        )
1576    );
1577    assert_eq!(
1578        unsafe { ::std::ptr::addr_of!((*ptr).probe_interval_compact) as usize - ptr as usize },
1579        8usize,
1580        concat!(
1581            "Offset of field: ",
1582            stringify!(alignment_system_t),
1583            "::",
1584            stringify!(probe_interval_compact)
1585        )
1586    );
1587    assert_eq!(
1588        unsafe { ::std::ptr::addr_of!((*ptr).max_partial_compacts) as usize - ptr as usize },
1589        16usize,
1590        concat!(
1591            "Offset of field: ",
1592            stringify!(alignment_system_t),
1593            "::",
1594            stringify!(max_partial_compacts)
1595        )
1596    );
1597    assert_eq!(
1598        unsafe { ::std::ptr::addr_of!((*ptr).max_memory_compact) as usize - ptr as usize },
1599        24usize,
1600        concat!(
1601            "Offset of field: ",
1602            stringify!(alignment_system_t),
1603            "::",
1604            stringify!(max_memory_compact)
1605        )
1606    );
1607    assert_eq!(
1608        unsafe { ::std::ptr::addr_of!((*ptr).max_memory_resident) as usize - ptr as usize },
1609        32usize,
1610        concat!(
1611            "Offset of field: ",
1612            stringify!(alignment_system_t),
1613            "::",
1614            stringify!(max_memory_resident)
1615        )
1616    );
1617    assert_eq!(
1618        unsafe { ::std::ptr::addr_of!((*ptr).max_memory_abort) as usize - ptr as usize },
1619        40usize,
1620        concat!(
1621            "Offset of field: ",
1622            stringify!(alignment_system_t),
1623            "::",
1624            stringify!(max_memory_abort)
1625        )
1626    );
1627    assert_eq!(
1628        unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize },
1629        48usize,
1630        concat!(
1631            "Offset of field: ",
1632            stringify!(alignment_system_t),
1633            "::",
1634            stringify!(verbose)
1635        )
1636    );
1637    assert_eq!(
1638        unsafe { ::std::ptr::addr_of!((*ptr).check_alignment_correct) as usize - ptr as usize },
1639        52usize,
1640        concat!(
1641            "Offset of field: ",
1642            stringify!(alignment_system_t),
1643            "::",
1644            stringify!(check_alignment_correct)
1645        )
1646    );
1647    assert_eq!(
1648        unsafe { ::std::ptr::addr_of!((*ptr).timer) as usize - ptr as usize },
1649        56usize,
1650        concat!(
1651            "Offset of field: ",
1652            stringify!(alignment_system_t),
1653            "::",
1654            stringify!(timer)
1655        )
1656    );
1657    assert_eq!(
1658        unsafe { ::std::ptr::addr_of!((*ptr).max_num_threads) as usize - ptr as usize },
1659        144usize,
1660        concat!(
1661            "Offset of field: ",
1662            stringify!(alignment_system_t),
1663            "::",
1664            stringify!(max_num_threads)
1665        )
1666    );
1667    assert_eq!(
1668        unsafe { ::std::ptr::addr_of!((*ptr).min_offsets_per_thread) as usize - ptr as usize },
1669        148usize,
1670        concat!(
1671            "Offset of field: ",
1672            stringify!(alignment_system_t),
1673            "::",
1674            stringify!(min_offsets_per_thread)
1675        )
1676    );
1677}
1678pub const wavefront_memory_t_wavefront_memory_high: wavefront_memory_t = 0;
1679pub const wavefront_memory_t_wavefront_memory_med: wavefront_memory_t = 1;
1680pub const wavefront_memory_t_wavefront_memory_low: wavefront_memory_t = 2;
1681pub const wavefront_memory_t_wavefront_memory_ultralow: wavefront_memory_t = 3;
1682pub type wavefront_memory_t = ::std::os::raw::c_uint;
1683#[repr(C)]
1684#[derive(Copy, Clone)]
1685pub struct wavefront_aligner_attr_t {
1686    pub distance_metric: distance_metric_t,
1687    pub alignment_scope: alignment_scope_t,
1688    pub alignment_form: alignment_form_t,
1689    pub linear_penalties: linear_penalties_t,
1690    pub affine_penalties: affine_penalties_t,
1691    pub affine2p_penalties: affine2p_penalties_t,
1692    pub heuristic: wavefront_heuristic_t,
1693    pub memory_mode: wavefront_memory_t,
1694    pub mm_allocator: *mut mm_allocator_t,
1695    pub plot: wavefront_plot_attr_t,
1696    pub system: alignment_system_t,
1697}
1698#[test]
1699fn bindgen_test_layout_wavefront_aligner_attr_t() {
1700    const UNINIT: ::std::mem::MaybeUninit<wavefront_aligner_attr_t> =
1701        ::std::mem::MaybeUninit::uninit();
1702    let ptr = UNINIT.as_ptr();
1703    assert_eq!(
1704        ::std::mem::size_of::<wavefront_aligner_attr_t>(),
1705        320usize,
1706        concat!("Size of: ", stringify!(wavefront_aligner_attr_t))
1707    );
1708    assert_eq!(
1709        ::std::mem::align_of::<wavefront_aligner_attr_t>(),
1710        8usize,
1711        concat!("Alignment of ", stringify!(wavefront_aligner_attr_t))
1712    );
1713    assert_eq!(
1714        unsafe { ::std::ptr::addr_of!((*ptr).distance_metric) as usize - ptr as usize },
1715        0usize,
1716        concat!(
1717            "Offset of field: ",
1718            stringify!(wavefront_aligner_attr_t),
1719            "::",
1720            stringify!(distance_metric)
1721        )
1722    );
1723    assert_eq!(
1724        unsafe { ::std::ptr::addr_of!((*ptr).alignment_scope) as usize - ptr as usize },
1725        4usize,
1726        concat!(
1727            "Offset of field: ",
1728            stringify!(wavefront_aligner_attr_t),
1729            "::",
1730            stringify!(alignment_scope)
1731        )
1732    );
1733    assert_eq!(
1734        unsafe { ::std::ptr::addr_of!((*ptr).alignment_form) as usize - ptr as usize },
1735        8usize,
1736        concat!(
1737            "Offset of field: ",
1738            stringify!(wavefront_aligner_attr_t),
1739            "::",
1740            stringify!(alignment_form)
1741        )
1742    );
1743    assert_eq!(
1744        unsafe { ::std::ptr::addr_of!((*ptr).linear_penalties) as usize - ptr as usize },
1745        32usize,
1746        concat!(
1747            "Offset of field: ",
1748            stringify!(wavefront_aligner_attr_t),
1749            "::",
1750            stringify!(linear_penalties)
1751        )
1752    );
1753    assert_eq!(
1754        unsafe { ::std::ptr::addr_of!((*ptr).affine_penalties) as usize - ptr as usize },
1755        44usize,
1756        concat!(
1757            "Offset of field: ",
1758            stringify!(wavefront_aligner_attr_t),
1759            "::",
1760            stringify!(affine_penalties)
1761        )
1762    );
1763    assert_eq!(
1764        unsafe { ::std::ptr::addr_of!((*ptr).affine2p_penalties) as usize - ptr as usize },
1765        60usize,
1766        concat!(
1767            "Offset of field: ",
1768            stringify!(wavefront_aligner_attr_t),
1769            "::",
1770            stringify!(affine2p_penalties)
1771        )
1772    );
1773    assert_eq!(
1774        unsafe { ::std::ptr::addr_of!((*ptr).heuristic) as usize - ptr as usize },
1775        84usize,
1776        concat!(
1777            "Offset of field: ",
1778            stringify!(wavefront_aligner_attr_t),
1779            "::",
1780            stringify!(heuristic)
1781        )
1782    );
1783    assert_eq!(
1784        unsafe { ::std::ptr::addr_of!((*ptr).memory_mode) as usize - ptr as usize },
1785        136usize,
1786        concat!(
1787            "Offset of field: ",
1788            stringify!(wavefront_aligner_attr_t),
1789            "::",
1790            stringify!(memory_mode)
1791        )
1792    );
1793    assert_eq!(
1794        unsafe { ::std::ptr::addr_of!((*ptr).mm_allocator) as usize - ptr as usize },
1795        144usize,
1796        concat!(
1797            "Offset of field: ",
1798            stringify!(wavefront_aligner_attr_t),
1799            "::",
1800            stringify!(mm_allocator)
1801        )
1802    );
1803    assert_eq!(
1804        unsafe { ::std::ptr::addr_of!((*ptr).plot) as usize - ptr as usize },
1805        152usize,
1806        concat!(
1807            "Offset of field: ",
1808            stringify!(wavefront_aligner_attr_t),
1809            "::",
1810            stringify!(plot)
1811        )
1812    );
1813    assert_eq!(
1814        unsafe { ::std::ptr::addr_of!((*ptr).system) as usize - ptr as usize },
1815        168usize,
1816        concat!(
1817            "Offset of field: ",
1818            stringify!(wavefront_aligner_attr_t),
1819            "::",
1820            stringify!(system)
1821        )
1822    );
1823}
1824extern "C" {
1825    pub static mut wavefront_aligner_attr_default: wavefront_aligner_attr_t;
1826}
1827pub type alignment_match_funct_t = ::std::option::Option<
1828    unsafe extern "C" fn(
1829        arg1: ::std::os::raw::c_int,
1830        arg2: ::std::os::raw::c_int,
1831        arg3: *mut ::std::os::raw::c_void,
1832    ) -> ::std::os::raw::c_int,
1833>;
1834pub const wf_sequences_mode_t_wf_sequences_ascii: wf_sequences_mode_t = 0;
1835pub const wf_sequences_mode_t_wf_sequences_lambda: wf_sequences_mode_t = 1;
1836pub const wf_sequences_mode_t_wf_sequences_packed2bits: wf_sequences_mode_t = 2;
1837pub type wf_sequences_mode_t = ::std::os::raw::c_uint;
1838#[repr(C)]
1839#[derive(Debug, Copy, Clone)]
1840pub struct wavefront_sequences_t {
1841    pub mode: wf_sequences_mode_t,
1842    pub reverse: bool,
1843    pub pattern: *mut ::std::os::raw::c_char,
1844    pub text: *mut ::std::os::raw::c_char,
1845    pub pattern_begin: ::std::os::raw::c_int,
1846    pub pattern_length: ::std::os::raw::c_int,
1847    pub text_begin: ::std::os::raw::c_int,
1848    pub text_length: ::std::os::raw::c_int,
1849    pub match_funct: alignment_match_funct_t,
1850    pub match_funct_arguments: *mut ::std::os::raw::c_void,
1851    pub seq_buffer: *mut ::std::os::raw::c_char,
1852    pub seq_buffer_allocated: ::std::os::raw::c_int,
1853    pub pattern_buffer: *mut ::std::os::raw::c_char,
1854    pub text_buffer: *mut ::std::os::raw::c_char,
1855    pub pattern_buffer_length: ::std::os::raw::c_int,
1856    pub text_buffer_length: ::std::os::raw::c_int,
1857    pub pattern_eos: ::std::os::raw::c_char,
1858    pub text_eos: ::std::os::raw::c_char,
1859}
1860#[test]
1861fn bindgen_test_layout_wavefront_sequences_t() {
1862    const UNINIT: ::std::mem::MaybeUninit<wavefront_sequences_t> =
1863        ::std::mem::MaybeUninit::uninit();
1864    let ptr = UNINIT.as_ptr();
1865    assert_eq!(
1866        ::std::mem::size_of::<wavefront_sequences_t>(),
1867        104usize,
1868        concat!("Size of: ", stringify!(wavefront_sequences_t))
1869    );
1870    assert_eq!(
1871        ::std::mem::align_of::<wavefront_sequences_t>(),
1872        8usize,
1873        concat!("Alignment of ", stringify!(wavefront_sequences_t))
1874    );
1875    assert_eq!(
1876        unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize },
1877        0usize,
1878        concat!(
1879            "Offset of field: ",
1880            stringify!(wavefront_sequences_t),
1881            "::",
1882            stringify!(mode)
1883        )
1884    );
1885    assert_eq!(
1886        unsafe { ::std::ptr::addr_of!((*ptr).reverse) as usize - ptr as usize },
1887        4usize,
1888        concat!(
1889            "Offset of field: ",
1890            stringify!(wavefront_sequences_t),
1891            "::",
1892            stringify!(reverse)
1893        )
1894    );
1895    assert_eq!(
1896        unsafe { ::std::ptr::addr_of!((*ptr).pattern) as usize - ptr as usize },
1897        8usize,
1898        concat!(
1899            "Offset of field: ",
1900            stringify!(wavefront_sequences_t),
1901            "::",
1902            stringify!(pattern)
1903        )
1904    );
1905    assert_eq!(
1906        unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize },
1907        16usize,
1908        concat!(
1909            "Offset of field: ",
1910            stringify!(wavefront_sequences_t),
1911            "::",
1912            stringify!(text)
1913        )
1914    );
1915    assert_eq!(
1916        unsafe { ::std::ptr::addr_of!((*ptr).pattern_begin) as usize - ptr as usize },
1917        24usize,
1918        concat!(
1919            "Offset of field: ",
1920            stringify!(wavefront_sequences_t),
1921            "::",
1922            stringify!(pattern_begin)
1923        )
1924    );
1925    assert_eq!(
1926        unsafe { ::std::ptr::addr_of!((*ptr).pattern_length) as usize - ptr as usize },
1927        28usize,
1928        concat!(
1929            "Offset of field: ",
1930            stringify!(wavefront_sequences_t),
1931            "::",
1932            stringify!(pattern_length)
1933        )
1934    );
1935    assert_eq!(
1936        unsafe { ::std::ptr::addr_of!((*ptr).text_begin) as usize - ptr as usize },
1937        32usize,
1938        concat!(
1939            "Offset of field: ",
1940            stringify!(wavefront_sequences_t),
1941            "::",
1942            stringify!(text_begin)
1943        )
1944    );
1945    assert_eq!(
1946        unsafe { ::std::ptr::addr_of!((*ptr).text_length) as usize - ptr as usize },
1947        36usize,
1948        concat!(
1949            "Offset of field: ",
1950            stringify!(wavefront_sequences_t),
1951            "::",
1952            stringify!(text_length)
1953        )
1954    );
1955    assert_eq!(
1956        unsafe { ::std::ptr::addr_of!((*ptr).match_funct) as usize - ptr as usize },
1957        40usize,
1958        concat!(
1959            "Offset of field: ",
1960            stringify!(wavefront_sequences_t),
1961            "::",
1962            stringify!(match_funct)
1963        )
1964    );
1965    assert_eq!(
1966        unsafe { ::std::ptr::addr_of!((*ptr).match_funct_arguments) as usize - ptr as usize },
1967        48usize,
1968        concat!(
1969            "Offset of field: ",
1970            stringify!(wavefront_sequences_t),
1971            "::",
1972            stringify!(match_funct_arguments)
1973        )
1974    );
1975    assert_eq!(
1976        unsafe { ::std::ptr::addr_of!((*ptr).seq_buffer) as usize - ptr as usize },
1977        56usize,
1978        concat!(
1979            "Offset of field: ",
1980            stringify!(wavefront_sequences_t),
1981            "::",
1982            stringify!(seq_buffer)
1983        )
1984    );
1985    assert_eq!(
1986        unsafe { ::std::ptr::addr_of!((*ptr).seq_buffer_allocated) as usize - ptr as usize },
1987        64usize,
1988        concat!(
1989            "Offset of field: ",
1990            stringify!(wavefront_sequences_t),
1991            "::",
1992            stringify!(seq_buffer_allocated)
1993        )
1994    );
1995    assert_eq!(
1996        unsafe { ::std::ptr::addr_of!((*ptr).pattern_buffer) as usize - ptr as usize },
1997        72usize,
1998        concat!(
1999            "Offset of field: ",
2000            stringify!(wavefront_sequences_t),
2001            "::",
2002            stringify!(pattern_buffer)
2003        )
2004    );
2005    assert_eq!(
2006        unsafe { ::std::ptr::addr_of!((*ptr).text_buffer) as usize - ptr as usize },
2007        80usize,
2008        concat!(
2009            "Offset of field: ",
2010            stringify!(wavefront_sequences_t),
2011            "::",
2012            stringify!(text_buffer)
2013        )
2014    );
2015    assert_eq!(
2016        unsafe { ::std::ptr::addr_of!((*ptr).pattern_buffer_length) as usize - ptr as usize },
2017        88usize,
2018        concat!(
2019            "Offset of field: ",
2020            stringify!(wavefront_sequences_t),
2021            "::",
2022            stringify!(pattern_buffer_length)
2023        )
2024    );
2025    assert_eq!(
2026        unsafe { ::std::ptr::addr_of!((*ptr).text_buffer_length) as usize - ptr as usize },
2027        92usize,
2028        concat!(
2029            "Offset of field: ",
2030            stringify!(wavefront_sequences_t),
2031            "::",
2032            stringify!(text_buffer_length)
2033        )
2034    );
2035    assert_eq!(
2036        unsafe { ::std::ptr::addr_of!((*ptr).pattern_eos) as usize - ptr as usize },
2037        96usize,
2038        concat!(
2039            "Offset of field: ",
2040            stringify!(wavefront_sequences_t),
2041            "::",
2042            stringify!(pattern_eos)
2043        )
2044    );
2045    assert_eq!(
2046        unsafe { ::std::ptr::addr_of!((*ptr).text_eos) as usize - ptr as usize },
2047        97usize,
2048        concat!(
2049            "Offset of field: ",
2050            stringify!(wavefront_sequences_t),
2051            "::",
2052            stringify!(text_eos)
2053        )
2054    );
2055}
2056extern "C" {
2057    pub fn wavefront_sequences_allocate(wf_sequences: *mut wavefront_sequences_t);
2058}
2059extern "C" {
2060    pub fn wavefront_sequences_free(wf_sequences: *mut wavefront_sequences_t);
2061}
2062extern "C" {
2063    pub fn wavefront_sequences_init_ascii(
2064        wf_sequences: *mut wavefront_sequences_t,
2065        pattern: *const ::std::os::raw::c_char,
2066        pattern_length: ::std::os::raw::c_int,
2067        text: *const ::std::os::raw::c_char,
2068        text_length: ::std::os::raw::c_int,
2069        reverse: bool,
2070    );
2071}
2072extern "C" {
2073    pub fn wavefront_sequences_init_lambda(
2074        wf_sequences: *mut wavefront_sequences_t,
2075        match_funct: alignment_match_funct_t,
2076        match_funct_arguments: *mut ::std::os::raw::c_void,
2077        pattern_length: ::std::os::raw::c_int,
2078        text_length: ::std::os::raw::c_int,
2079        reverse: bool,
2080    );
2081}
2082extern "C" {
2083    pub fn wavefront_sequences_init_packed2bits(
2084        wf_sequences: *mut wavefront_sequences_t,
2085        pattern: *const u8,
2086        pattern_length: ::std::os::raw::c_int,
2087        text: *const u8,
2088        text_length: ::std::os::raw::c_int,
2089        reverse: bool,
2090    );
2091}
2092extern "C" {
2093    pub fn wavefront_sequences_cmp(
2094        wf_sequences: *mut wavefront_sequences_t,
2095        pattern_pos: ::std::os::raw::c_int,
2096        text_pos: ::std::os::raw::c_int,
2097    ) -> bool;
2098}
2099extern "C" {
2100    pub fn wavefront_sequences_get_pattern(
2101        wf_sequences: *mut wavefront_sequences_t,
2102        position: ::std::os::raw::c_int,
2103    ) -> ::std::os::raw::c_char;
2104}
2105extern "C" {
2106    pub fn wavefront_sequences_get_text(
2107        wf_sequences: *mut wavefront_sequences_t,
2108        position: ::std::os::raw::c_int,
2109    ) -> ::std::os::raw::c_char;
2110}
2111extern "C" {
2112    pub fn wavefront_sequences_set_bounds(
2113        wf_sequences: *mut wavefront_sequences_t,
2114        pattern_begin: ::std::os::raw::c_int,
2115        pattern_end: ::std::os::raw::c_int,
2116        text_begin: ::std::os::raw::c_int,
2117        text_end: ::std::os::raw::c_int,
2118    );
2119}
2120pub type pcigar_t = u32;
2121pub type bt_block_idx_t = u32;
2122#[repr(C, packed)]
2123#[derive(Debug, Copy, Clone)]
2124pub struct bt_block_t {
2125    pub pcigar: pcigar_t,
2126    pub prev_idx: bt_block_idx_t,
2127}
2128#[test]
2129fn bindgen_test_layout_bt_block_t() {
2130    const UNINIT: ::std::mem::MaybeUninit<bt_block_t> = ::std::mem::MaybeUninit::uninit();
2131    let ptr = UNINIT.as_ptr();
2132    assert_eq!(
2133        ::std::mem::size_of::<bt_block_t>(),
2134        8usize,
2135        concat!("Size of: ", stringify!(bt_block_t))
2136    );
2137    assert_eq!(
2138        ::std::mem::align_of::<bt_block_t>(),
2139        1usize,
2140        concat!("Alignment of ", stringify!(bt_block_t))
2141    );
2142    assert_eq!(
2143        unsafe { ::std::ptr::addr_of!((*ptr).pcigar) as usize - ptr as usize },
2144        0usize,
2145        concat!(
2146            "Offset of field: ",
2147            stringify!(bt_block_t),
2148            "::",
2149            stringify!(pcigar)
2150        )
2151    );
2152    assert_eq!(
2153        unsafe { ::std::ptr::addr_of!((*ptr).prev_idx) as usize - ptr as usize },
2154        4usize,
2155        concat!(
2156            "Offset of field: ",
2157            stringify!(bt_block_t),
2158            "::",
2159            stringify!(prev_idx)
2160        )
2161    );
2162}
2163#[repr(C)]
2164#[derive(Debug, Copy, Clone)]
2165pub struct wf_backtrace_buffer_t {
2166    pub segment_idx: ::std::os::raw::c_int,
2167    pub segment_offset: ::std::os::raw::c_int,
2168    pub block_next: *mut bt_block_t,
2169    pub segments: *mut vector_t,
2170    pub alignment_init_pos: *mut vector_t,
2171    pub num_compacted_blocks: bt_block_idx_t,
2172    pub num_compactions: ::std::os::raw::c_int,
2173    pub alignment_packed: *mut vector_t,
2174    pub prefetch_blocks_idxs: *mut vector_t,
2175    pub mm_allocator: *mut mm_allocator_t,
2176}
2177#[test]
2178fn bindgen_test_layout_wf_backtrace_buffer_t() {
2179    const UNINIT: ::std::mem::MaybeUninit<wf_backtrace_buffer_t> =
2180        ::std::mem::MaybeUninit::uninit();
2181    let ptr = UNINIT.as_ptr();
2182    assert_eq!(
2183        ::std::mem::size_of::<wf_backtrace_buffer_t>(),
2184        64usize,
2185        concat!("Size of: ", stringify!(wf_backtrace_buffer_t))
2186    );
2187    assert_eq!(
2188        ::std::mem::align_of::<wf_backtrace_buffer_t>(),
2189        8usize,
2190        concat!("Alignment of ", stringify!(wf_backtrace_buffer_t))
2191    );
2192    assert_eq!(
2193        unsafe { ::std::ptr::addr_of!((*ptr).segment_idx) as usize - ptr as usize },
2194        0usize,
2195        concat!(
2196            "Offset of field: ",
2197            stringify!(wf_backtrace_buffer_t),
2198            "::",
2199            stringify!(segment_idx)
2200        )
2201    );
2202    assert_eq!(
2203        unsafe { ::std::ptr::addr_of!((*ptr).segment_offset) as usize - ptr as usize },
2204        4usize,
2205        concat!(
2206            "Offset of field: ",
2207            stringify!(wf_backtrace_buffer_t),
2208            "::",
2209            stringify!(segment_offset)
2210        )
2211    );
2212    assert_eq!(
2213        unsafe { ::std::ptr::addr_of!((*ptr).block_next) as usize - ptr as usize },
2214        8usize,
2215        concat!(
2216            "Offset of field: ",
2217            stringify!(wf_backtrace_buffer_t),
2218            "::",
2219            stringify!(block_next)
2220        )
2221    );
2222    assert_eq!(
2223        unsafe { ::std::ptr::addr_of!((*ptr).segments) as usize - ptr as usize },
2224        16usize,
2225        concat!(
2226            "Offset of field: ",
2227            stringify!(wf_backtrace_buffer_t),
2228            "::",
2229            stringify!(segments)
2230        )
2231    );
2232    assert_eq!(
2233        unsafe { ::std::ptr::addr_of!((*ptr).alignment_init_pos) as usize - ptr as usize },
2234        24usize,
2235        concat!(
2236            "Offset of field: ",
2237            stringify!(wf_backtrace_buffer_t),
2238            "::",
2239            stringify!(alignment_init_pos)
2240        )
2241    );
2242    assert_eq!(
2243        unsafe { ::std::ptr::addr_of!((*ptr).num_compacted_blocks) as usize - ptr as usize },
2244        32usize,
2245        concat!(
2246            "Offset of field: ",
2247            stringify!(wf_backtrace_buffer_t),
2248            "::",
2249            stringify!(num_compacted_blocks)
2250        )
2251    );
2252    assert_eq!(
2253        unsafe { ::std::ptr::addr_of!((*ptr).num_compactions) as usize - ptr as usize },
2254        36usize,
2255        concat!(
2256            "Offset of field: ",
2257            stringify!(wf_backtrace_buffer_t),
2258            "::",
2259            stringify!(num_compactions)
2260        )
2261    );
2262    assert_eq!(
2263        unsafe { ::std::ptr::addr_of!((*ptr).alignment_packed) as usize - ptr as usize },
2264        40usize,
2265        concat!(
2266            "Offset of field: ",
2267            stringify!(wf_backtrace_buffer_t),
2268            "::",
2269            stringify!(alignment_packed)
2270        )
2271    );
2272    assert_eq!(
2273        unsafe { ::std::ptr::addr_of!((*ptr).prefetch_blocks_idxs) as usize - ptr as usize },
2274        48usize,
2275        concat!(
2276            "Offset of field: ",
2277            stringify!(wf_backtrace_buffer_t),
2278            "::",
2279            stringify!(prefetch_blocks_idxs)
2280        )
2281    );
2282    assert_eq!(
2283        unsafe { ::std::ptr::addr_of!((*ptr).mm_allocator) as usize - ptr as usize },
2284        56usize,
2285        concat!(
2286            "Offset of field: ",
2287            stringify!(wf_backtrace_buffer_t),
2288            "::",
2289            stringify!(mm_allocator)
2290        )
2291    );
2292}
2293#[repr(C)]
2294#[derive(Debug, Copy, Clone)]
2295pub struct wavefront_pos_t {
2296    pub score: ::std::os::raw::c_int,
2297    pub k: ::std::os::raw::c_int,
2298    pub offset: wf_offset_t,
2299}
2300#[test]
2301fn bindgen_test_layout_wavefront_pos_t() {
2302    const UNINIT: ::std::mem::MaybeUninit<wavefront_pos_t> = ::std::mem::MaybeUninit::uninit();
2303    let ptr = UNINIT.as_ptr();
2304    assert_eq!(
2305        ::std::mem::size_of::<wavefront_pos_t>(),
2306        12usize,
2307        concat!("Size of: ", stringify!(wavefront_pos_t))
2308    );
2309    assert_eq!(
2310        ::std::mem::align_of::<wavefront_pos_t>(),
2311        4usize,
2312        concat!("Alignment of ", stringify!(wavefront_pos_t))
2313    );
2314    assert_eq!(
2315        unsafe { ::std::ptr::addr_of!((*ptr).score) as usize - ptr as usize },
2316        0usize,
2317        concat!(
2318            "Offset of field: ",
2319            stringify!(wavefront_pos_t),
2320            "::",
2321            stringify!(score)
2322        )
2323    );
2324    assert_eq!(
2325        unsafe { ::std::ptr::addr_of!((*ptr).k) as usize - ptr as usize },
2326        4usize,
2327        concat!(
2328            "Offset of field: ",
2329            stringify!(wavefront_pos_t),
2330            "::",
2331            stringify!(k)
2332        )
2333    );
2334    assert_eq!(
2335        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
2336        8usize,
2337        concat!(
2338            "Offset of field: ",
2339            stringify!(wavefront_pos_t),
2340            "::",
2341            stringify!(offset)
2342        )
2343    );
2344}
2345pub const wavefront_status_type_wavefront_status_free: wavefront_status_type = 0;
2346pub const wavefront_status_type_wavefront_status_busy: wavefront_status_type = 1;
2347pub const wavefront_status_type_wavefront_status_deallocated: wavefront_status_type = 2;
2348pub type wavefront_status_type = ::std::os::raw::c_uint;
2349#[repr(C)]
2350#[derive(Debug, Copy, Clone)]
2351pub struct wavefront_t {
2352    pub null: bool,
2353    pub lo: ::std::os::raw::c_int,
2354    pub hi: ::std::os::raw::c_int,
2355    pub offsets: *mut wf_offset_t,
2356    pub offsets_mem: *mut wf_offset_t,
2357    pub bt_occupancy_max: ::std::os::raw::c_int,
2358    pub bt_pcigar: *mut pcigar_t,
2359    pub bt_prev: *mut bt_block_idx_t,
2360    pub bt_pcigar_mem: *mut pcigar_t,
2361    pub bt_prev_mem: *mut bt_block_idx_t,
2362    pub status: wavefront_status_type,
2363    pub wf_elements_allocated: ::std::os::raw::c_int,
2364    pub wf_elements_allocated_min: ::std::os::raw::c_int,
2365    pub wf_elements_allocated_max: ::std::os::raw::c_int,
2366    pub wf_elements_init_min: ::std::os::raw::c_int,
2367    pub wf_elements_init_max: ::std::os::raw::c_int,
2368}
2369#[test]
2370fn bindgen_test_layout_wavefront_t() {
2371    const UNINIT: ::std::mem::MaybeUninit<wavefront_t> = ::std::mem::MaybeUninit::uninit();
2372    let ptr = UNINIT.as_ptr();
2373    assert_eq!(
2374        ::std::mem::size_of::<wavefront_t>(),
2375        96usize,
2376        concat!("Size of: ", stringify!(wavefront_t))
2377    );
2378    assert_eq!(
2379        ::std::mem::align_of::<wavefront_t>(),
2380        8usize,
2381        concat!("Alignment of ", stringify!(wavefront_t))
2382    );
2383    assert_eq!(
2384        unsafe { ::std::ptr::addr_of!((*ptr).null) as usize - ptr as usize },
2385        0usize,
2386        concat!(
2387            "Offset of field: ",
2388            stringify!(wavefront_t),
2389            "::",
2390            stringify!(null)
2391        )
2392    );
2393    assert_eq!(
2394        unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize },
2395        4usize,
2396        concat!(
2397            "Offset of field: ",
2398            stringify!(wavefront_t),
2399            "::",
2400            stringify!(lo)
2401        )
2402    );
2403    assert_eq!(
2404        unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize },
2405        8usize,
2406        concat!(
2407            "Offset of field: ",
2408            stringify!(wavefront_t),
2409            "::",
2410            stringify!(hi)
2411        )
2412    );
2413    assert_eq!(
2414        unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize },
2415        16usize,
2416        concat!(
2417            "Offset of field: ",
2418            stringify!(wavefront_t),
2419            "::",
2420            stringify!(offsets)
2421        )
2422    );
2423    assert_eq!(
2424        unsafe { ::std::ptr::addr_of!((*ptr).offsets_mem) as usize - ptr as usize },
2425        24usize,
2426        concat!(
2427            "Offset of field: ",
2428            stringify!(wavefront_t),
2429            "::",
2430            stringify!(offsets_mem)
2431        )
2432    );
2433    assert_eq!(
2434        unsafe { ::std::ptr::addr_of!((*ptr).bt_occupancy_max) as usize - ptr as usize },
2435        32usize,
2436        concat!(
2437            "Offset of field: ",
2438            stringify!(wavefront_t),
2439            "::",
2440            stringify!(bt_occupancy_max)
2441        )
2442    );
2443    assert_eq!(
2444        unsafe { ::std::ptr::addr_of!((*ptr).bt_pcigar) as usize - ptr as usize },
2445        40usize,
2446        concat!(
2447            "Offset of field: ",
2448            stringify!(wavefront_t),
2449            "::",
2450            stringify!(bt_pcigar)
2451        )
2452    );
2453    assert_eq!(
2454        unsafe { ::std::ptr::addr_of!((*ptr).bt_prev) as usize - ptr as usize },
2455        48usize,
2456        concat!(
2457            "Offset of field: ",
2458            stringify!(wavefront_t),
2459            "::",
2460            stringify!(bt_prev)
2461        )
2462    );
2463    assert_eq!(
2464        unsafe { ::std::ptr::addr_of!((*ptr).bt_pcigar_mem) as usize - ptr as usize },
2465        56usize,
2466        concat!(
2467            "Offset of field: ",
2468            stringify!(wavefront_t),
2469            "::",
2470            stringify!(bt_pcigar_mem)
2471        )
2472    );
2473    assert_eq!(
2474        unsafe { ::std::ptr::addr_of!((*ptr).bt_prev_mem) as usize - ptr as usize },
2475        64usize,
2476        concat!(
2477            "Offset of field: ",
2478            stringify!(wavefront_t),
2479            "::",
2480            stringify!(bt_prev_mem)
2481        )
2482    );
2483    assert_eq!(
2484        unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize },
2485        72usize,
2486        concat!(
2487            "Offset of field: ",
2488            stringify!(wavefront_t),
2489            "::",
2490            stringify!(status)
2491        )
2492    );
2493    assert_eq!(
2494        unsafe { ::std::ptr::addr_of!((*ptr).wf_elements_allocated) as usize - ptr as usize },
2495        76usize,
2496        concat!(
2497            "Offset of field: ",
2498            stringify!(wavefront_t),
2499            "::",
2500            stringify!(wf_elements_allocated)
2501        )
2502    );
2503    assert_eq!(
2504        unsafe { ::std::ptr::addr_of!((*ptr).wf_elements_allocated_min) as usize - ptr as usize },
2505        80usize,
2506        concat!(
2507            "Offset of field: ",
2508            stringify!(wavefront_t),
2509            "::",
2510            stringify!(wf_elements_allocated_min)
2511        )
2512    );
2513    assert_eq!(
2514        unsafe { ::std::ptr::addr_of!((*ptr).wf_elements_allocated_max) as usize - ptr as usize },
2515        84usize,
2516        concat!(
2517            "Offset of field: ",
2518            stringify!(wavefront_t),
2519            "::",
2520            stringify!(wf_elements_allocated_max)
2521        )
2522    );
2523    assert_eq!(
2524        unsafe { ::std::ptr::addr_of!((*ptr).wf_elements_init_min) as usize - ptr as usize },
2525        88usize,
2526        concat!(
2527            "Offset of field: ",
2528            stringify!(wavefront_t),
2529            "::",
2530            stringify!(wf_elements_init_min)
2531        )
2532    );
2533    assert_eq!(
2534        unsafe { ::std::ptr::addr_of!((*ptr).wf_elements_init_max) as usize - ptr as usize },
2535        92usize,
2536        concat!(
2537            "Offset of field: ",
2538            stringify!(wavefront_t),
2539            "::",
2540            stringify!(wf_elements_init_max)
2541        )
2542    );
2543}
2544extern "C" {
2545    pub fn wavefront_allocate(
2546        wavefront: *mut wavefront_t,
2547        wf_elements_allocated: ::std::os::raw::c_int,
2548        allocate_backtrace: bool,
2549        mm_allocator: *mut mm_allocator_t,
2550    );
2551}
2552extern "C" {
2553    pub fn wavefront_resize(
2554        wavefront: *mut wavefront_t,
2555        wf_elements_allocated: ::std::os::raw::c_int,
2556        mm_allocator: *mut mm_allocator_t,
2557    );
2558}
2559extern "C" {
2560    pub fn wavefront_free(wavefront: *mut wavefront_t, mm_allocator: *mut mm_allocator_t);
2561}
2562extern "C" {
2563    pub fn wavefront_init(
2564        wavefront: *mut wavefront_t,
2565        min_lo: ::std::os::raw::c_int,
2566        max_hi: ::std::os::raw::c_int,
2567    );
2568}
2569extern "C" {
2570    pub fn wavefront_init_null(
2571        wavefront: *mut wavefront_t,
2572        min_lo: ::std::os::raw::c_int,
2573        max_hi: ::std::os::raw::c_int,
2574    );
2575}
2576extern "C" {
2577    pub fn wavefront_init_victim(
2578        wavefront: *mut wavefront_t,
2579        min_lo: ::std::os::raw::c_int,
2580        max_hi: ::std::os::raw::c_int,
2581    );
2582}
2583extern "C" {
2584    pub fn wavefront_set_limits(
2585        wavefront: *mut wavefront_t,
2586        lo: ::std::os::raw::c_int,
2587        hi: ::std::os::raw::c_int,
2588    );
2589}
2590extern "C" {
2591    pub fn wavefront_get_size(wavefront: *mut wavefront_t) -> u64;
2592}
2593pub const wf_slab_mode_t_wf_slab_reuse: wf_slab_mode_t = 1;
2594pub const wf_slab_mode_t_wf_slab_tight: wf_slab_mode_t = 2;
2595pub type wf_slab_mode_t = ::std::os::raw::c_uint;
2596#[repr(C)]
2597#[derive(Debug, Copy, Clone)]
2598pub struct wavefront_slab_t {
2599    pub allocate_backtrace: bool,
2600    pub slab_mode: wf_slab_mode_t,
2601    pub init_wf_length: ::std::os::raw::c_int,
2602    pub current_wf_length: ::std::os::raw::c_int,
2603    pub wavefronts: *mut vector_t,
2604    pub wavefronts_free: *mut vector_t,
2605    pub memory_used: u64,
2606    pub mm_allocator: *mut mm_allocator_t,
2607}
2608#[test]
2609fn bindgen_test_layout_wavefront_slab_t() {
2610    const UNINIT: ::std::mem::MaybeUninit<wavefront_slab_t> = ::std::mem::MaybeUninit::uninit();
2611    let ptr = UNINIT.as_ptr();
2612    assert_eq!(
2613        ::std::mem::size_of::<wavefront_slab_t>(),
2614        48usize,
2615        concat!("Size of: ", stringify!(wavefront_slab_t))
2616    );
2617    assert_eq!(
2618        ::std::mem::align_of::<wavefront_slab_t>(),
2619        8usize,
2620        concat!("Alignment of ", stringify!(wavefront_slab_t))
2621    );
2622    assert_eq!(
2623        unsafe { ::std::ptr::addr_of!((*ptr).allocate_backtrace) as usize - ptr as usize },
2624        0usize,
2625        concat!(
2626            "Offset of field: ",
2627            stringify!(wavefront_slab_t),
2628            "::",
2629            stringify!(allocate_backtrace)
2630        )
2631    );
2632    assert_eq!(
2633        unsafe { ::std::ptr::addr_of!((*ptr).slab_mode) as usize - ptr as usize },
2634        4usize,
2635        concat!(
2636            "Offset of field: ",
2637            stringify!(wavefront_slab_t),
2638            "::",
2639            stringify!(slab_mode)
2640        )
2641    );
2642    assert_eq!(
2643        unsafe { ::std::ptr::addr_of!((*ptr).init_wf_length) as usize - ptr as usize },
2644        8usize,
2645        concat!(
2646            "Offset of field: ",
2647            stringify!(wavefront_slab_t),
2648            "::",
2649            stringify!(init_wf_length)
2650        )
2651    );
2652    assert_eq!(
2653        unsafe { ::std::ptr::addr_of!((*ptr).current_wf_length) as usize - ptr as usize },
2654        12usize,
2655        concat!(
2656            "Offset of field: ",
2657            stringify!(wavefront_slab_t),
2658            "::",
2659            stringify!(current_wf_length)
2660        )
2661    );
2662    assert_eq!(
2663        unsafe { ::std::ptr::addr_of!((*ptr).wavefronts) as usize - ptr as usize },
2664        16usize,
2665        concat!(
2666            "Offset of field: ",
2667            stringify!(wavefront_slab_t),
2668            "::",
2669            stringify!(wavefronts)
2670        )
2671    );
2672    assert_eq!(
2673        unsafe { ::std::ptr::addr_of!((*ptr).wavefronts_free) as usize - ptr as usize },
2674        24usize,
2675        concat!(
2676            "Offset of field: ",
2677            stringify!(wavefront_slab_t),
2678            "::",
2679            stringify!(wavefronts_free)
2680        )
2681    );
2682    assert_eq!(
2683        unsafe { ::std::ptr::addr_of!((*ptr).memory_used) as usize - ptr as usize },
2684        32usize,
2685        concat!(
2686            "Offset of field: ",
2687            stringify!(wavefront_slab_t),
2688            "::",
2689            stringify!(memory_used)
2690        )
2691    );
2692    assert_eq!(
2693        unsafe { ::std::ptr::addr_of!((*ptr).mm_allocator) as usize - ptr as usize },
2694        40usize,
2695        concat!(
2696            "Offset of field: ",
2697            stringify!(wavefront_slab_t),
2698            "::",
2699            stringify!(mm_allocator)
2700        )
2701    );
2702}
2703extern "C" {
2704    pub fn wavefront_slab_new(
2705        init_wf_length: ::std::os::raw::c_int,
2706        allocate_backtrace: bool,
2707        slab_mode: wf_slab_mode_t,
2708        mm_allocator: *mut mm_allocator_t,
2709    ) -> *mut wavefront_slab_t;
2710}
2711extern "C" {
2712    pub fn wavefront_slab_reap(wavefront_slab: *mut wavefront_slab_t);
2713}
2714extern "C" {
2715    pub fn wavefront_slab_clear(wavefront_slab: *mut wavefront_slab_t);
2716}
2717extern "C" {
2718    pub fn wavefront_slab_delete(wavefront_slab: *mut wavefront_slab_t);
2719}
2720extern "C" {
2721    pub fn wavefront_slab_set_mode(
2722        wavefront_slab: *mut wavefront_slab_t,
2723        slab_mode: wf_slab_mode_t,
2724    );
2725}
2726extern "C" {
2727    pub fn wavefront_slab_allocate(
2728        wavefront_slab: *mut wavefront_slab_t,
2729        min_lo: ::std::os::raw::c_int,
2730        max_hi: ::std::os::raw::c_int,
2731    ) -> *mut wavefront_t;
2732}
2733extern "C" {
2734    pub fn wavefront_slab_free(wavefront_slab: *mut wavefront_slab_t, wavefront: *mut wavefront_t);
2735}
2736extern "C" {
2737    pub fn wavefront_slab_get_size(wavefront_slab: *mut wavefront_slab_t) -> u64;
2738}
2739#[repr(C)]
2740#[derive(Debug, Copy, Clone)]
2741pub struct wavefront_components_t {
2742    pub memory_modular: bool,
2743    pub bt_piggyback: bool,
2744    pub num_wavefronts: ::std::os::raw::c_int,
2745    pub max_score_scope: ::std::os::raw::c_int,
2746    pub historic_max_hi: ::std::os::raw::c_int,
2747    pub historic_min_lo: ::std::os::raw::c_int,
2748    pub mwavefronts: *mut *mut wavefront_t,
2749    pub i1wavefronts: *mut *mut wavefront_t,
2750    pub i2wavefronts: *mut *mut wavefront_t,
2751    pub d1wavefronts: *mut *mut wavefront_t,
2752    pub d2wavefronts: *mut *mut wavefront_t,
2753    pub wavefront_null: *mut wavefront_t,
2754    pub wavefront_victim: *mut wavefront_t,
2755    pub bt_buffer: *mut wf_backtrace_buffer_t,
2756    pub mm_allocator: *mut mm_allocator_t,
2757}
2758#[test]
2759fn bindgen_test_layout_wavefront_components_t() {
2760    const UNINIT: ::std::mem::MaybeUninit<wavefront_components_t> =
2761        ::std::mem::MaybeUninit::uninit();
2762    let ptr = UNINIT.as_ptr();
2763    assert_eq!(
2764        ::std::mem::size_of::<wavefront_components_t>(),
2765        96usize,
2766        concat!("Size of: ", stringify!(wavefront_components_t))
2767    );
2768    assert_eq!(
2769        ::std::mem::align_of::<wavefront_components_t>(),
2770        8usize,
2771        concat!("Alignment of ", stringify!(wavefront_components_t))
2772    );
2773    assert_eq!(
2774        unsafe { ::std::ptr::addr_of!((*ptr).memory_modular) as usize - ptr as usize },
2775        0usize,
2776        concat!(
2777            "Offset of field: ",
2778            stringify!(wavefront_components_t),
2779            "::",
2780            stringify!(memory_modular)
2781        )
2782    );
2783    assert_eq!(
2784        unsafe { ::std::ptr::addr_of!((*ptr).bt_piggyback) as usize - ptr as usize },
2785        1usize,
2786        concat!(
2787            "Offset of field: ",
2788            stringify!(wavefront_components_t),
2789            "::",
2790            stringify!(bt_piggyback)
2791        )
2792    );
2793    assert_eq!(
2794        unsafe { ::std::ptr::addr_of!((*ptr).num_wavefronts) as usize - ptr as usize },
2795        4usize,
2796        concat!(
2797            "Offset of field: ",
2798            stringify!(wavefront_components_t),
2799            "::",
2800            stringify!(num_wavefronts)
2801        )
2802    );
2803    assert_eq!(
2804        unsafe { ::std::ptr::addr_of!((*ptr).max_score_scope) as usize - ptr as usize },
2805        8usize,
2806        concat!(
2807            "Offset of field: ",
2808            stringify!(wavefront_components_t),
2809            "::",
2810            stringify!(max_score_scope)
2811        )
2812    );
2813    assert_eq!(
2814        unsafe { ::std::ptr::addr_of!((*ptr).historic_max_hi) as usize - ptr as usize },
2815        12usize,
2816        concat!(
2817            "Offset of field: ",
2818            stringify!(wavefront_components_t),
2819            "::",
2820            stringify!(historic_max_hi)
2821        )
2822    );
2823    assert_eq!(
2824        unsafe { ::std::ptr::addr_of!((*ptr).historic_min_lo) as usize - ptr as usize },
2825        16usize,
2826        concat!(
2827            "Offset of field: ",
2828            stringify!(wavefront_components_t),
2829            "::",
2830            stringify!(historic_min_lo)
2831        )
2832    );
2833    assert_eq!(
2834        unsafe { ::std::ptr::addr_of!((*ptr).mwavefronts) as usize - ptr as usize },
2835        24usize,
2836        concat!(
2837            "Offset of field: ",
2838            stringify!(wavefront_components_t),
2839            "::",
2840            stringify!(mwavefronts)
2841        )
2842    );
2843    assert_eq!(
2844        unsafe { ::std::ptr::addr_of!((*ptr).i1wavefronts) as usize - ptr as usize },
2845        32usize,
2846        concat!(
2847            "Offset of field: ",
2848            stringify!(wavefront_components_t),
2849            "::",
2850            stringify!(i1wavefronts)
2851        )
2852    );
2853    assert_eq!(
2854        unsafe { ::std::ptr::addr_of!((*ptr).i2wavefronts) as usize - ptr as usize },
2855        40usize,
2856        concat!(
2857            "Offset of field: ",
2858            stringify!(wavefront_components_t),
2859            "::",
2860            stringify!(i2wavefronts)
2861        )
2862    );
2863    assert_eq!(
2864        unsafe { ::std::ptr::addr_of!((*ptr).d1wavefronts) as usize - ptr as usize },
2865        48usize,
2866        concat!(
2867            "Offset of field: ",
2868            stringify!(wavefront_components_t),
2869            "::",
2870            stringify!(d1wavefronts)
2871        )
2872    );
2873    assert_eq!(
2874        unsafe { ::std::ptr::addr_of!((*ptr).d2wavefronts) as usize - ptr as usize },
2875        56usize,
2876        concat!(
2877            "Offset of field: ",
2878            stringify!(wavefront_components_t),
2879            "::",
2880            stringify!(d2wavefronts)
2881        )
2882    );
2883    assert_eq!(
2884        unsafe { ::std::ptr::addr_of!((*ptr).wavefront_null) as usize - ptr as usize },
2885        64usize,
2886        concat!(
2887            "Offset of field: ",
2888            stringify!(wavefront_components_t),
2889            "::",
2890            stringify!(wavefront_null)
2891        )
2892    );
2893    assert_eq!(
2894        unsafe { ::std::ptr::addr_of!((*ptr).wavefront_victim) as usize - ptr as usize },
2895        72usize,
2896        concat!(
2897            "Offset of field: ",
2898            stringify!(wavefront_components_t),
2899            "::",
2900            stringify!(wavefront_victim)
2901        )
2902    );
2903    assert_eq!(
2904        unsafe { ::std::ptr::addr_of!((*ptr).bt_buffer) as usize - ptr as usize },
2905        80usize,
2906        concat!(
2907            "Offset of field: ",
2908            stringify!(wavefront_components_t),
2909            "::",
2910            stringify!(bt_buffer)
2911        )
2912    );
2913    assert_eq!(
2914        unsafe { ::std::ptr::addr_of!((*ptr).mm_allocator) as usize - ptr as usize },
2915        88usize,
2916        concat!(
2917            "Offset of field: ",
2918            stringify!(wavefront_components_t),
2919            "::",
2920            stringify!(mm_allocator)
2921        )
2922    );
2923}
2924extern "C" {
2925    pub fn wavefront_components_allocate(
2926        wf_components: *mut wavefront_components_t,
2927        max_pattern_length: ::std::os::raw::c_int,
2928        max_text_length: ::std::os::raw::c_int,
2929        penalties: *mut wavefront_penalties_t,
2930        memory_modular: bool,
2931        bt_piggyback: bool,
2932        mm_allocator: *mut mm_allocator_t,
2933    );
2934}
2935extern "C" {
2936    pub fn wavefront_components_reap(wf_components: *mut wavefront_components_t);
2937}
2938extern "C" {
2939    pub fn wavefront_components_clear(wf_components: *mut wavefront_components_t);
2940}
2941extern "C" {
2942    pub fn wavefront_components_free(wf_components: *mut wavefront_components_t);
2943}
2944extern "C" {
2945    pub fn wavefront_components_resize(
2946        wf_components: *mut wavefront_components_t,
2947        max_pattern_length: ::std::os::raw::c_int,
2948        max_text_length: ::std::os::raw::c_int,
2949        penalties: *mut wavefront_penalties_t,
2950    );
2951}
2952extern "C" {
2953    pub fn wavefront_components_resize_null__victim(
2954        wf_components: *mut wavefront_components_t,
2955        lo: ::std::os::raw::c_int,
2956        hi: ::std::os::raw::c_int,
2957    );
2958}
2959extern "C" {
2960    pub fn wavefront_components_compact_bt_buffer(
2961        wf_components: *mut wavefront_components_t,
2962        score: ::std::os::raw::c_int,
2963        verbose: ::std::os::raw::c_int,
2964    );
2965}
2966#[repr(C)]
2967#[derive(Debug, Copy, Clone)]
2968pub struct wavefront_bialigner_t {
2969    pub wf_forward: *mut wavefront_aligner_t,
2970    pub wf_reverse: *mut wavefront_aligner_t,
2971    pub wf_base: *mut wavefront_aligner_t,
2972    pub wf_align_compute: ::std::option::Option<
2973        unsafe extern "C" fn(arg1: *mut wavefront_aligner_t, arg2: ::std::os::raw::c_int),
2974    >,
2975}
2976#[test]
2977fn bindgen_test_layout_wavefront_bialigner_t() {
2978    const UNINIT: ::std::mem::MaybeUninit<wavefront_bialigner_t> =
2979        ::std::mem::MaybeUninit::uninit();
2980    let ptr = UNINIT.as_ptr();
2981    assert_eq!(
2982        ::std::mem::size_of::<wavefront_bialigner_t>(),
2983        32usize,
2984        concat!("Size of: ", stringify!(wavefront_bialigner_t))
2985    );
2986    assert_eq!(
2987        ::std::mem::align_of::<wavefront_bialigner_t>(),
2988        8usize,
2989        concat!("Alignment of ", stringify!(wavefront_bialigner_t))
2990    );
2991    assert_eq!(
2992        unsafe { ::std::ptr::addr_of!((*ptr).wf_forward) as usize - ptr as usize },
2993        0usize,
2994        concat!(
2995            "Offset of field: ",
2996            stringify!(wavefront_bialigner_t),
2997            "::",
2998            stringify!(wf_forward)
2999        )
3000    );
3001    assert_eq!(
3002        unsafe { ::std::ptr::addr_of!((*ptr).wf_reverse) as usize - ptr as usize },
3003        8usize,
3004        concat!(
3005            "Offset of field: ",
3006            stringify!(wavefront_bialigner_t),
3007            "::",
3008            stringify!(wf_reverse)
3009        )
3010    );
3011    assert_eq!(
3012        unsafe { ::std::ptr::addr_of!((*ptr).wf_base) as usize - ptr as usize },
3013        16usize,
3014        concat!(
3015            "Offset of field: ",
3016            stringify!(wavefront_bialigner_t),
3017            "::",
3018            stringify!(wf_base)
3019        )
3020    );
3021    assert_eq!(
3022        unsafe { ::std::ptr::addr_of!((*ptr).wf_align_compute) as usize - ptr as usize },
3023        24usize,
3024        concat!(
3025            "Offset of field: ",
3026            stringify!(wavefront_bialigner_t),
3027            "::",
3028            stringify!(wf_align_compute)
3029        )
3030    );
3031}
3032extern "C" {
3033    pub fn wavefront_bialigner_new(
3034        attributes: *mut wavefront_aligner_attr_t,
3035        plot: *mut wavefront_plot_t,
3036    ) -> *mut wavefront_bialigner_t;
3037}
3038extern "C" {
3039    pub fn wavefront_bialigner_reap(wf_bialigner: *mut wavefront_bialigner_t);
3040}
3041extern "C" {
3042    pub fn wavefront_bialigner_delete(wf_bialigner: *mut wavefront_bialigner_t);
3043}
3044extern "C" {
3045    pub fn wavefront_bialigner_set_sequences_ascii(
3046        wf_bialigner: *mut wavefront_bialigner_t,
3047        pattern: *const ::std::os::raw::c_char,
3048        pattern_length: ::std::os::raw::c_int,
3049        text: *const ::std::os::raw::c_char,
3050        text_length: ::std::os::raw::c_int,
3051    );
3052}
3053extern "C" {
3054    pub fn wavefront_bialigner_set_sequences_lambda(
3055        wf_bialigner: *mut wavefront_bialigner_t,
3056        match_funct: alignment_match_funct_t,
3057        match_funct_arguments: *mut ::std::os::raw::c_void,
3058        pattern_length: ::std::os::raw::c_int,
3059        text_length: ::std::os::raw::c_int,
3060    );
3061}
3062extern "C" {
3063    pub fn wavefront_bialigner_set_sequences_packed2bits(
3064        wf_bialigner: *mut wavefront_bialigner_t,
3065        pattern: *const u8,
3066        pattern_length: ::std::os::raw::c_int,
3067        text: *const u8,
3068        text_length: ::std::os::raw::c_int,
3069    );
3070}
3071extern "C" {
3072    pub fn wavefront_bialigner_set_sequences_bounds(
3073        wf_bialigner: *mut wavefront_bialigner_t,
3074        pattern_begin: ::std::os::raw::c_int,
3075        pattern_end: ::std::os::raw::c_int,
3076        text_begin: ::std::os::raw::c_int,
3077        text_end: ::std::os::raw::c_int,
3078    );
3079}
3080extern "C" {
3081    pub fn wavefront_bialigner_get_size(wf_bialigner: *mut wavefront_bialigner_t) -> u64;
3082}
3083extern "C" {
3084    pub fn wavefront_bialigner_set_heuristic(
3085        wf_bialigner: *mut wavefront_bialigner_t,
3086        heuristic: *mut wavefront_heuristic_t,
3087    );
3088}
3089extern "C" {
3090    pub fn wavefront_bialigner_set_max_alignment_steps(
3091        wf_bialigner: *mut wavefront_bialigner_t,
3092        max_alignment_steps: ::std::os::raw::c_int,
3093    );
3094}
3095extern "C" {
3096    pub fn wavefront_bialigner_set_max_memory(
3097        wf_bialigner: *mut wavefront_bialigner_t,
3098        max_memory_resident: u64,
3099        max_memory_abort: u64,
3100    );
3101}
3102extern "C" {
3103    pub fn wavefront_bialigner_set_max_num_threads(
3104        wf_bialigner: *mut wavefront_bialigner_t,
3105        max_num_threads: ::std::os::raw::c_int,
3106    );
3107}
3108extern "C" {
3109    pub fn wavefront_bialigner_set_min_offsets_per_thread(
3110        wf_bialigner: *mut wavefront_bialigner_t,
3111        min_offsets_per_thread: ::std::os::raw::c_int,
3112    );
3113}
3114extern "C" {
3115    pub fn wavefront_align_strerror(
3116        error_code: ::std::os::raw::c_int,
3117    ) -> *mut ::std::os::raw::c_char;
3118}
3119extern "C" {
3120    pub fn wavefront_align_strerror_short(
3121        error_code: ::std::os::raw::c_int,
3122    ) -> *mut ::std::os::raw::c_char;
3123}
3124#[repr(C)]
3125#[derive(Debug, Copy, Clone)]
3126pub struct wavefront_align_status_t {
3127    pub status: ::std::os::raw::c_int,
3128    pub score: ::std::os::raw::c_int,
3129    pub dropped: bool,
3130    pub num_null_steps: ::std::os::raw::c_int,
3131    pub memory_used: u64,
3132    pub wf_align_compute: ::std::option::Option<
3133        unsafe extern "C" fn(arg1: *mut wavefront_aligner_t, arg2: ::std::os::raw::c_int),
3134    >,
3135    pub wf_align_extend: ::std::option::Option<
3136        unsafe extern "C" fn(
3137            arg1: *mut wavefront_aligner_t,
3138            arg2: ::std::os::raw::c_int,
3139        ) -> ::std::os::raw::c_int,
3140    >,
3141}
3142#[test]
3143fn bindgen_test_layout_wavefront_align_status_t() {
3144    const UNINIT: ::std::mem::MaybeUninit<wavefront_align_status_t> =
3145        ::std::mem::MaybeUninit::uninit();
3146    let ptr = UNINIT.as_ptr();
3147    assert_eq!(
3148        ::std::mem::size_of::<wavefront_align_status_t>(),
3149        40usize,
3150        concat!("Size of: ", stringify!(wavefront_align_status_t))
3151    );
3152    assert_eq!(
3153        ::std::mem::align_of::<wavefront_align_status_t>(),
3154        8usize,
3155        concat!("Alignment of ", stringify!(wavefront_align_status_t))
3156    );
3157    assert_eq!(
3158        unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize },
3159        0usize,
3160        concat!(
3161            "Offset of field: ",
3162            stringify!(wavefront_align_status_t),
3163            "::",
3164            stringify!(status)
3165        )
3166    );
3167    assert_eq!(
3168        unsafe { ::std::ptr::addr_of!((*ptr).score) as usize - ptr as usize },
3169        4usize,
3170        concat!(
3171            "Offset of field: ",
3172            stringify!(wavefront_align_status_t),
3173            "::",
3174            stringify!(score)
3175        )
3176    );
3177    assert_eq!(
3178        unsafe { ::std::ptr::addr_of!((*ptr).dropped) as usize - ptr as usize },
3179        8usize,
3180        concat!(
3181            "Offset of field: ",
3182            stringify!(wavefront_align_status_t),
3183            "::",
3184            stringify!(dropped)
3185        )
3186    );
3187    assert_eq!(
3188        unsafe { ::std::ptr::addr_of!((*ptr).num_null_steps) as usize - ptr as usize },
3189        12usize,
3190        concat!(
3191            "Offset of field: ",
3192            stringify!(wavefront_align_status_t),
3193            "::",
3194            stringify!(num_null_steps)
3195        )
3196    );
3197    assert_eq!(
3198        unsafe { ::std::ptr::addr_of!((*ptr).memory_used) as usize - ptr as usize },
3199        16usize,
3200        concat!(
3201            "Offset of field: ",
3202            stringify!(wavefront_align_status_t),
3203            "::",
3204            stringify!(memory_used)
3205        )
3206    );
3207    assert_eq!(
3208        unsafe { ::std::ptr::addr_of!((*ptr).wf_align_compute) as usize - ptr as usize },
3209        24usize,
3210        concat!(
3211            "Offset of field: ",
3212            stringify!(wavefront_align_status_t),
3213            "::",
3214            stringify!(wf_align_compute)
3215        )
3216    );
3217    assert_eq!(
3218        unsafe { ::std::ptr::addr_of!((*ptr).wf_align_extend) as usize - ptr as usize },
3219        32usize,
3220        concat!(
3221            "Offset of field: ",
3222            stringify!(wavefront_align_status_t),
3223            "::",
3224            stringify!(wf_align_extend)
3225        )
3226    );
3227}
3228pub const wavefront_align_mode_t_wf_align_regular: wavefront_align_mode_t = 0;
3229pub const wavefront_align_mode_t_wf_align_biwfa: wavefront_align_mode_t = 1;
3230pub const wavefront_align_mode_t_wf_align_biwfa_breakpoint_forward: wavefront_align_mode_t = 2;
3231pub const wavefront_align_mode_t_wf_align_biwfa_breakpoint_reverse: wavefront_align_mode_t = 3;
3232pub const wavefront_align_mode_t_wf_align_biwfa_subsidiary: wavefront_align_mode_t = 4;
3233pub type wavefront_align_mode_t = ::std::os::raw::c_uint;
3234#[repr(C)]
3235pub struct _wavefront_aligner_t {
3236    pub align_mode: wavefront_align_mode_t,
3237    pub align_mode_tag: *mut ::std::os::raw::c_char,
3238    pub align_status: wavefront_align_status_t,
3239    pub sequences: wavefront_sequences_t,
3240    pub alignment_scope: alignment_scope_t,
3241    pub alignment_form: alignment_form_t,
3242    pub penalties: wavefront_penalties_t,
3243    pub heuristic: wavefront_heuristic_t,
3244    pub memory_mode: wavefront_memory_t,
3245    pub wf_components: wavefront_components_t,
3246    pub component_begin: affine2p_matrix_type,
3247    pub component_end: affine2p_matrix_type,
3248    pub alignment_end_pos: wavefront_pos_t,
3249    pub bialigner: *mut wavefront_bialigner_t,
3250    pub cigar: *mut cigar_t,
3251    pub mm_allocator_own: bool,
3252    pub mm_allocator: *mut mm_allocator_t,
3253    pub wavefront_slab: *mut wavefront_slab_t,
3254    pub plot: *mut wavefront_plot_t,
3255    pub system: alignment_system_t,
3256}
3257#[test]
3258fn bindgen_test_layout__wavefront_aligner_t() {
3259    const UNINIT: ::std::mem::MaybeUninit<_wavefront_aligner_t> = ::std::mem::MaybeUninit::uninit();
3260    let ptr = UNINIT.as_ptr();
3261    assert_eq!(
3262        ::std::mem::size_of::<_wavefront_aligner_t>(),
3263        648usize,
3264        concat!("Size of: ", stringify!(_wavefront_aligner_t))
3265    );
3266    assert_eq!(
3267        ::std::mem::align_of::<_wavefront_aligner_t>(),
3268        8usize,
3269        concat!("Alignment of ", stringify!(_wavefront_aligner_t))
3270    );
3271    assert_eq!(
3272        unsafe { ::std::ptr::addr_of!((*ptr).align_mode) as usize - ptr as usize },
3273        0usize,
3274        concat!(
3275            "Offset of field: ",
3276            stringify!(_wavefront_aligner_t),
3277            "::",
3278            stringify!(align_mode)
3279        )
3280    );
3281    assert_eq!(
3282        unsafe { ::std::ptr::addr_of!((*ptr).align_mode_tag) as usize - ptr as usize },
3283        8usize,
3284        concat!(
3285            "Offset of field: ",
3286            stringify!(_wavefront_aligner_t),
3287            "::",
3288            stringify!(align_mode_tag)
3289        )
3290    );
3291    assert_eq!(
3292        unsafe { ::std::ptr::addr_of!((*ptr).align_status) as usize - ptr as usize },
3293        16usize,
3294        concat!(
3295            "Offset of field: ",
3296            stringify!(_wavefront_aligner_t),
3297            "::",
3298            stringify!(align_status)
3299        )
3300    );
3301    assert_eq!(
3302        unsafe { ::std::ptr::addr_of!((*ptr).sequences) as usize - ptr as usize },
3303        56usize,
3304        concat!(
3305            "Offset of field: ",
3306            stringify!(_wavefront_aligner_t),
3307            "::",
3308            stringify!(sequences)
3309        )
3310    );
3311    assert_eq!(
3312        unsafe { ::std::ptr::addr_of!((*ptr).alignment_scope) as usize - ptr as usize },
3313        160usize,
3314        concat!(
3315            "Offset of field: ",
3316            stringify!(_wavefront_aligner_t),
3317            "::",
3318            stringify!(alignment_scope)
3319        )
3320    );
3321    assert_eq!(
3322        unsafe { ::std::ptr::addr_of!((*ptr).alignment_form) as usize - ptr as usize },
3323        164usize,
3324        concat!(
3325            "Offset of field: ",
3326            stringify!(_wavefront_aligner_t),
3327            "::",
3328            stringify!(alignment_form)
3329        )
3330    );
3331    assert_eq!(
3332        unsafe { ::std::ptr::addr_of!((*ptr).penalties) as usize - ptr as usize },
3333        188usize,
3334        concat!(
3335            "Offset of field: ",
3336            stringify!(_wavefront_aligner_t),
3337            "::",
3338            stringify!(penalties)
3339        )
3340    );
3341    assert_eq!(
3342        unsafe { ::std::ptr::addr_of!((*ptr).heuristic) as usize - ptr as usize },
3343        272usize,
3344        concat!(
3345            "Offset of field: ",
3346            stringify!(_wavefront_aligner_t),
3347            "::",
3348            stringify!(heuristic)
3349        )
3350    );
3351    assert_eq!(
3352        unsafe { ::std::ptr::addr_of!((*ptr).memory_mode) as usize - ptr as usize },
3353        324usize,
3354        concat!(
3355            "Offset of field: ",
3356            stringify!(_wavefront_aligner_t),
3357            "::",
3358            stringify!(memory_mode)
3359        )
3360    );
3361    assert_eq!(
3362        unsafe { ::std::ptr::addr_of!((*ptr).wf_components) as usize - ptr as usize },
3363        328usize,
3364        concat!(
3365            "Offset of field: ",
3366            stringify!(_wavefront_aligner_t),
3367            "::",
3368            stringify!(wf_components)
3369        )
3370    );
3371    assert_eq!(
3372        unsafe { ::std::ptr::addr_of!((*ptr).component_begin) as usize - ptr as usize },
3373        424usize,
3374        concat!(
3375            "Offset of field: ",
3376            stringify!(_wavefront_aligner_t),
3377            "::",
3378            stringify!(component_begin)
3379        )
3380    );
3381    assert_eq!(
3382        unsafe { ::std::ptr::addr_of!((*ptr).component_end) as usize - ptr as usize },
3383        428usize,
3384        concat!(
3385            "Offset of field: ",
3386            stringify!(_wavefront_aligner_t),
3387            "::",
3388            stringify!(component_end)
3389        )
3390    );
3391    assert_eq!(
3392        unsafe { ::std::ptr::addr_of!((*ptr).alignment_end_pos) as usize - ptr as usize },
3393        432usize,
3394        concat!(
3395            "Offset of field: ",
3396            stringify!(_wavefront_aligner_t),
3397            "::",
3398            stringify!(alignment_end_pos)
3399        )
3400    );
3401    assert_eq!(
3402        unsafe { ::std::ptr::addr_of!((*ptr).bialigner) as usize - ptr as usize },
3403        448usize,
3404        concat!(
3405            "Offset of field: ",
3406            stringify!(_wavefront_aligner_t),
3407            "::",
3408            stringify!(bialigner)
3409        )
3410    );
3411    assert_eq!(
3412        unsafe { ::std::ptr::addr_of!((*ptr).cigar) as usize - ptr as usize },
3413        456usize,
3414        concat!(
3415            "Offset of field: ",
3416            stringify!(_wavefront_aligner_t),
3417            "::",
3418            stringify!(cigar)
3419        )
3420    );
3421    assert_eq!(
3422        unsafe { ::std::ptr::addr_of!((*ptr).mm_allocator_own) as usize - ptr as usize },
3423        464usize,
3424        concat!(
3425            "Offset of field: ",
3426            stringify!(_wavefront_aligner_t),
3427            "::",
3428            stringify!(mm_allocator_own)
3429        )
3430    );
3431    assert_eq!(
3432        unsafe { ::std::ptr::addr_of!((*ptr).mm_allocator) as usize - ptr as usize },
3433        472usize,
3434        concat!(
3435            "Offset of field: ",
3436            stringify!(_wavefront_aligner_t),
3437            "::",
3438            stringify!(mm_allocator)
3439        )
3440    );
3441    assert_eq!(
3442        unsafe { ::std::ptr::addr_of!((*ptr).wavefront_slab) as usize - ptr as usize },
3443        480usize,
3444        concat!(
3445            "Offset of field: ",
3446            stringify!(_wavefront_aligner_t),
3447            "::",
3448            stringify!(wavefront_slab)
3449        )
3450    );
3451    assert_eq!(
3452        unsafe { ::std::ptr::addr_of!((*ptr).plot) as usize - ptr as usize },
3453        488usize,
3454        concat!(
3455            "Offset of field: ",
3456            stringify!(_wavefront_aligner_t),
3457            "::",
3458            stringify!(plot)
3459        )
3460    );
3461    assert_eq!(
3462        unsafe { ::std::ptr::addr_of!((*ptr).system) as usize - ptr as usize },
3463        496usize,
3464        concat!(
3465            "Offset of field: ",
3466            stringify!(_wavefront_aligner_t),
3467            "::",
3468            stringify!(system)
3469        )
3470    );
3471}
3472extern "C" {
3473    pub fn wavefront_aligner_new(
3474        attributes: *mut wavefront_aligner_attr_t,
3475    ) -> *mut wavefront_aligner_t;
3476}
3477extern "C" {
3478    pub fn wavefront_aligner_reap(wf_aligner: *mut wavefront_aligner_t);
3479}
3480extern "C" {
3481    pub fn wavefront_aligner_delete(wf_aligner: *mut wavefront_aligner_t);
3482}
3483extern "C" {
3484    pub fn wavefront_aligner_set_alignment_end_to_end(wf_aligner: *mut wavefront_aligner_t);
3485}
3486extern "C" {
3487    pub fn wavefront_aligner_set_alignment_free_ends(
3488        wf_aligner: *mut wavefront_aligner_t,
3489        pattern_begin_free: ::std::os::raw::c_int,
3490        pattern_end_free: ::std::os::raw::c_int,
3491        text_begin_free: ::std::os::raw::c_int,
3492        text_end_free: ::std::os::raw::c_int,
3493    );
3494}
3495extern "C" {
3496    pub fn wavefront_aligner_set_alignment_extension(wf_aligner: *mut wavefront_aligner_t);
3497}
3498extern "C" {
3499    pub fn wavefront_aligner_set_heuristic_none(wf_aligner: *mut wavefront_aligner_t);
3500}
3501extern "C" {
3502    pub fn wavefront_aligner_set_heuristic_wfadaptive(
3503        wf_aligner: *mut wavefront_aligner_t,
3504        min_wavefront_length: ::std::os::raw::c_int,
3505        max_distance_threshold: ::std::os::raw::c_int,
3506        score_steps: ::std::os::raw::c_int,
3507    );
3508}
3509extern "C" {
3510    pub fn wavefront_aligner_set_heuristic_wfmash(
3511        wf_aligner: *mut wavefront_aligner_t,
3512        min_wavefront_length: ::std::os::raw::c_int,
3513        max_distance_threshold: ::std::os::raw::c_int,
3514        score_steps: ::std::os::raw::c_int,
3515    );
3516}
3517extern "C" {
3518    pub fn wavefront_aligner_set_heuristic_xdrop(
3519        wf_aligner: *mut wavefront_aligner_t,
3520        xdrop: ::std::os::raw::c_int,
3521        score_steps: ::std::os::raw::c_int,
3522    );
3523}
3524extern "C" {
3525    pub fn wavefront_aligner_set_heuristic_zdrop(
3526        wf_aligner: *mut wavefront_aligner_t,
3527        ydrop: ::std::os::raw::c_int,
3528        score_steps: ::std::os::raw::c_int,
3529    );
3530}
3531extern "C" {
3532    pub fn wavefront_aligner_set_heuristic_banded_static(
3533        wf_aligner: *mut wavefront_aligner_t,
3534        band_min_k: ::std::os::raw::c_int,
3535        band_max_k: ::std::os::raw::c_int,
3536    );
3537}
3538extern "C" {
3539    pub fn wavefront_aligner_set_heuristic_banded_adaptive(
3540        wf_aligner: *mut wavefront_aligner_t,
3541        band_min_k: ::std::os::raw::c_int,
3542        band_max_k: ::std::os::raw::c_int,
3543        score_steps: ::std::os::raw::c_int,
3544    );
3545}
3546extern "C" {
3547    pub fn wavefront_aligner_set_max_alignment_steps(
3548        wf_aligner: *mut wavefront_aligner_t,
3549        max_alignment_steps: ::std::os::raw::c_int,
3550    );
3551}
3552extern "C" {
3553    pub fn wavefront_aligner_set_max_memory(
3554        wf_aligner: *mut wavefront_aligner_t,
3555        max_memory_resident: u64,
3556        max_memory_abort: u64,
3557    );
3558}
3559extern "C" {
3560    pub fn wavefront_aligner_set_max_num_threads(
3561        wf_aligner: *mut wavefront_aligner_t,
3562        max_num_threads: ::std::os::raw::c_int,
3563    );
3564}
3565extern "C" {
3566    pub fn wavefront_aligner_set_min_offsets_per_thread(
3567        wf_aligner: *mut wavefront_aligner_t,
3568        min_offsets_per_thread: ::std::os::raw::c_int,
3569    );
3570}
3571extern "C" {
3572    pub fn wavefront_align(
3573        wf_aligner: *mut wavefront_aligner_t,
3574        pattern: *const ::std::os::raw::c_char,
3575        pattern_length: ::std::os::raw::c_int,
3576        text: *const ::std::os::raw::c_char,
3577        text_length: ::std::os::raw::c_int,
3578    ) -> ::std::os::raw::c_int;
3579}
3580extern "C" {
3581    pub fn wavefront_align_lambda(
3582        wf_aligner: *mut wavefront_aligner_t,
3583        match_funct: alignment_match_funct_t,
3584        match_funct_arguments: *mut ::std::os::raw::c_void,
3585        pattern_length: ::std::os::raw::c_int,
3586        text_length: ::std::os::raw::c_int,
3587    ) -> ::std::os::raw::c_int;
3588}
3589extern "C" {
3590    pub fn wavefront_align_packed2bits(
3591        wf_aligner: *mut wavefront_aligner_t,
3592        pattern: *const u8,
3593        pattern_length: ::std::os::raw::c_int,
3594        text: *const u8,
3595        text_length: ::std::os::raw::c_int,
3596    ) -> ::std::os::raw::c_int;
3597}
3598extern "C" {
3599    pub fn wavefront_aligner_init(
3600        wf_aligner: *mut wavefront_aligner_t,
3601        align_level: ::std::os::raw::c_int,
3602    );
3603}
3604extern "C" {
3605    pub fn wavefront_aligner_get_size(wf_aligner: *mut wavefront_aligner_t) -> u64;
3606}
3607extern "C" {
3608    pub fn wavefront_aligner_maxtrim_cigar(wf_aligner: *mut wavefront_aligner_t) -> bool;
3609}
3610extern "C" {
3611    pub fn wavefront_aligner_print_mode(stream: *mut FILE, wf_aligner: *mut wavefront_aligner_t);
3612}
3613extern "C" {
3614    pub fn wavefront_aligner_print_scope(stream: *mut FILE, wf_aligner: *mut wavefront_aligner_t);
3615}
3616extern "C" {
3617    pub fn wavefront_aligner_print_conf(stream: *mut FILE, wf_aligner: *mut wavefront_aligner_t);
3618}