Skip to content
This repository was archived by the owner on Apr 25, 2023. It is now read-only.
This repository was archived by the owner on Apr 25, 2023. It is now read-only.

Compilation error with Tiberius and workspace setup #392

@zifeo

Description

@zifeo

I am getting a compilation error with Tiberius when using quaint in a workspace. Outside workspace, it works well without issue. The fix might be obvious, but I am having a bad time to isolate correctly the error.

   Compiling tiberius v0.9.5
error[E0428]: the name `create_tls_stream` is defined multiple times
  --> /Users/USER/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.9.5/src/client/tls_stream.rs:39:1
   |
31 | / pub(crate) async fn create_tls_stream<S: AsyncRead + AsyncWrite + Unpin + Send>(
32 | |     config: &Config,
33 | |     stream: S,
34 | | ) -> crate::Result<TlsStream<S>> {
35 | |     native_tls_stream::create_tls_stream(config, stream).await
36 | | }
   | |_- previous definition of the value `create_tls_stream` here
...
39 | / pub(crate) async fn create_tls_stream<S: AsyncRead + AsyncWrite + Unpin + Send>(
40 | |     config: &Config,
41 | |     stream: S,
42 | | ) -> crate::Result<TlsStream<S>> {
43 | |     opentls_tls_stream::create_tls_stream(config, stream).await
44 | | }
   | |_^ `create_tls_stream` redefined here
   |
   = note: `create_tls_stream` must be defined only once in the value namespace of this module

error[E0252]: the name `TlsStream` is defined multiple times
  --> /Users/USER/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.9.5/src/client/tls_stream.rs:20:16
   |
14 | pub(crate) use native_tls_stream::TlsStream;
   |                ---------------------------- previous import of the type `TlsStream` here
...
20 | pub(crate) use opentls_tls_stream::TlsStream;
   |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `TlsStream` reimported here
   |
   = note: `TlsStream` must be defined only once in the type namespace of this module
help: you can use `as` to change the binding name of the import
   |
20 | pub(crate) use opentls_tls_stream::TlsStream as OtherTlsStream;
   |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

error[E0308]: mismatched types
  --> /Users/USER/.cargo/registry/src/github.com-1ecc6299db9ec823/tiberius-0.9.5/src/client/tls_stream.rs:43:5
   |
43 |     opentls_tls_stream::create_tls_stream(config, stream).await
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `async_native_tls::TlsStream`, found struct `opentls::async_io::TlsStream`
   |
   = note: expected enum `std::result::Result<async_native_tls::TlsStream<S>, _>`
              found enum `std::result::Result<opentls::async_io::TlsStream<S>, _>`

Can be reproduced with:

# test/Cargo.toml
[package]
name = "test"
version = "0.1.0"
edition = "2021"

[dependencies.quaint]
git = "https://github.com/prisma/quaint"
features = [
    "postgresql",
    "mysql",
    "mssql",
    "sqlite",
    "json",
    "uuid",
    "chrono",
    "bigdecimal"
]
// test/src/main.rs
fn main() {
    println!("Hello, world!");
}
# Cargo.toml
[workspace]
members = [
    "test"
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions