<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def insert_route(self, path, data, destroy_data_fn):
 """ Inserts a new route into the tree and attaches the data. Returns -1 if the route already exists, otherwise 0. This method takes ownership of the provided data if a destroy_data_fn is provided. """

        return lib.ztrie_insert_route(self._as_parameter_, path, data, destroy_data_fn)