fernandobatels / rsfbclient

Rust Firebird Client
MIT License
74 stars 10 forks source link

Pool r2d2_firebird #156

Closed timanagement closed 1 month ago

timanagement commented 1 month ago

Estou testando uma implementação de Pool com r2d2_firebird v0.24.0, como deixo abaixo. Entretanto, há um problema na hora de compilar o projeto, pois surgem erros apontando para a dependência de rsfbclient v0.23.2.

Há algo que eu posso estar deixando passar despercebido?

use crate::commons::config;
use r2d2::Pool;
use r2d2_firebird::FirebirdConnectionManager;
use std::env;

pub fn start_connection() -> Pool<FirebirdConnectionManager> {
    let dbparams = config::Appconfig::new();
    let fdb_user: String = env::var("FBDBUSER").unwrap_or_else(|_| "SYSDBA".to_string());
    let fdb_pass: String = env::var("FBDBPASS").unwrap_or_else(|_| "masterkey".to_string());

    let builder = {
        let mut builder = rsfbclient::builder_pure_rust();

        builder
            .host(dbparams.server)
            .db_name(dbparams.dbpath)
            .user(fdb_user)
            .pass(fdb_pass);

        builder
    };

    // Criando o gerenciador de conexões
    let manager = FirebirdConnectionManager::new(builder);

    // Criando o pool de conexões
    let pool = Pool::builder()
        .max_size(15) // Configurando o tamanho máximo do pool
        .build(manager)
        .expect("Falha ao criar o pool de conexões");

    pool
}

Abaixo estão os erros que ocorrem:

error[E0392]: lifetime parameter 'c is never used --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:20:30

pub struct SimpleTransaction<'c> { | ^^ unused lifetime parameter

error[E0392]: lifetime parameter 'c is never used --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:24:31

enum TypeTransactionContainer<'c> { | ^^ unused lifetime parameter

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\connection\simple.rs:128:15

match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\connection\simple.rs:146:15

146 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\connection\simple.rs:158:15

158 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\connection\simple.rs:170:15 | 170 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\connection\simple.rs:182:15

182 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\connection\simple.rs:200:15

200 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\connection\simple.rs:215:15

215 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\connection\simple.rs:236:15

236 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeConnectionContainer is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:105:15

105 | match &mut conn.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeTransactionContainer<'_> is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:129:15

129 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeTransactionContainer<'_> is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:141:15

141 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeTransactionContainer<'_> is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:165:15

165 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeTransactionContainer<'_> is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:183:15

183 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeTransactionContainer<'_> is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:198:15

198 | match &mut self.inner {

error[E0004]: non-exhaustive patterns: type &mut TypeTransactionContainer<'_> is non-empty --> ***.cargo\registry\src\index.crates.io-6f17d22bba15001f\rsfbclient-0.23.2\src\transaction\simple.rs:219:15

219 | match &mut self.inner {

Espero que as informações ajudem a elucidar o caso.
Abraços.

fernandobatels commented 1 month ago

Como está o seu Cargo.toml?

timanagement commented 1 month ago

Como está o seu Cargo.toml?

[package] name = "nome_do_projeto" version = "0.1.0" edition = "2021"

[dependencies] serde = { version = "1.0.208", features = ["derive"] } serde_json = "1.0" chrono-tz = "0.9.0" rsfbclient = { version = "0.24.0", features = ["pure_rust"] } rsfbclient-core = "0.24.0" rsfbclient-rust = "0.24.0" r2d2_firebird = "0.24.0" r2d2 = "0.8.10" chrono = { version = "0.4.38", features = ["serde"] }

fernandobatels commented 1 month ago

A versão r2d2_firebird = "0.24.0" está uma falha na publicação. Atualize para r2d2_firebird = "0.24.1"

timanagement commented 1 month ago

A versão r2d2_firebird = "0.24.0" está uma falha na publicação. Atualize para r2d2_firebird = "0.24.1"

Sem problemas agora. Obrigado Fernando.