nitro-codegen
Version:
The code-generator for react-native-nitro-modules.
41 lines (40 loc) • 1.15 kB
JavaScript
import {} from '../SourceFile.js';
import { ErrorType } from './ErrorType.js';
export class ResultWrappingType {
result;
error;
constructor(result) {
this.result = result;
this.error = new ErrorType();
}
get canBePassedByReference() {
return this.result.canBePassedByReference;
}
get kind() {
return 'result-wrapper';
}
getCode(language) {
switch (language) {
case 'c++':
return `Result<${this.result.getCode(language)}>`;
case 'swift':
return this.result.getCode(language);
default:
throw new Error(`Language ${language} is not yet supported for VariantType!`);
}
}
getExtraFiles() {
return [...this.result.getExtraFiles(), ...this.error.getExtraFiles()];
}
getRequiredImports() {
return [
{
language: 'c++',
name: 'NitroModules/Result.hpp',
space: 'system',
},
...this.result.getRequiredImports(),
...this.error.getRequiredImports(),
];
}
}