ifgen.struct.methods package#
Subpackages#
Submodules#
ifgen.struct.methods.bit module#
A module implementing interfaces for generating bit-field methods.
- ifgen.struct.methods.bit.bit_field_toggle_method(task: GenerateTask, name: str, field: dict[str, Any], writer: IndentedFileWriter, header: bool, method_slug: str) None [source]#
Generate a ‘toggle’ method for a bit-field.
- ifgen.struct.methods.bit.clear_bit_method(task: GenerateTask, name: str, field: dict[str, Any], writer: IndentedFileWriter, header: bool, method_slug: str) None [source]#
Generate a ‘clear’ method for a bit-field.
- ifgen.struct.methods.bit.handle_description(writer: IndentedFileWriter, field: dict[str, Any]) None [source]#
Handle writing an instance’s description.
- ifgen.struct.methods.bit.set_bit_method(task: GenerateTask, name: str, field: dict[str, Any], writer: IndentedFileWriter, header: bool, method_slug: str) None [source]#
Generate a ‘set’ method for a bit-field.
ifgen.struct.methods.common module#
Utilities shared between struct methods.
- ifgen.struct.methods.common.native_decode(writer: IndentedFileWriter) None [source]#
Write a buffer decoding method for native byte order.
- ifgen.struct.methods.common.native_encode(writer: IndentedFileWriter) None [source]#
Write a buffer encoding method for native byte order.
- ifgen.struct.methods.common.wrapper_method(task: GenerateTask, writer: IndentedFileWriter, header: bool, is_encode: bool = True) None [source]#
Create a generic encode/decode method.
ifgen.struct.methods.decode module#
A module for struct-decoding methods.
- ifgen.struct.methods.decode.decode_method(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Write boilerplate decode method.
- ifgen.struct.methods.decode.struct_decode(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Add a method for decoding structs.
ifgen.struct.methods.encode module#
A module for struct-encoding methods.
- ifgen.struct.methods.encode.encode_method(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Write boilerplate encode method.
- ifgen.struct.methods.encode.struct_encode(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Add a method for encoding structs.
ifgen.struct.methods.swap module#
A module implementing interfaces for byte-swapping method generation.
- ifgen.struct.methods.swap.assignment(writer: IndentedFileWriter, lhs: str, rhs: str) None [source]#
Write an assignment line.
- ifgen.struct.methods.swap.decode_primitive_swap(field: dict[str, Any], writer: IndentedFileWriter, is_array: bool) None [source]#
Decode a primitive-sized element by swapping byte order.
- ifgen.struct.methods.swap.decode_swapped_method(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Generate a struct-decode method that uses swapped byte order.
- ifgen.struct.methods.swap.encode_primitive_swap(field: dict[str, Any], writer: IndentedFileWriter, is_array: bool) None [source]#
Encode a primitive-sized element by swapping byte order.
- ifgen.struct.methods.swap.encode_swapped_method(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Generate a struct-encode method that uses swapped byte order.
- ifgen.struct.methods.swap.no_swap(field: dict[str, Any], is_decode: bool, task: GenerateTask, writer: IndentedFileWriter, is_array: bool) None [source]#
Encode or decode a single-byte type.
- ifgen.struct.methods.swap.swap_enum(field: dict[str, Any], is_decode: bool, task: GenerateTask, writer: IndentedFileWriter, is_array: bool) None [source]#
Perform a byte swap for an enumeration type.
- ifgen.struct.methods.swap.swap_fields(task: GenerateTask, writer: IndentedFileWriter, is_decode: bool = True) None [source]#
Perform byte swaps on individual struct fields.
- ifgen.struct.methods.swap.swap_struct(field: dict[str, Any], is_decode: bool, task: GenerateTask, writer: IndentedFileWriter, is_array: bool) None [source]#
Perform a byte swap for a struct type.
Module contents#
A module implementing interfaces for generating struct method code.
- ifgen.struct.methods.protocol_json(task: GenerateTask) dict[str, Any] [source]#
Get JSON data for this struct task.
- ifgen.struct.methods.span_method(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Generate a span method.
- ifgen.struct.methods.struct_buffer_method(task: GenerateTask, writer: IndentedFileWriter, header: bool, read_only: bool) None [source]#
Generate a method for raw buffer access.
- ifgen.struct.methods.struct_methods(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Write generated-struct methods.
- ifgen.struct.methods.swap_method(task: GenerateTask, writer: IndentedFileWriter, header: bool) None [source]#
Add an in-place swap method.