本文介紹了鐵銹動(dòng)態(tài)特性變量與不同的通用類型新?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我對(duì)鐵銹還是個(gè)新手。正在嘗試使用DIESEL-RS創(chuàng)建數(shù)據(jù)庫(kù)連接。
以下是我的部分代碼:
use diesel::Connecction;
use diesel::mysql::MysqlConnection;
use diesel::sqlite::SqliteConnection;
let engine = "mysql";
let mysql_url = "mysql://username:password@localhost:3306/test";
let sqlite_url = "sqlite://sqlite.db";
let connection : Box<dyn Connection> = if engine == "mysql" {
Box::new(MysqlConnection::establish(mysql_url).unwrap())
} else {
Box::new(SqliteConnection::establish(sqlite_url).unwrap())
}
以下是編譯器錯(cuò)誤:
error[E0191]: the value of the associated types `Backend` (from trait `Connection`), `TransactionManager` (from trait `Connection`) must be specified
--> src/quant/common/persistence/database.rs:11:25
|
11 | connection: Box<dyn Connection>,
| ^^^^^^^^^^ help: specify the associated types: `Connection<Backend = Type, TransactionManager = Type>`
當(dāng)程序使用不同的參數(shù)啟動(dòng)時(shí),是否可以創(chuàng)建不同的連接?
推薦答案
不支持此用例。See this issue。如果您設(shè)法使用Connection實(shí)現(xiàn)這一點(diǎn),您將不得不包裝事務(wù)和查詢,然后很可能包裝一些生成的table!
類型,最后陷入困境。
這篇關(guān)于鐵銹動(dòng)態(tài)特性變量與不同的通用類型新?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,