Skip to main content

opencv_binding_generator/settings/
class_tweaks.rs

1use std::collections::HashMap;
2
3use semver::Version;
4
5use crate::SupportedModule;
6use crate::version::OpenCVVersionExt;
7use crate::writer::rust_native::type_ref::Lifetime;
8
9pub type ClassTweaks = HashMap<&'static str, ClassTweak>;
10
11#[derive(Clone, Copy, Debug)]
12pub enum ClassTweak {
13	Lifetime(Lifetime),
14}
15
16pub fn class_tweaks_factory(_: SupportedModule, opencv_version: &Version) -> ClassTweaks {
17	let mut out = HashMap::from([("cv::MatSize", ClassTweak::Lifetime(Lifetime::Custom("mat")))]);
18	if !opencv_version.is_opencv_5() {
19		out.insert("cv::MatStep", ClassTweak::Lifetime(Lifetime::Custom("mat")));
20	}
21	out
22}