Да, плагин tauri-plugin-sql может быть использован в основном коде на языке Rust. Он предоставляет API для выполнения SQL-запросов в SQLite и может быть использован как в JavaScript, так и в коде Rust.
Для использования плагина в коде Rust вам нужно создать свойство с типом `tauri::WebviewManager`, которое будет использовано для взаимодействия с JavaScript, и затем вызывать методы плагина через это свойство. Например, вы можете создать структуру `DbInstances` с полем `Mutex<DbConnection>`, которое будет использоваться для подключения к базе данных:
```rust
use std::sync::Mutex;
use tauri::WebviewManager;
struct DbInstances {
connection: Mutex<DbConnection>,
}
impl DbInstances {
fn new() -> Self {
// инициализация подключения к базе данных
}
fn execute_sql_query(&self, query: &str) -> Result<(), String> {
// выполнение SQL-запроса через tauri-plugin-sql
let result = tauri::execute_promise(
&self.connection,
"sql",
"executeSql",
&[tauri::plugin::SqlArg::String(query.to_owned())],
);
// обработка результата
if let Ok(response) = result {
if let Some(error) = response.error {
return Err(error.to_string());
}
}
Ok(())
}
}
```
Затем вы можете использовать `DbInstances` в основной функции `main.rs` и вызывать его методы для работы с базой данных.
Вот пример простейшей реализации подключения к SQLite с использованием плагина `tauri-plugin-sql`:
```rust
fn main() {
tauri::Builder::default()
.setup(|app| {
let db = DbInstances::new();
app.data(db)
})
.invoke_handler(tauri::generate_handler![/* ... */])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
```
К сожалению, у меня нет личного опыта подключения SQLite к Tauri, но описанный выше подход должен работать. Убедитесь, что у вас установлен и настроен плагин `tauri-plugin-sql` в вашем проекте, и проверьте документацию Tauri и плагина для получения дополнительной информации по использованию и настройке.