- Shiboken documentation
- » Type System Reference

# Using Code Templates

## template

> The `template` node registers a template that can be used to avoid duplicate code when extending the generated code, and it is a child of the typesystem node.

>     <typesystem>
>         <template name="my_template">
>             // the code
>         </template>
>     </typesystem>

> Use the `insert-template` node to insert the template code (identified by the template’s `name` attribute) into the generated code base.

## insert-template

> The `insert-template` node includes the code template identified by the name attribute, and it can be a child of the inject-code, conversion-rule or template nodes.

>     <inject-code class="target" position="beginning">
>         <insert-template name="my_template" />
>     </inject-code>

> Use the `replace` node to modify the template code.

## replace

> The `replace` node allows you to modify template code before inserting it into the generated code, and it can be a child of the insert-template node.

>     <insert-template name="my_template">
>        <replace from="..." to="..." />
>     </insert-template>

> This node will replace the attribute `from` with the value pointed by `to`.