blob: 548f8af5fc71e724456fadfbc632571c5fc6d7e5 [file] [log] [blame]
#pragma once
#include <app/data-model/Nullable.h>
#include <lib/assign/ValueAssign.h>
#include <string>
#include <vector>
namespace clusters {
{% for struct in structs %}
struct {{struct.name}}
{
CHIP_ERROR Decode(chip::TLV::TLVReader & reader)
{
chip::app::Clusters::detail::Structs::{{struct.name}}::DecodableType t;
CHIP_ERROR err = t.Decode(reader);
if(err == CHIP_NO_ERROR) {
{%- for field in struct.fields %}
chip::Value::Assign({{field.name}}, t.{{field.name}});
{%- endfor %}
}
return err;
}
CHIP_ERROR Encode(chip::TLV::TLVWriter & writer, chip::TLV::Tag tag) const
{
chip::app::Clusters::detail::Structs::{{struct.name}}::Type t;
{%- for field in struct.fields %}
chip::Value::Assign(t.{{field.name}}, {{field.name}});
{%- endfor %}
return t.Encode(writer, tag);
}
{%- for field in struct.fields %}
{{field | getField(None, idl)}} {{field.name}};
{%- endfor %}
};
{%- endfor %}
}