func()

in qldbdriver/session.go [38:55]


func (session *session) execute(ctx context.Context, fn func(txn Transaction) (interface{}, error)) (interface{}, *txnError) {
	txn, err := session.startTransaction(ctx)
	if err != nil {
		return nil, session.wrapError(ctx, err, "")
	}

	result, err := fn(&transactionExecutor{ctx, txn})
	if err != nil {
		return nil, session.wrapError(ctx, err, *txn.id)
	}

	err = txn.commit(ctx)
	if err != nil {
		return nil, session.wrapError(ctx, err, *txn.id)
	}

	return result, nil
}