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.

ifgen.struct.methods.swap.to_integral(kind: str) str[source]#

Convert certain types to their corresponding integral types.

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.