use crate::rule::shape::{one_to_one, part_of};
use seesaw_tgg::rules::format::RuleFile;
const CATALOGUE_NAME: &str = "cpp";
#[must_use]
pub fn catalogue() -> RuleFile {
RuleFile {
format: 3,
name: CATALOGUE_NAME.to_string(),
rules: vec![
one_to_one("struct-to-class", "Structure", "CppStruct", "CppStructCorr"),
part_of(
"member-to-member",
("Member", "Structure", "CppStructCorr"),
("CppField", "CppStruct", "CppFieldCorr"),
),
one_to_one("enum-to-enum", "Enumeration", "CppEnum", "CppEnumCorr"),
part_of(
"enumerator-to-enumerator",
("Enumerator", "Enumeration", "CppEnumCorr"),
("CppEnumerator", "CppEnum", "CppEnumeratorCorr"),
),
one_to_one("alias-to-using", "Alias", "CppAlias", "CppAliasCorr"),
one_to_one("union-to-class", "Union", "CppUnion", "CppUnionCorr"),
part_of(
"case-to-member",
("Case", "Union", "CppUnionCorr"),
("CppCase", "CppUnion", "CppCaseCorr"),
),
one_to_one("bitmask-to-enum", "Bitmask", "CppBitmask", "CppBitmaskCorr"),
part_of(
"bit-to-const",
("BitValue", "Bitmask", "CppBitmaskCorr"),
("CppBitConst", "CppBitmask", "CppBitCorr"),
),
one_to_one("bitset-to-class", "Bitset", "CppBitset", "CppBitsetCorr"),
one_to_one(
"valuetype-to-class",
"Valuetype",
"CppValue",
"CppValueCorr",
),
one_to_one(
"module-to-namespace",
"Module",
"CppModule",
"CppModuleCorr",
),
one_to_one("const-to-const", "Const", "CppConst", "CppConstCorr"),
one_to_one(
"exception-to-class",
"Exception",
"CppError",
"CppErrorCorr",
),
one_to_one(
"interface-to-class",
"Interface",
"CppInterface",
"CppInterfaceCorr",
),
one_to_one("native-to-using", "Native", "CppNative", "CppNativeCorr"),
],
}
}