@Test public void generateSharedImports() throws IOException { RustGenerator.generateSharedImports(generateIrForResource(BROAD_USE_CASES_SCHEMA), outputManager); assertContainsSharedImports(outputManager.toString()); }
@Test public void generateBasicEnum() throws IOException { RustGenerator.generateSharedImports(generateIrForResource(BASIC_TYPES_SCHEMA), outputManager); assertContainsSharedImports(outputManager.toString()); }
public void generate() throws IOException { generateSharedImports(ir, outputManager); generateResultEnums(outputManager); generateDecoderScratchStruct(outputManager); generateEncoderScratchStruct(ir, outputManager); generateEitherEnum(outputManager); generateEnums(ir, outputManager); generateComposites(ir, outputManager); generateBitSets(ir, outputManager); final int headerSize = totalByteSize(ir.headerStructure()); for (final List<Token> tokens : ir.messages()) { final MessageComponents components = MessageComponents.collectMessageComponents(tokens); final String messageTypeName = formatTypeName(components.messageToken.name()); final Optional<FieldsRepresentationSummary> fieldsRepresentation = generateFieldsRepresentation(messageTypeName, components, outputManager); generateMessageHeaderDefault(ir, outputManager, components.messageToken); // Avoid the work of recomputing the group tree twice per message final List<GroupTreeNode> groupTree = buildGroupTrees(messageTypeName, components.groups); generateGroupFieldRepresentations(outputManager, groupTree); generateMessageDecoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); generateMessageEncoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); } }
public void generate() throws IOException { generateSharedImports(ir, outputManager); generateResultEnums(outputManager); generateDecoderScratchStruct(outputManager); generateEncoderScratchStruct(ir, outputManager); generateEitherEnum(outputManager); generateEnums(ir, outputManager); generateComposites(ir, outputManager); generateBitSets(ir, outputManager); final int headerSize = totalByteSize(ir.headerStructure()); for (final List<Token> tokens : ir.messages()) { final MessageComponents components = MessageComponents.collectMessageComponents(tokens); final String messageTypeName = formatTypeName(components.messageToken.name()); final Optional<FieldsRepresentationSummary> fieldsRepresentation = generateFieldsRepresentation(messageTypeName, components, outputManager); generateMessageHeaderDefault(ir, outputManager, components.messageToken); // Avoid the work of recomputing the group tree twice per message final List<GroupTreeNode> groupTree = buildGroupTrees(messageTypeName, components.groups); generateGroupFieldRepresentations(outputManager, groupTree); generateMessageDecoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); generateMessageEncoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); } }
public void generate() throws IOException { generateSharedImports(ir, outputManager); generateResultEnums(outputManager); generateDecoderScratchStruct(outputManager); generateEncoderScratchStruct(ir, outputManager); generateEitherEnum(outputManager); generateEnums(ir, outputManager); generateComposites(ir, outputManager); generateBitSets(ir, outputManager); final int headerSize = totalByteSize(ir.headerStructure()); for (final List<Token> tokens : ir.messages()) { final MessageComponents components = MessageComponents.collectMessageComponents(tokens); final String messageTypeName = formatTypeName(components.messageToken.name()); final Optional<FieldsRepresentationSummary> fieldsRepresentation = generateFieldsRepresentation(messageTypeName, components, outputManager); generateMessageHeaderDefault(ir, outputManager, components.messageToken); // Avoid the work of recomputing the group tree twice per message final List<GroupTreeNode> groupTree = buildGroupTrees(messageTypeName, components.groups); generateGroupFieldRepresentations(outputManager, groupTree); generateMessageDecoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); generateMessageEncoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); } }