Skip to main content

include/gdo@driver_DriverContract.hrl

-record(driver_contract, {
    connect :: fun((gdo@driver:connection_target()) -> {ok,
            gdo@driver:driver_connection_state()} |
        {error, gdo@error:error()}),
    close :: fun((gdo@driver:driver_connection_state()) -> {ok, nil} |
        {error, gdo@error:error()}),
    prepare :: fun((gdo@driver:driver_connection_state(), binary()) -> {ok,
            gdo@driver:driver_statement_state()} |
        {error, gdo@error:error()}),
    exec :: fun((gdo@driver:driver_statement_state(), list(gdo@value:param())) -> {ok,
            gdo@result:execution_result()} |
        {error, gdo@error:error()}),
    query_all :: fun((gdo@driver:driver_statement_state(), list(gdo@value:param())) -> {ok,
            gdo@result:query_result()} |
        {error, gdo@error:error()}),
    'begin' :: fun((gdo@driver:driver_connection_state()) -> {ok,
            gdo@driver:driver_connection_state()} |
        {error, gdo@error:error()}),
    commit :: fun((gdo@driver:driver_connection_state()) -> {ok,
            gdo@driver:driver_connection_state()} |
        {error, gdo@error:error()}),
    rollback :: fun((gdo@driver:driver_connection_state()) -> {ok,
            gdo@driver:driver_connection_state()} |
        {error, gdo@error:error()}),
    last_insert_id :: fun((gdo@driver:driver_connection_state()) -> gleam@option:option(integer()))
}).