Соединение с базой в Rust
Работа с файлом начинается с соединения: программа указывает путь, а библиотека готовит канал для запросов. Если файла еще нет, он появится при первом открытии.
Создайте проект Cargo и из его корня выполните команду добавления зависимости:
cargo add rusqlite --features bundled
Флаг bundled включает сборку
движка внутри крейта, отдельную установку
на компьютер не требуют. Версию подберет
сама команда.
Откроем файл app.db и разберем
ответ через сопоставление:
use rusqlite::Connection;
fn main() {
match Connection::open("app.db") {
Ok(_conn) => println!("open"),
Err(e) => println!("{}", e),
}
}
При успехе на экране слово open.
Файл лежит в рабочей папке запуска,
обычно в корне проекта.
Длинную цепочку удобнее вынести в функцию с исходом сбоя библиотеки, а в точке входа только печатать текст ошибки:
use rusqlite::Connection;
fn open_db() -> Result<(), rusqlite::Error> {
let _conn = Connection::open("app.db")?;
Ok(())
}
fn main() {
if let Err(e) = open_db() {
println!("{}", e);
}
}
Откройте файл app.db и выведите
ready только при успехе. При
сбое напечатайте текст ошибки.
Запишите функцию, которая возвращает
исход с типом сбоя крейта и открывает
файл app.db. В main
разберите исход и при успехе выведите
ok.
Скажите, появится ли файл app.db
на диске, если его еще не было, но
открытие прошло успешно.