165e4d302SPatrick Williams    /** Get value of ${property.name}
265e4d302SPatrick Williams     *  ${property.description.strip()}
365e4d302SPatrick Williams     */
4*b736e075SPatrick Williams    auto ${property.snake_case}()
565e4d302SPatrick Williams    {
665e4d302SPatrick Williams        return proxy.template get_property<\
7351f8cd5SPatrick 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     */
14*b736e075SPatrick Williams    auto ${property.snake_case}(auto value)
1565e4d302SPatrick Williams    {
1665e4d302SPatrick Williams        return proxy.template set_property<\
1765e4d302SPatrick Williams${property.cppTypeParam(interface.name)}>(
18351f8cd5SPatrick Williams            context(), "${property.name}", std::forward<decltype(value)>(value));
1965e4d302SPatrick Williams    }
205bc767aaSPatrick Williams% endif
21