| {%- for pf in struct.packed.packed_fields_in_ordinal_order %} |
| {%- set kind = pf.field.kind %} |
| {%- set name = pf.field.name %} |
| |
| {%- if kind|is_union_kind %} |
| inline void {{struct.name}}DataView::Get{{name|under_to_camel}}DataView( |
| {{kind|cpp_data_view_type}}* output) { |
| {%- if pf.min_version != 0 %} |
| auto pointer = data_->header_.version >= {{pf.min_version}} |
| ? &data_->{{name}} : nullptr; |
| {%- else %} |
| auto pointer = &data_->{{name}}; |
| {%- endif %} |
| *output = {{kind|cpp_data_view_type}}(pointer, context_); |
| } |
| |
| {%- elif kind|is_object_kind %} |
| inline void {{struct.name}}DataView::Get{{name|under_to_camel}}DataView( |
| {{kind|cpp_data_view_type}}* output) { |
| {%- if pf.min_version != 0 %} |
| auto pointer = data_->header_.version >= {{pf.min_version}} |
| ? data_->{{name}}.Get() : nullptr; |
| {%- else %} |
| auto pointer = data_->{{name}}.Get(); |
| {%- endif %} |
| *output = {{kind|cpp_data_view_type}}(pointer, context_); |
| } |
| {%- endif %} |
| {%- endfor %} |
| |