| {{#*inline "data"}} |
| {{#if isNullable}}{{asPropertyValue}}.Value().data(){{else}}{{asPropertyValue}}.data(){{/if}} |
| {{/inline}} |
| {{#*inline "size"}} |
| {{#if isNullable}}{{asPropertyValue}}.Value().size(){{else}}{{asPropertyValue}}.size(){{/if}} |
| {{/inline}} |
| {{#*inline "saveAsTarget"~}} |
| {{saveAs}}{{#if isOptional}}.Emplace(){{/if}} |
| {{~/inline}} |
| {{#if saveAs}} |
| {{#if (isString type)}} |
| {{#if isOptional}} |
| if ({{asPropertyValue dontUnwrapValue=true}}.HasValue()) { |
| {{/if}} |
| {{#if isNullable}} |
| if ({{asPropertyValue}}.IsNull()){ |
| {{> saveAsTarget}}.SetNull(); |
| } |
| else { |
| {{/if}} |
| if ({{saveAs}}Buffer != nullptr) |
| { |
| chip::Platform::MemoryFree({{saveAs}}Buffer); |
| } |
| {{saveAs}}Buffer = static_cast<{{#if (isOctetString type)}}uint8_t{{else}}char{{/if}} *>(chip::Platform::MemoryAlloc({{>size}})); |
| memcpy({{saveAs}}Buffer, {{>data}}, {{>size}}); |
| {{#if isNullable}} |
| {{> saveAsTarget}}.SetNonNull({{saveAs}}Buffer, {{>size}}); |
| } |
| {{else}} |
| {{> saveAsTarget}} = {{chipType}}({{saveAs}}Buffer, {{>size}}); |
| {{/if}} |
| {{#if isOptional}} |
| } |
| else |
| { |
| {{saveAs}} = NullOptional; |
| } |
| {{/if}} |
| {{else}} |
| {{saveAs}} = {{asPropertyValue dontUnwrapValue=true}}; |
| {{/if}} |
| {{/if}} |