UNPKG

nitro-codegen

Version:

The code-generator for react-native-nitro-modules.

50 lines (49 loc) 1.41 kB
import {} from '../SourceFile.js'; export class ArrayType { itemType; constructor(itemType) { this.itemType = itemType; } get canBePassedByReference() { // It's a vector<..>, heavy to copy return true; } get kind() { return 'array'; } getCode(language) { const itemCode = this.itemType.getCode(language); switch (language) { case 'c++': return `std::vector<${itemCode}>`; case 'swift': return `[${itemCode}]`; case 'kotlin': switch (this.itemType.kind) { case 'number': return 'DoubleArray'; case 'boolean': return 'BooleanArray'; case 'bigint': return 'LongArray'; default: return `Array<${itemCode}>`; } default: throw new Error(`Language ${language} is not yet supported for ArrayType!`); } } getExtraFiles() { return this.itemType.getExtraFiles(); } getRequiredImports() { return [ { language: 'c++', name: 'vector', space: 'system', }, ...this.itemType.getRequiredImports(), ]; } }