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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions