interface readwrite { use types.{statement, row, error, connection}; /// query is optimized for querying data, and /// implementors can make use of that fact to optimize /// the performance of query execution (e.g., using /// indexes). query: func(c: borrow, q: borrow) -> result, error>; /// exec is for modifying data in the database. exec: func(c: borrow, q: borrow) -> result; }