Turso.Native (ex_turso v0.5.0)

Copy Markdown View Source

Rustler NIF declarations for the turso crate.

Every function here is replaced at load time by its native implementation in native/ex_turso/src/lib.rs. The bodies below only exist so the module compiles and raises a clear error if the NIF fails to load.

All NIFs are scheduled on dirty IO threads and return {:error, {code, reason}} on failure, where code is an error-class atom (see Turso.Error.code/0) and reason is a string.

Summary

Types

Error tuple returned by every NIF: an error-class atom plus a message.

Functions

Flush and release a connection. Returns :ok.

Release a local database handle. Returns :ok.

Release a synced database handle. Returns :ok.

Open a connection against a database handle.

Open a connection against a synced database.

Execute a statement, returning the number of affected rows.

Open (or create) a local database file. Returns {:ok, db} or {:error, {code, reason}}.

Open (or create) a local database synced with a remote database.

Run a query, returning rows as a list of maps keyed by column name.

Run a query, returning ordered column names and ordered row values.

Run bidirectional sync.

Types

nif_error()

@type nif_error() :: {Turso.Error.code(), String.t()}

Error tuple returned by every NIF: an error-class atom plus a message.

Functions

close(conn)

@spec close(reference()) :: :ok

Flush and release a connection. Returns :ok.

close_db(db)

@spec close_db(reference()) :: :ok

Release a local database handle. Returns :ok.

close_sync_db(db)

@spec close_sync_db(reference()) :: :ok

Release a synced database handle. Returns :ok.

connect(db)

@spec connect(reference()) :: {:ok, reference()} | {:error, nif_error()}

Open a connection against a database handle.

connect_sync(db)

@spec connect_sync(reference()) :: {:ok, reference()} | {:error, nif_error()}

Open a connection against a synced database.

execute(conn, sql, params)

@spec execute(reference(), String.t(), list()) ::
  {:ok, non_neg_integer()} | {:error, nif_error()}

Execute a statement, returning the number of affected rows.

open(path)

@spec open(String.t()) :: {:ok, reference()} | {:error, nif_error()}

Open (or create) a local database file. Returns {:ok, db} or {:error, {code, reason}}.

open_sync(path, remote_url, auth_token)

@spec open_sync(String.t(), String.t(), String.t()) ::
  {:ok, reference()} | {:error, nif_error()}

Open (or create) a local database synced with a remote database.

query(conn, sql, params)

@spec query(reference(), String.t(), list()) :: {:ok, [map()]} | {:error, nif_error()}

Run a query, returning rows as a list of maps keyed by column name.

query_rows(conn, sql, params)

@spec query_rows(reference(), String.t(), list()) ::
  {:ok, {[String.t()], [[term()]]}} | {:error, nif_error()}

Run a query, returning ordered column names and ordered row values.

sync(db)

@spec sync(reference()) :: :ok | {:error, nif_error()}

Run bidirectional sync.