Conexão e Ping
Nesta página
Toda interação com o banco começa em Database.open(url), que retorna um
Result<Database, DbError>. Use .unwrap() para obter o handle (e falhar
explicitamente em caso de erro), ou match / ? para tratar o erro com
elegância. Em caso de falha, o DbError carrega um kind
(DbErrorKind::ConnectionFailed, …::QueryFailed, …), um message e o nome
do driver.
defer db.close() garante que a conexão seja liberada ao final do escopo,
independentemente de erros.
Abre SQLite em memória, chama db.ping() para confirmar que a conexão está ativa
e imprime o driver reconhecido.
// Feature: Database — open a connection and ping
// Syntax: `Database.open("sqlite://:memory:").unwrap()` returns a handle.
// When to use: smoke test before using the connection; CI healthcheck.
use std::database::Database
let db = Database.open("sqlite://:memory:").unwrap()
defer db.close()
let ok = db.ping().unwrap()
print("ping: {ok}")
// expected: ping: true
print("driver: {db}")
// expected: driver: Database(sqlite)
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Para Postgres ou MySQL basta trocar a URL:
Database.open("postgres://usuario:senha@host/banco")
Database.open("mysql://usuario:senha@host/banco")
Desafio
Tente passar uma URL inválida (ex.: "nope://invalid") e trate-a com match,
imprimindo e.kind e e.message. Qual DbErrorKind você obtém?
Veja também