opencv_binding_generator/settings/
element_export_tweak.rs

1use std::collections::HashMap;
2use std::sync::LazyLock;
3
4use crate::ExportConfig;
5
6/// Manual export config adjustments in the form of "cpp_name(Reference)" => tweak function. If the export config is not
7/// detected from the sources, an `ExportConfig::default()` is passed to the function.
8#[allow(clippy::type_complexity)]
9pub static ELEMENT_EXPORT_TWEAK: LazyLock<HashMap<&str, fn(ExportConfig) -> Option<ExportConfig>>> = LazyLock::new(|| {
10	HashMap::from([
11		("VADisplay", ExportConfig::export as _),
12		("VASurfaceID", ExportConfig::export as _),
13		("ID3D11Device", ExportConfig::system as _),
14		("ID3D11Texture2D", ExportConfig::system as _),
15		("ID3D10Device", ExportConfig::system as _),
16		("ID3D10Texture2D", ExportConfig::system as _),
17		("IDirect3DDevice9", ExportConfig::system as _),
18		("IDirect3DDevice9Ex", ExportConfig::system as _),
19		("IDirect3DSurface9", ExportConfig::system as _),
20		("cv::AffineWarper", ExportConfig::export as _), // 3.4 stitching warpers
21		("cv::CompressedRectilinearPortraitWarper", ExportConfig::export as _), // 3.4 stitching warpers
22		("cv::CompressedRectilinearWarper", ExportConfig::export as _), // 3.4 stitching warpers
23		("cv::CylindricalWarper", ExportConfig::export as _), // 3.4 stitching warpers
24		("cv::CylindricalWarperGpu", ExportConfig::export as _), // 3.4 stitching warpers
25		("cv::FisheyeWarper", ExportConfig::export as _), // 3.4 stitching warpers
26		("cv::MercatorWarper", ExportConfig::export as _), // 3.4 stitching warpers
27		("cv::PaniniPortraitWarper", ExportConfig::export as _), // 3.4 stitching warpers
28		("cv::PaniniWarper", ExportConfig::export as _), // 3.4 stitching warpers
29		("cv::PlaneWarper", ExportConfig::export as _),  // 3.4 stitching warpers
30		("cv::PlaneWarperGpu", ExportConfig::export as _), // 3.4 stitching warpers
31		("cv::SphericalWarper", ExportConfig::export as _), // 3.4 stitching warpers
32		("cv::SphericalWarperGpu", ExportConfig::export as _), // 3.4 stitching warpers
33		("cv::StereographicWarper", ExportConfig::export as _), // 3.4 stitching warpers
34		("cv::TransverseMercatorWarper", ExportConfig::export as _), // 3.4 stitching warpers
35		("cv::WarperCreator", ExportConfig::export as _), // 3.4 stitching warpers
36		("cv::ConfidenceMap", ExportConfig::export as _),
37		("cv::CvFeatureParams", ExportConfig::export as _),
38		("cv::CvHaarEvaluator", ExportConfig::export as _),
39		("cv::DetectionBasedTracker::ExtObject", ExportConfig::force_boxed as _),
40		("cv::DetectionBasedTracker::IDetector", ExportConfig::force_boxed as _),
41		("cv::DetectionROI", ExportConfig::export as _),
42		("cv::FileNodeIterator::SeqReader", ExportConfig::export as _),
43		("cv::KeyPoint", ExportConfig::force_boxed as _), // has descendants in xfeatures2d
44		("cv::Mat_", ExportConfig::export as _),
45		("cv::String", ExportConfig::no_export as _),
46		("cv::QtFont", ExportConfig::export as _),
47		("cv::TermCriteria", ExportConfig::simple as _),
48		("cv::RotatedRect", ExportConfig::simple as _), // marked simple since 4.8.0
49		("cv::aruco::DetectorParameters", ExportConfig::force_boxed as _), // used in Ptr
50		("cv::aruco::EstimateParameters", ExportConfig::force_boxed as _), // used in Ptr
51		("cv::bioinspired::RetinaParameters", ExportConfig::force_boxed as _),
52		("cv::bioinspired::SegmentationParameters", ExportConfig::simple as _),
53		("cv::cudacodec::FormatInfo", ExportConfig::simple as _),
54		("cv::detail::CheckContext", ExportConfig::force_boxed as _),
55		("cv::detail::ImageFeatures", ExportConfig::force_boxed as _), // 3.4 marked as boxed, but has no constructors
56		("cv::dnn::BackendNode", ExportConfig::export as _),
57		("cv::dnn::BackendWrapper", ExportConfig::export as _),
58		("cv::dnn::MatShape", ExportConfig::export as _),
59		("cv::dnn::Net", ExportConfig::force_boxed as _), // incorrectly marked as simple
60		("cv::dnn::_Range", ExportConfig::export as _),   // dnn shape_utils
61		("cv::dnn::clamp", ExportConfig::export as _),    // dnn shape_utils
62		("cv::dnn::concat", ExportConfig::export as _),   // dnn shape_utils
63		("cv::dnn::getPlane", ExportConfig::export as _), // dnn shape_utils
64		("cv::dnn::print", ExportConfig::export as _),    // dnn shape_utils
65		("cv::dnn::shape", ExportConfig::export as _),    // dnn shape_utils
66		("cv::dnn::slice", ExportConfig::export as _),    // dnn shape_utils
67		("cv::dnn::toString", ExportConfig::export as _), // dnn shape_utils
68		("cv::dnn::total", ExportConfig::export as _),    // dnn shape_utils
69		("cv::face::CParams", ExportConfig::export as _),
70		("cv::face::FacemarkAAM::Model::Texture", ExportConfig::export as _),
71		("cv::getElemSize", ExportConfig::export as _),
72		("cv::kinfu::Intr", ExportConfig::simple as _),
73		("cv::morphologyDefaultBorderValue", ExportConfig::export as _),
74		("cv::ocl::Device", ExportConfig::force_boxed as _),
75		("cv::optflow::GPCMatchingParams", ExportConfig::simple as _),
76		("cv::optflow::GPCTrainingParams", ExportConfig::simple as _),
77		("cv::ppf_match_3d::Pose3DPtr", ExportConfig::export as _),
78		("cv::superres::PyrLKOpticalFlow", ExportConfig::export as _),
79		("cv::utils::FunctionParams", ExportConfig::simple as _), // missing in 4.8
80		("cv::utils::logging::LogTag", ExportConfig::export as _),
81		("cv::videostab::MaskFrameSource", ExportConfig::export as _),
82		("cv::viz::Color", ExportConfig::export as _),
83		("cv::ximgproc::Box", ExportConfig::simple as _), // used by Boxes typedef
84		("cvv::impl::CallMetaData", ExportConfig::force_boxed as _),
85		// half-float types from core
86		("cv::hfloat", ExportConfig::simple as _),
87		("cv::bfloat", ExportConfig::simple as _),
88		("cv::float16_t", ExportConfig::simple as _),
89		// gapi
90		("cv::GCompileArg", ExportConfig::export as _),
91		("cv::GCompileArgs", ExportConfig::export as _),
92		("cv::GKinds", ExportConfig::export as _),
93		("cv::GRunArgs", ExportConfig::export as _),
94		("cv::GShapes", ExportConfig::export as _),
95		("cv::GTypeInfo", ExportConfig::force_boxed as _),
96		("cv::GTypesInfo", ExportConfig::export as _),
97		("cv::RMat::IAdapter", ExportConfig::export as _),
98		("cv::detail::ExtractArgsCallback", ExportConfig::export as _),
99		("cv::detail::ExtractMetaCallback", ExportConfig::export as _),
100		("cv::gapi::GFunctor", ExportConfig::export as _),
101		("cv::util::any", ExportConfig::export as _),
102		// force pure boxed
103		("cv::dnn::TextDetectionModel", ExportConfig::override_boxed as _), // marked as simple, can be simple, but has protected constructor
104	])
105});