def __init__(self, length_field_type: UnsignedIntegerFieldType, element_field_type: _FieldType):
super().__init__(element_field_type)
self._length_field_type = length_field_type
- self._length_ft_member_name = None
+ self._length_ft_member_name: Optional[str] = None
@property
def length_field_type(self):
struct {
{% for name, member in ft.members.items() %}
{{ member.field_type | deepest_ft | ft_str | indent_tab }} {{ name }}
- {%- for len in member.field_type | ft_lengths(name) %}[{{ len }}]{% endfor %};
+ {%- for len in member.field_type | ft_lengths %}[{{ len }}]{% endfor %};
{% endfor %}
} align({{ ft.minimum_alignment }})
return _STR_FT_TEMPL.render(ft=ft)
-def _filt_ft_lengths(ft: barectf_config._FieldType, name: str) -> List[Union[str, int]]:
+def _filt_ft_lengths(ft: barectf_config._FieldType) -> List[Union[str, int]]:
lengths: List[Union[str, int]] = []
while isinstance(ft, barectf_config._ArrayFieldType):
else:
assert type(ft) is barectf_config.DynamicArrayFieldType
ft = typing.cast(barectf_config.DynamicArrayFieldType, ft)
- lengths.append(ft._length_ft_member_name)
+ lengths.append(typing.cast(str, ft._length_ft_member_name))
ft = ft.element_field_type