blob: 04388e8b1a3844d46dd4f29745949a4661e0d98f [file] [log] [blame]
struct TypeInfo {
{{! forceNotOptional=true because the optionality is on the attribute
itself, but we want just the type of the attribute. }}
{{#if entryType}}
using Type = {{zapTypeToEncodableClusterObjectType entryType ns=ns forceNotOptional=true}};
using DecodableType = {{zapTypeToDecodableClusterObjectType entryType ns=ns forceNotOptional=true}};
using DecodableArgType = {{zapTypeToDecodableClusterObjectType entryType ns=ns forceNotOptional=true isArgument=true}};
{{else}}
using Type = {{zapTypeToEncodableClusterObjectType type ns=ns forceNotOptional=true}};
using DecodableType = {{zapTypeToDecodableClusterObjectType type ns=ns forceNotOptional=true}};
using DecodableArgType = {{zapTypeToDecodableClusterObjectType type ns=ns forceNotOptional=true isArgument=true}};
{{/if}}
{{#if clusterRef}}
static constexpr ClusterId GetClusterId() { return Clusters::{{asUpperCamelCase parent.name}}::Id; }
{{/if}}
static constexpr AttributeId GetAttributeId() { return Attributes::{{asUpperCamelCase label}}::Id; }
static constexpr bool MustUseTimedWrite() { return {{mustUseTimedWrite}}; }
{{#unless isArray}}
{{#if (isString type)}}
{{#if maxLength}}
static constexpr size_t MaxLength() { return {{maxLength}}; }
{{/if}}
{{/if}}
{{/unless}}
};