nitro-codegen
Version:
The code-generator for react-native-nitro-modules.
38 lines (37 loc) • 1.12 kB
JavaScript
import { getForwardDeclaration } from '../c++/getForwardDeclaration.js';
export class HybridObjectBaseType {
constructor() { }
get canBePassedByReference() {
// It's a shared_ptr<..>, no copy.
return true;
}
get kind() {
return 'hybrid-object-base';
}
getCode(language) {
switch (language) {
case 'c++':
return `std::shared_ptr<HybridObject>`;
default:
throw new Error(`The base type \`HybridObject\` cannot be used directly in ${language} yet. Use a specific derived class of \`HybridObject\` instead!`);
}
}
getExtraFiles() {
return [];
}
getRequiredImports() {
return [
{
language: 'c++',
name: 'memory',
space: 'system',
},
{
name: `NitroModules/HybridObject.hpp`,
forwardDeclaration: getForwardDeclaration('class', 'HybridObject', 'margelo::nitro'),
language: 'c++',
space: 'system',
},
];
}
}