ifgen.struct package#

Subpackages#

Submodules#

ifgen.struct.header module#

A module implementing a struct header-file interface generator.

ifgen.struct.header.cpp_struct_header(task: GenerateTask, writer: IndentedFileWriter) None[source]#

Create the contents of a C++ struct header file.

ifgen.struct.header.enforce_expected_size(size: int, data: dict[str, Any], assert_msg: str) None[source]#

Enforce an expected-size field.

ifgen.struct.header.struct_fields(task: GenerateTask, writer: IndentedFileWriter) None[source]#

Generate struct fields.

ifgen.struct.header.struct_header(task: GenerateTask, writer: IndentedFileWriter) None[source]#

Create the contents of a struct header file.

ifgen.struct.header.struct_instance(task: GenerateTask, writer: IndentedFileWriter, instance: dict[str, Any]) None[source]#

Generate struct instances.

ifgen.struct.header.struct_line(name: str, value: Dict[str, str | int], volatile: bool, const: bool, array_length: int = None) Tuple[str, str | None][source]#

Build a string for a struct-field line.

ifgen.struct.source module#

A module for generating struct source files.

ifgen.struct.source.create_struct_source(task: GenerateTask) None[source]#

Create a header file based on a struct definition.

ifgen.struct.stream module#

A module for implementing struct stream-related methods.

ifgen.struct.stream.struct_istream(task: GenerateTask, writer: IndentedFileWriter, header: bool) None[source]#

Generate an input-stream handling method.

ifgen.struct.stream.struct_ostream(task: GenerateTask, writer: IndentedFileWriter, header: bool) None[source]#

Generate an output-stream handling method.

ifgen.struct.stream.struct_stream_methods(task: GenerateTask, writer: IndentedFileWriter, header: bool) None[source]#

Generate struct stream read and write methods.

ifgen.struct.test module#

A module implementing a unit-test output generator for structs.

ifgen.struct.test.assert_line(writer: IndentedFileWriter, data: str) None[source]#

Write an assert line to the file.

ifgen.struct.test.create_struct_test(task: GenerateTask) None[source]#

Create a unit test for the enum string-conversion methods.

ifgen.struct.test.unit_test_basic_method(task: GenerateTask, writer: IndentedFileWriter) None[source]#

Implement a simple encode-and-decode scenario with endianness as a function argument.

ifgen.struct.test.unit_test_body(task: GenerateTask, writer: IndentedFileWriter) None[source]#

Implement a unit test for a struct.

ifgen.struct.test.unit_test_stream_tests(task: GenerateTask, writer: IndentedFileWriter) None[source]#

Generate unit tests for stream interfaces.

ifgen.struct.util module#

Utility interfaces related to struct code generation.

ifgen.struct.util.struct_dependencies(task: GenerateTask) set[str][source]#

Generates string type names for dependencies.

Module contents#

A module implementing interfaces for struct-file generation.

ifgen.struct.create_struct(task: GenerateTask) None[source]#

Create a header file based on a struct definition.

ifgen.struct.create_struct_source(task: GenerateTask) None[source]#

Create a header file based on a struct definition.

ifgen.struct.create_struct_test(task: GenerateTask) None[source]#

Create a unit test for the enum string-conversion methods.