165e4d302SPatrick Williams    /** Get value of ${property.name}
265e4d302SPatrick Williams     *  ${property.description.strip()}
365e4d302SPatrick Williams     */
465e4d302SPatrick Williams    auto ${property.camelCase}()
565e4d302SPatrick Williams    {
665e4d302SPatrick Williams        return proxy.template get_property<\
7*351f8cd5SPatrick Williams${property.cppTypeParam(interface.name)}>(context(), "${property.name}");
865e4d302SPatrick Williams    }
965e4d302SPatrick Williams
105bc767aaSPatrick Williams% if 'const' not in property.flags and 'readonly' not in property.flags:
1165e4d302SPatrick Williams    /** Set value of ${property.name}
1265e4d302SPatrick Williams     *  ${property.description.strip()}
1365e4d302SPatrick Williams     */
1465e4d302SPatrick Williams    auto ${property.camelCase}(auto value)
1565e4d302SPatrick Williams    {
1665e4d302SPatrick Williams        return proxy.template set_property<\
1765e4d302SPatrick Williams${property.cppTypeParam(interface.name)}>(
18*351f8cd5SPatrick Williams            context(), "${property.name}", std::forward<decltype(value)>(value));
1965e4d302SPatrick Williams    }
205bc767aaSPatrick Williams% endif
21