use crate::*;
pub(crate) fn new() -> Item {
let docs = docs!();
let name = "matcher".into();
let items = vec![
item! {
fn is_supported "fms" {} -> bool
},
item! {
fn template_length "fmt" {} -> usize
},
item! {
fn enroll "fme" {
handler_step_func: fn { data: *const void, remaining: usize },
handler_step_data: *const void,
handler_func: fn { data: *const void, result: isize, template: *mut u8 },
handler_data: *const void,
} -> ()
},
item! {
fn abort_enroll "fmE" {} -> ()
},
item! {
fn identify "fmi" {
template: *const u8,
handler_func: fn { data: *const void, result: isize, template: *mut u8 },
handler_data: *const void,
} -> ()
},
item! {
fn abort_identify "fmI" {} -> ()
},
item! {
fn delete_template "fmd" {
template: *const u8,
} -> ()
},
item! {
fn list_templates "fml" {
templates: *mut *mut u8,
} -> usize
},
];
Item::Mod(Mod { docs, name, items })
}