ifgen.struct.methods.fields package#
Submodules#
ifgen.struct.methods.fields.common module#
Common utilities for generating bit-field related struct methods.
- ifgen.struct.methods.fields.common.bit_field_method_slug(field: dict[str, Any], member: str = '', alias: str = None) str [source]#
Get a method slug for a struct’s bit-field method.
- ifgen.struct.methods.fields.common.bit_field_underlying(field: dict[str, Any]) str [source]#
Get the underlying type for a bit field.
ifgen.struct.methods.fields.getter module#
A module implementing ‘get’ methods for bit-fields.
- ifgen.struct.methods.fields.getter.bit_field_get_all_method(task: GenerateTask, writer: IndentedFileWriter, header: bool, field: dict[str, Any], fields: list[dict[str, Any]], alias: str = None) None [source]#
Generate a ‘get’ method for multiple bit-field.
- ifgen.struct.methods.fields.getter.bit_field_get_method(task: GenerateTask, parent: dict[str, Any], field: dict[str, Any], writer: IndentedFileWriter, header: bool, alias: str = None) None [source]#
Generate a ‘get’ method for a bit-field.
- ifgen.struct.methods.fields.getter.get_bit_field_statement(task: GenerateTask, field: dict[str, Any], lhs: str) str [source]#
Get the arithmetic statement associated with a bit-field get operation.
ifgen.struct.methods.fields.setter module#
A module implementing ‘set’ methods for bit-fields.
- ifgen.struct.methods.fields.setter.bit_field_set_all_method(task: GenerateTask, writer: IndentedFileWriter, header: bool, field: dict[str, Any], fields: list[dict[str, Any]], alias: str = None) None [source]#
Generate a ‘set’ method for multiple bit-field.
- ifgen.struct.methods.fields.setter.bit_field_set_lines(task: GenerateTask, field: dict[str, Any], lhs: str = 'curr', value: str = 'value') Iterator[str] [source]#
Get lines that perform a bit-field’s assignment.
- ifgen.struct.methods.fields.setter.bit_field_set_method(task: GenerateTask, parent: dict[str, Any], field: dict[str, Any], writer: IndentedFileWriter, header: bool, alias: str = None) None [source]#
Generate a ‘set’ method for a bit-field.
Module contents#
A module implementing an interface for generating bit-field methods for structs.
- ifgen.struct.methods.fields.bit_field(task: GenerateTask, parent: dict[str, Any], field: dict[str, Any], writer: IndentedFileWriter, header: bool, read_fields: list[dict[str, Any]], write_fields: list[dict[str, Any]], alias: str = None) None [source]#
Generate for an individual bit-field.
- ifgen.struct.methods.fields.bit_fields(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Generate bit-field lines.
- ifgen.struct.methods.fields.handle_atomic_fields_methods(task: GenerateTask, writer: IndentedFileWriter, header: bool, field: dict[str, Any], read_fields: list[dict[str, Any]], write_fields: list[dict[str, Any]], alias: str = None) None [source]#
Handle additional bit-field methods.