1use std::collections::HashMap;
2
3use crate::func::FuncMatcher;
4use crate::SupportedModule;
5
6pub type ForceInfallible = FuncMatcher<'static, ()>;
7
8pub fn force_infallible_factory(module: SupportedModule) -> ForceInfallible {
9 match module {
10 SupportedModule::Core => core_factory(),
11 _ => ForceInfallible::empty(),
12 }
13}
14
15fn core_factory() -> ForceInfallible {
16 FuncMatcher::create(HashMap::from([
17 ("cv::noArray", vec![(pred!(mut, []), ())]),
19 ("cv::getVersionMajor", vec![(pred!(mut, []), ())]),
20 ("cv::getVersionMinor", vec![(pred!(mut, []), ())]),
21 ("cv::getVersionRevision", vec![(pred!(mut, []), ())]),
22 ("cv::Mat::empty", vec![(pred!(const, []), ())]),
24 ("cv::Mat::total", vec![(pred!(const, []), ())]),
25 ("cv::Mat::isContinuous", vec![(pred!(const, []), ())]),
26 ("cv::Mat::isSubmatrix", vec![(pred!(const, []), ())]),
27 ("cv::Mat::elemSize1", vec![(pred!(const, []), ())]),
28 ("cv::Mat::type", vec![(pred!(const, []), ())]),
29 ("cv::Mat::depth", vec![(pred!(const, []), ())]),
30 ("cv::Mat::channels", vec![(pred!(const, []), ())]),
31 ("cv::UMat::empty", vec![(pred!(const, []), ())]),
32 ("cv::UMat::total", vec![(pred!(const, []), ())]),
33 ("cv::UMat::isContinuous", vec![(pred!(const, []), ())]),
34 ("cv::UMat::isSubmatrix", vec![(pred!(const, []), ())]),
35 ("cv::UMat::elemSize1", vec![(pred!(const, []), ())]),
36 ("cv::UMat::type", vec![(pred!(const, []), ())]),
37 ("cv::UMat::depth", vec![(pred!(const, []), ())]),
38 ("cv::UMat::channels", vec![(pred!(const, []), ())]),
39 ("cv::SparseMat::elemSize", vec![(pred!(const, []), ())]),
40 ("cv::SparseMat::elemSize1", vec![(pred!(const, []), ())]),
41 ("cv::SparseMat::type", vec![(pred!(const, []), ())]),
42 ("cv::SparseMat::depth", vec![(pred!(const, []), ())]),
43 ("cv::SparseMat::channels", vec![(pred!(const, []), ())]),
44 ("cv::Mat::Mat", vec![(pred!(mut, []), ())]),
46 ("cv::MatSize::MatSize", vec![(pred!(mut, ["_p"]), ())]),
47 ("cv::MatSize::dims", vec![(pred!(const, []), ())]),
48 ("cv::MatSize::operator const int*", vec![(pred!(const, []), ())]),
49 ("cv::MatStep::MatStep", vec![(pred!(mut, []), ())]),
50 ("cv::MatStep::operator[]", vec![(pred!(mut, ["i"]), ())]),
51 ("cv::UMat::UMat", vec![(pred!(mut, ["usageFlags"]), ())]),
52 ("cv::ocl::Context::Context", vec![(pred!(mut, []), ())]),
53 ("cv::ocl::Device::Device", vec![(pred!(mut, []), ())]),
54 ("cv::ocl::Image2D::Image2D", vec![(pred!(mut, []), ())]),
55 ("cv::ocl::Kernel::Kernel", vec![(pred!(mut, []), ())]),
56 ("cv::ocl::KernelArg::KernelArg", vec![(pred!(mut, []), ())]),
57 ("cv::ocl::Platform::Platform", vec![(pred!(mut, []), ())]),
58 ("cv::ocl::PlatformInfo::PlatformInfo", vec![(pred!(mut, []), ())]),
59 ("cv::ocl::Program::Program", vec![(pred!(mut, []), ())]),
60 ("cv::ocl::ProgramSource::ProgramSource", vec![(pred!(mut, []), ())]),
61 ("cv::ocl::Queue::Queue", vec![(pred!(mut, []), ())]),
62 ]))
63}