Skip to content

returning a Transaction for further usage #1227

Open
@fredski02

Description

@fredski02

I'm trying to start a transaction and return it for later usage but i get lifetime issues because the lifetime of the transaction is tied to the client/connection. Is there a proper way to do this? I've tried wrapping the Transaction in a struct, using Box and tokio Mutex but nothing seemed to help

see below pseudo code.

#[async_trait]
trait myTrait {
  async fn start() -> Transaction {
         let mut client = self.get().await.unwrap(); // Get the client from the pool  
          let mut transaction = client.transaction().await.unwrap(); 
  
         // do some stuff with transaction
  
         transaction
  
  }
}

using the following core libs

tokio = { version = "1.38", features = ["macros", "rt-multi-thread", "signal"] }
tokio-postgres = { version = "0.7", features = ["runtime", "array-impls"] }
tokio-postgres-rustls = "0.13"
bb8 = "0.9"
bb8-postgres = "0.9"
warp = "0.3"
async-trait = "0.1"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions