object-introspection/types/weak_ptr_type.toml
Jake Hillion 5071519e45 oil v2
2023-08-23 15:59:53 +01:00

42 lines
823 B
TOML

[info]
type_name = "std::weak_ptr"
ctype = "WEAK_PTR_TYPE"
header = "memory"
# Old:
typeName = "std::weak_ptr"
ns = ["namespace std"]
numTemplateParams = 1
replaceTemplateParamIndex = []
[codegen]
decl = """
template<typename T>
void getSizeType(const %1%<T> &s_ptr, size_t& returnArg);
"""
# Weak pointers do not have ownership, so let's not follow them (for now)
func = """
template<typename T>
void getSizeType(const %1%<T> &s_ptr, size_t& returnArg)
{
SAVE_SIZE(sizeof(%1%<T>));
}
"""
handler = """
template <typename DB, typename T0>
struct TypeHandler<DB, %1%<T0>> {
using type = types::st::Unit<DB>;
static types::st::Unit<DB> getSizeType(
const %1%<T0>& container,
typename TypeHandler<DB, %1%<T0>>::type returnArg) {
return returnArg;
}
};
"""
traversal_func = "return returnArg;"