|
1 | 1 | use std::collections::HashMap;
|
2 | 2 |
|
3 |
| -use once_cell::sync::Lazy; |
| 3 | +use crate::func::FuncMatcher; |
| 4 | + |
| 5 | +// pub type FuncCfgAttr = HashMap<&'static str, (&'static str, &'static str)>; |
| 6 | +pub type FuncCfgAttr = FuncMatcher<'static, (&'static str, &'static str)>; |
4 | 7 |
|
5 | 8 | /// identifier => (rust_attr, cpp_attr)
|
6 |
| -pub static FUNC_CFG_ATTR: Lazy<HashMap<&str, (&str, &str)>> = Lazy::new(|| { |
7 |
| - HashMap::from([ |
8 |
| - // ### imgproc ### |
9 |
| - ("cv_getRotationMatrix2D__Point2f_double_double", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
| 9 | +pub fn func_cfg_attr_factory(module: &str) -> FuncCfgAttr { |
| 10 | + match module { |
| 11 | + "imgproc" => imgproc_factory(), |
| 12 | + "tracking" => tracking_factory(), |
| 13 | + _ => FuncCfgAttr::empty(), |
| 14 | + } |
| 15 | +} |
| 16 | + |
| 17 | +fn imgproc_factory() -> FuncCfgAttr { |
| 18 | + FuncCfgAttr::create(HashMap::from([( |
| 19 | + "cv::getRotationMatrix2D_", |
| 20 | + vec![(pred!(mut, ["center", "angle", "scale"]), NOT_ON_WINDOWS)], |
| 21 | + )])) |
| 22 | +} |
| 23 | + |
| 24 | +fn tracking_factory() -> FuncCfgAttr { |
| 25 | + FuncCfgAttr::create(HashMap::from([ |
| 26 | + ( |
| 27 | + "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::TrackerAdaBoostingTargetState", |
| 28 | + vec![( |
| 29 | + pred!(mut, ["position", "width", "height", "foreground", "responses"]), |
| 30 | + NOT_ON_WINDOWS, // 3.4 |
| 31 | + )], |
| 32 | + ), |
| 33 | + ( |
| 34 | + "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::getTargetResponses", |
| 35 | + vec![( |
| 36 | + pred!(const, []), |
| 37 | + NOT_ON_WINDOWS, // 3.4 |
| 38 | + )], |
| 39 | + ), |
| 40 | + ( |
| 41 | + "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::isTargetFg", |
| 42 | + vec![( |
| 43 | + pred!(const, []), |
| 44 | + NOT_ON_WINDOWS, // 3.4 |
| 45 | + )], |
| 46 | + ), |
| 47 | + ( |
| 48 | + "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::setTargetFg", |
| 49 | + vec![( |
| 50 | + pred!(mut, ["foreground"]), |
| 51 | + NOT_ON_WINDOWS, // 3.4 |
| 52 | + )], |
| 53 | + ), |
| 54 | + ( |
| 55 | + "cv::TrackerStateEstimatorAdaBoosting::TrackerAdaBoostingTargetState::setTargetResponses", |
| 56 | + vec![( |
| 57 | + pred!(mut, ["responses"]), |
| 58 | + NOT_ON_WINDOWS, // 3.4 |
| 59 | + )], |
| 60 | + ), |
| 61 | + ( |
| 62 | + "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::TrackerMILTargetState", |
| 63 | + vec![( |
| 64 | + pred!(mut, ["position", "width", "height", "foreground", "features"]), |
| 65 | + NOT_ON_WINDOWS, // 3.4 |
| 66 | + )], |
| 67 | + ), |
| 68 | + ( |
| 69 | + "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::getFeatures", |
| 70 | + vec![( |
| 71 | + pred!(const, []), |
| 72 | + NOT_ON_WINDOWS, // 3.4 |
| 73 | + )], |
| 74 | + ), |
| 75 | + ( |
| 76 | + "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::isTargetFg", |
| 77 | + vec![( |
| 78 | + pred!(const, []), |
| 79 | + NOT_ON_WINDOWS, // 3.4 |
| 80 | + )], |
| 81 | + ), |
| 82 | + ( |
| 83 | + "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setFeatures", |
| 84 | + vec![( |
| 85 | + pred!(mut, ["features"]), |
| 86 | + NOT_ON_WINDOWS, // 3.4 |
| 87 | + )], |
| 88 | + ), |
| 89 | + ( |
| 90 | + "cv::TrackerStateEstimatorMILBoosting::TrackerMILTargetState::setTargetFg", |
| 91 | + vec![( |
| 92 | + pred!(mut, ["foreground"]), |
| 93 | + NOT_ON_WINDOWS, // 3.4 |
| 94 | + )], |
| 95 | + ), |
| 96 | + ])) |
| 97 | +} |
10 | 98 |
|
11 |
| - // ### tracking ### |
12 |
| - ("cv_TrackerStateEstimatorAdaBoosting_TrackerAdaBoostingTargetState_TrackerAdaBoostingTargetState_const_Point2fR_int_int_bool_const_MatR", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
13 |
| - ("cv_TrackerStateEstimatorAdaBoosting_TrackerAdaBoostingTargetState_getTargetResponses_const", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
14 |
| - ("cv_TrackerStateEstimatorAdaBoosting_TrackerAdaBoostingTargetState_isTargetFg_const", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
15 |
| - ("cv_TrackerStateEstimatorAdaBoosting_TrackerAdaBoostingTargetState_setTargetFg_bool", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
16 |
| - ("cv_TrackerStateEstimatorAdaBoosting_TrackerAdaBoostingTargetState_setTargetResponses_const_MatR", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
17 |
| - ("cv_TrackerStateEstimatorMILBoosting_TrackerMILTargetState_TrackerMILTargetState_const_Point2fR_int_int_bool_const_MatR", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
18 |
| - ("cv_TrackerStateEstimatorMILBoosting_TrackerMILTargetState_getFeatures_const", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
19 |
| - ("cv_TrackerStateEstimatorMILBoosting_TrackerMILTargetState_isTargetFg_const", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
20 |
| - ("cv_TrackerStateEstimatorMILBoosting_TrackerMILTargetState_setFeatures_const_MatR", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
21 |
| - ("cv_TrackerStateEstimatorMILBoosting_TrackerMILTargetState_setTargetFg_bool", ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)")), |
22 |
| - ]) |
23 |
| -}); |
| 99 | +const NOT_ON_WINDOWS: (&str, &str) = ("not(target_os = \"windows\")", "!defined(OCVRS_TARGET_OS_WINDOWS)"); |
0 commit comments