Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when compiling #6

Closed
FudiHub opened this issue Feb 9, 2021 · 11 comments · May be fixed by #9
Closed

Error when compiling #6

FudiHub opened this issue Feb 9, 2021 · 11 comments · May be fixed by #9

Comments

@FudiHub
Copy link

FudiHub commented Feb 9, 2021

Hi,

I get an error when compiling using maturin build --release:

🔗 Found pyo3 bindings
🐍 Found CPython 3.9 at python3.9
   Compiling openlimits-python v0.1.0 (/my/path/openlimits-python)
warning: unused import: 'tokio::sync::mpsc::UnboundedSender'=======> ] 320/321
 --> src/lib.rs:3:5
  |
3 | use tokio::sync::mpsc::UnboundedSender;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: '#[warn(unused_imports)]' on by default


warning: unused import: 'tokio::sync::Mutex'
 --> src/lib.rs:4:5
  |
4 | use tokio::sync::Mutex;
  |     ^^^^^^^^^^^^^^^^^^


warning: unused import: 'std::sync::Arc'===========================> ] 320/321
 --> src/lib.rs:5:5
  |
5 | use std::sync::Arc;
  |     ^^^^^^^^^^^^^^


warning: unused imports: 'Either', 'select'========================> ] 320/321
  --> src/lib.rs:38:28
   |
38 | use futures_util::future::{select, Either, Future};
   |                            ^^^^^^  ^^^^^^


error[E0308]: mismatched types=====================================> ] 320/321
   --> src/lib.rs:129:54
    |
129 |         let ws_client: OpenLimitsWs<AnyWsExchange> = runtime.block_on(ws_client_future);
    |                        ---------------------------   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct 'OpenLimitsWs', found enum 'std::result::Result'
    |                        |
    |                        expected due to this
    |
    = note: expected struct 'OpenLimitsWs<AnyWsExchange>'
                 found enum 'std::result::Result<OpenLimitsWs<_>, OpenLimitsError>'


error[E0308]: mismatched types=====================================> ] 320/321
   --> src/lib.rs:133:13
    |
133 |             client,
    |             ^^^^^^ expected enum 'AnyExchange', found enum 'std::result::Result'
    |
    = note: expected enum 'AnyExchange'
               found enum 'std::result::Result<_, OpenLimitsError>'


error[E0063]: missing field 'order_status' in initializer of 'GetOrderHistoryRequest'
   --> src/lib.rs:243:19
    |
243 |         let req = GetOrderHistoryRequest {
    |                   ^^^^^^^^^^^^^^^^^^^^^^ missing 'order_status'


warning: unused import: 'tokio::stream::StreamExt'=================> ] 320/321
 --> src/lib.rs:2:5
  |
2 | use tokio::stream::StreamExt;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^


warning: unused import: 'Exchange'=================================> ] 320/321
 --> src/lib.rs:7:65
  |
7 |     exchange::{OpenLimits, ExchangeAccount, ExchangeMarketData, Exchange}, 
  |                                                                 ^^^^^^^^


warning: unused import: 'ExchangeWs'===============================> ] 320/321
 --> src/lib.rs:8:33
  |
8 |     exchange_ws::{OpenLimitsWs, ExchangeWs}, 
  |                                 ^^^^^^^^^^


error: aborting due to 3 previous errors; 7 warnings emitted=======> ] 320/321


Some errors have detailed explanations: E0063, E0308.

For more information about an error, try 'rustc --explain E0063'.

error: could not compile 'openlimits-python'

To learn more, run the command again with --verbose.
💥 maturin failed
  Caused by: Failed to build a native library through cargo
  Caused by: Cargo build finished with "exit code: 101": 'cargo rustc --message-format json --manifest-path Cargo.toml --lib --release -- -C link-arg=-undefined -C link-arg=dynamic_lookup'

I am on Mac OS 11.1.
Version I have installed:

cargo 1.49.0 (d00d64df9 2020-12-05)
rustc 1.49.0 (e1884a8e3 2020-12-29)
maturin 0.9.0

Any advice?

Thanks!

@notdanilo
Copy link
Contributor

@FudiHub oh god! Thanks for reporting it too. We are starting to automatize stuff in OpenLimits. This issue should also have been caught in the CI checks. I will add this in my to-do list for this week.

@Bi0max
Copy link

Bi0max commented Feb 19, 2021

I have also an error during compilation. It happens both on Windows and in Linux rust:latest Docker container.

Dockerfile to recreate:

FROM rust:latest

RUN apt-get update && apt-get install git python3-pip -y --no-install-recommends
RUN pip3 install maturin

# set working directory
WORKDIR /usr/src/app

RUN git clone https://github.com/nash-io/openlimits-python.git
RUN cd openlimits-python && maturin build --release

Error (same in both cases):

$ maturin build --release

🔗 Found pyo3 bindings
🐍 Found CPython 3.9 at C:\Users\Maksim\AppData\Local\Programs\Python\Python39\python.exe, CPython 3.8 at C:\Users\Maksim\Miniconda3\python.exe, CPython 3.7 at C:\Users\Maksim\Miniconda3\envs\condastack\python
   Compiling proc-macro2 v1.0.24
   Compiling syn v1.0.60
   Compiling libc v0.2.86
   Compiling winapi v0.3.9
   Compiling typenum v1.12.0
   Compiling memchr v2.3.4
   Compiling serde_derive v1.0.123
   Compiling serde v1.0.123
   Compiling log v0.4.14
   Compiling itoa v0.4.7
   Compiling once_cell v1.5.2
   Compiling proc-macro-hack v0.5.19
   Compiling ryu v1.0.5
   Compiling getrandom v0.1.16
   Compiling pin-project-lite v0.2.4
   Compiling bytes v1.0.1
   Compiling futures-core v0.3.12
   Compiling ntapi v0.3.6
   Compiling serde_json v1.0.62
   Compiling smallvec v1.6.1
   Compiling subtle v2.4.0
   Compiling slab v0.4.2
   Compiling block-padding v0.2.1
   Compiling proc-macro-nested v0.1.7
   Compiling radium v0.4.1
   Compiling getrandom v0.2.2
   Compiling futures-sink v0.3.12
   Compiling opaque-debug v0.3.0
   Compiling const_fn v0.4.5
   Compiling matches v0.1.8
   Compiling ppv-lite86 v0.2.10
   Compiling pin-utils v0.1.0
   Compiling futures-io v0.3.12
   Compiling wyz v0.2.0
   Compiling fnv v1.0.7
   Compiling funty v1.2.0
   Compiling failure_derive v0.1.8
   Compiling cpuid-bool v0.1.2
   Compiling tinyvec_macros v0.1.0
   Compiling adler v0.2.3
   Compiling winapi-build v0.1.1
   Compiling gimli v0.23.0
   Compiling percent-encoding v2.1.0
   Compiling object v0.23.0
   Compiling native-tls v0.2.7
   Compiling hashbrown v0.9.1
   Compiling httparse v1.3.5
   Compiling void v1.0.2
   Compiling rayon-core v1.9.0
   Compiling rustc-demangle v0.1.18
   Compiling cfg-if v1.0.0
   Compiling const-oid v0.1.0
   Compiling byteorder v1.4.2
   Compiling either v1.6.1
   Compiling ascii v0.9.3
   Compiling zeroize v1.2.0
   Compiling byte-tools v0.3.1
   Compiling unicode-segmentation v1.7.1
   Compiling base64 v0.13.0
   Compiling doc-comment v0.3.3
   Compiling winapi v0.2.8
   Compiling lazy_static v1.4.0
   Compiling try-lock v0.2.3
   Compiling encoding_rs v0.8.28
   Compiling regex-syntax v0.6.22
   Compiling fake-simd v0.1.2
   Compiling cfg-if v0.1.10
   Compiling tower-service v0.3.1
   Compiling opaque-debug v0.2.3
   Compiling httpdate v0.3.2
   Compiling utf-8 v0.7.5
   Compiling inventory v0.1.10
   Compiling unindent v0.1.7
   Compiling keccak v0.1.0
   Compiling iovec v0.1.4
   Compiling hex v0.4.2
   Compiling ipnet v2.3.0
   Compiling pyo3 v0.12.4
   Compiling mime v0.3.16
   Compiling arrayvec v0.5.2
   Compiling dtoa v0.4.7
   Compiling cute v0.3.0
   Compiling vec_box v1.0.0
   Compiling min_max_macros v0.1.1
   Compiling maplit v1.0.2
   Compiling pin-project-lite v0.1.11
   Compiling dotenv v0.15.0
   Compiling bytes v0.5.6
   Compiling generic-array v0.14.4
   Compiling instant v0.1.9
   Compiling num-traits v0.2.14
   Compiling tokio v1.2.0
   Compiling crossbeam-utils v0.8.1
   Compiling miniz_oxide v0.4.3
   Compiling memoffset v0.6.1
   Compiling indexmap v1.6.1
   Compiling num-integer v0.1.44
   Compiling tracing-core v0.1.17
   Compiling rayon v1.5.0
   Compiling num-bigint v0.2.6
   Compiling lock_api v0.4.2
   Compiling futures-task v0.3.12
   Compiling thread_local v1.1.3
   Compiling futures-channel v0.3.12
   Compiling unicode-bidi v0.3.4
   Compiling tinyvec v1.1.1
   Compiling form_urlencoded v1.0.1
   Compiling http v0.2.3
   Compiling input_buffer v0.4.0
   Compiling kernel32-sys v0.2.2
   Compiling ws2_32-sys v0.2.1
   Compiling unreachable v1.0.0
   Compiling block-padding v0.1.5
   Compiling heck v0.3.2
   Compiling sugar v0.2.0
   Compiling addr2line v0.14.1
   Compiling unicode-normalization v0.1.17
   Compiling rand_core v0.5.1
   Compiling quote v1.0.9
   Compiling http-body v0.4.0
   Compiling want v0.3.0
   Compiling num_cpus v1.13.0
   Compiling aho-corasick v0.7.15
   Compiling combine v3.8.1
   Compiling rand_core v0.6.2
   Compiling bitvec v0.18.4
   Compiling paste-impl v0.1.18
   Compiling generic-array v0.12.3
   Compiling rand_chacha v0.2.2
   Compiling backtrace v0.3.56
   Compiling idna v0.2.2
error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:307:25
    |
307 |         check("load", len, M::BITS);
    |                               ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
307 |         check("load", len, BitMemory::BITS);
    |                            ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
307 |         check("load", len, IsNumber::BITS);
    |                            ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:341:12
    |
341 |                     if M::BITS > T::Mem::BITS {
    |                           ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
341 |                     if BitMemory::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
341 |                     if IsNumber::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^


   Compiling crossbeam-epoch v0.9.1
error[E0308]: mismatched types
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:341:19
    |
304 |     fn load_le<M>(&self) -> M
    |                - this type parameter
...
341 |                     if M::BITS > T::Mem::BITS {
    |                                  ^^^^^^^^^^^^ expected type parameter `M`, found `u8`
    |
    = note: expected type parameter `M`
                         found type `u8`


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:362:25
    |
362 |         check("load", len, M::BITS);
    |                               ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
362 |         check("load", len, BitMemory::BITS);
    |                            ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
362 |         check("load", len, IsNumber::BITS);
    |                            ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:377:12
    |
377 |                     if M::BITS > T::Mem::BITS {
    |                           ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
377 |                     if BitMemory::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
377 |                     if IsNumber::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^


error[E0308]: mismatched types
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:377:19
    |
359 |     fn load_be<M>(&self) -> M
    |                - this type parameter
...
377 |                     if M::BITS > T::Mem::BITS {
    |                                  ^^^^^^^^^^^^ expected type parameter `M`, found `u8`
    |
    = note: expected type parameter `M`
                         found type `u8`


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:397:26
    |
397 |         check("store", len, M::BITS);
    |                                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
397 |         check("store", len, BitMemory::BITS);
    |                             ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
397 |         check("store", len, IsNumber::BITS);
    |                             ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:412:12
    |
412 |                     if M::BITS > T::Mem::BITS {
    |                           ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
412 |                     if BitMemory::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
412 |                     if IsNumber::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^


error[E0308]: mismatched types
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:412:19
    |
394 |     fn store_le<M>(&mut self, mut value: M)
    |                 - this type parameter
...
412 |                     if M::BITS > T::Mem::BITS {
    |                                  ^^^^^^^^^^^^ expected type parameter `M`, found `u8`
    |
    = note: expected type parameter `M`
                         found type `u8`


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:428:26
    |
428 |         check("store", len, M::BITS);
    |                                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
428 |         check("store", len, BitMemory::BITS);
    |                             ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
428 |         check("store", len, IsNumber::BITS);
    |                             ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:442:12
    |
442 |                     if M::BITS > T::Mem::BITS {
    |                           ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
442 |                     if BitMemory::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
442 |                     if IsNumber::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^


error[E0308]: mismatched types
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:442:19
    |
425 |     fn store_be<M>(&mut self, mut value: M)
    |                 - this type parameter
...
442 |                     if M::BITS > T::Mem::BITS {
    |                                  ^^^^^^^^^^^^ expected type parameter `M`, found `u8`
    |
    = note: expected type parameter `M`
                         found type `u8`


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:467:25
    |
467 |         check("load", len, M::BITS);
    |                               ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
467 |         check("load", len, BitMemory::BITS);
    |                            ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
467 |         check("load", len, IsNumber::BITS);
    |                            ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:487:12
    |
487 |                     if M::BITS > T::Mem::BITS {
    |                           ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
487 |                     if BitMemory::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
487 |                     if IsNumber::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^


error[E0308]: mismatched types
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:487:19
    |
464 |     fn load_le<M>(&self) -> M
    |                - this type parameter
...
487 |                     if M::BITS > T::Mem::BITS {
    |                                  ^^^^^^^^^^^^ expected type parameter `M`, found `u8`
    |
    = note: expected type parameter `M`
                         found type `u8`


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:507:25
    |
507 |         check("load", len, M::BITS);
    |                               ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
507 |         check("load", len, BitMemory::BITS);
    |                            ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
507 |         check("load", len, IsNumber::BITS);
    |                            ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:523:12
    |
523 |                     if M::BITS > T::Mem::BITS {
    |                           ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
523 |                     if BitMemory::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
523 |                     if IsNumber::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^


error[E0308]: mismatched types
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:523:19
    |
504 |     fn load_be<M>(&self) -> M
    |                - this type parameter
...
523 |                     if M::BITS > T::Mem::BITS {
    |                                  ^^^^^^^^^^^^ expected type parameter `M`, found `u8`
    |
    = note: expected type parameter `M`
                         found type `u8`


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:548:26
    |
548 |         check("store", len, M::BITS);
    |                                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
548 |         check("store", len, BitMemory::BITS);
    |                             ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
548 |         check("store", len, IsNumber::BITS);
    |                             ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:565:12
    |
565 |                     if M::BITS > T::Mem::BITS {
    |                           ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
565 |                     if BitMemory::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
565 |                     if IsNumber::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^


error[E0308]: mismatched types
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:565:19
    |
545 |     fn store_le<M>(&mut self, mut value: M)
    |                 - this type parameter
...
565 |                     if M::BITS > T::Mem::BITS {
    |                                  ^^^^^^^^^^^^ expected type parameter `M`, found `u8`
    |
    = note: expected type parameter `M`
                         found type `u8`


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:586:26
    |
586 |         check("store", len, M::BITS);
    |                                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
586 |         check("store", len, BitMemory::BITS);
    |                             ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
586 |         check("store", len, IsNumber::BITS);
    |                             ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:608:12
    |
608 |                     if M::BITS > T::Mem::BITS {
    |                           ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
608 |                     if BitMemory::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
608 |                     if IsNumber::BITS > T::Mem::BITS {
    |                        ^^^^^^^^^^^^^^


error[E0308]: mismatched types
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\field.rs:608:19
    |
583 |     fn store_be<M>(&mut self, mut value: M)
    |                 - this type parameter
...
608 |                     if M::BITS > T::Mem::BITS {
    |                                  ^^^^^^^^^^^^ expected type parameter `M`, found `u8`
    |
    = note: expected type parameter `M`
                         found type `u8`


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:466:45
    |
466 |     pub(crate) const END: Self = make!(tail M::BITS);
    |                                                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
466 |     pub(crate) const END: Self = make!(tail BitMemory::BITS);
    |                                             ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
466 |     pub(crate) const END: Self = make!(tail IsNumber::BITS);
    |                                             ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:145:16
    |
145 |         if idx >= M::BITS {
    |                      ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
145 |         if idx >= BitMemory::BITS {
    |                   ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
145 |         if idx >= IsNumber::BITS {
    |                   ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:169:13
    |
169 |             idx < M::BITS,
    |                      ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
169 |             idx < BitMemory::BITS,
    |                   ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
169 |             idx < IsNumber::BITS,
    |                   ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:172:7
    |
172 |             M::BITS
    |                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
172 |             BitMemory::BITS
    |
help: disambiguate the associated constant for candidate #2
    |
172 |             IsNumber::BITS
    |


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:190:42
    |
190 |         (make!(idx next & M::MASK), next == M::BITS)
    |                                                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
190 |         (make!(idx next & M::MASK), next == BitMemory::BITS)
    |                                             ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
190 |         (make!(idx next & M::MASK), next == IsNumber::BITS)
    |                                             ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:325:16
    |
325 |             if (0 .. M::BITS as isize).contains(&far) {
    |                         ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
325 |             if (0 .. BitMemory::BITS as isize).contains(&far) {
    |                      ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
325 |             if (0 .. IsNumber::BITS as isize).contains(&far) {
    |                      ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:488:14
    |
488 |             end <= M::BITS,
    |                       ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
488 |             end <= BitMemory::BITS,
    |                    ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
488 |             end <= IsNumber::BITS,
    |                    ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:491:7
    |
491 |             M::BITS
    |                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
491 |             BitMemory::BITS
    |
help: disambiguate the associated constant for candidate #2
    |
491 |             IsNumber::BITS
    |


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:546:26
    |
546 |         let bits_in_head = (M::BITS - head) as usize;
    |                                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
546 |         let bits_in_head = (BitMemory::BITS - head) as usize;
    |                             ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
546 |         let bits_in_head = (IsNumber::BITS - head) as usize;
    |                             ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:640:16
    |
640 |         if pos >= M::BITS {
    |                      ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
640 |         if pos >= BitMemory::BITS {
    |                   ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
640 |         if pos >= IsNumber::BITS {
    |                   ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:667:13
    |
667 |             pos < M::BITS,
    |                      ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
667 |             pos < BitMemory::BITS,
    |                   ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
667 |             pos < IsNumber::BITS,
    |                   ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:670:7
    |
670 |             M::BITS
    |                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
670 |             BitMemory::BITS
    |
help: disambiguate the associated constant for candidate #2
    |
670 |             IsNumber::BITS
    |


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:805:7
    |
805 |             M::BITS as usize
    |                ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
805 |             BitMemory::BITS as usize
    |             ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
805 |             IsNumber::BITS as usize
    |             ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:850:40
    |
850 |         write!(fmt, "{:0>1$b}", self.sel, M::BITS as usize)
    |                                              ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
850 |         write!(fmt, "{:0>1$b}", self.sel, BitMemory::BITS as usize)
    |                                           ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
850 |         write!(fmt, "{:0>1$b}", self.sel, IsNumber::BITS as usize)
    |                                           ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\index.rs:977:41
    |
977 |         write!(fmt, "{:0>1$b}", self.mask, M::BITS as usize)
    |                                               ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
977 |         write!(fmt, "{:0>1$b}", self.mask, BitMemory::BITS as usize)
    |                                            ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
977 |         write!(fmt, "{:0>1$b}", self.mask, IsNumber::BITS as usize)
    |                                            ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:28:25
    |
28  |     const INDX: u8 = Self::BITS.trailing_zeros() as u8;
    |                            ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
28  |     const INDX: u8 = BitMemory::BITS.trailing_zeros() as u8;
    |                      ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
28  |     const INDX: u8 = IsNumber::BITS.trailing_zeros() as u8;
    |                      ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:30:25
    |
30  |     const MASK: u8 = Self::BITS - 1;
    |                            ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
30  |     const MASK: u8 = BitMemory::BITS - 1;
    |                      ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
30  |     const MASK: u8 = IsNumber::BITS - 1;
    |                      ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\order.rs:278:15
    |
278 |         if ct == M::BITS {
    |                     ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
278 |         if ct == BitMemory::BITS {
    |                  ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
278 |         if ct == IsNumber::BITS {
    |                  ^^^^^^^^^^^^^^


error[E0034]: multiple applicable items in scope
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\order.rs:318:15
    |
318 |         if ct == M::BITS {
    |                     ^^^^ multiple `BITS` found
    |
note: candidate #1 is defined in the trait `BitMemory`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.18.4\src\mem.rs:26:2
    |
26  |     const BITS: u8 = mem::size_of::<Self>() as u8 * 8;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in the trait `IsNumber`
   --> C:\Users\Maksim\.cargo\registry\src\github.com-1ecc6299db9ec823\funty-1.2.0\src\lib.rs:144:2
    |
144 |     const BITS: u32;
    |     ^^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #1
    |
318 |         if ct == BitMemory::BITS {
    |                  ^^^^^^^^^^^^^^^
help: disambiguate the associated constant for candidate #2
    |
318 |         if ct == IsNumber::BITS {
    |                  ^^^^^^^^^^^^^^


   Compiling crossbeam-channel v0.5.0
error: aborting due to 43 previous errors


Some errors have detailed explanations: E0034, E0308.

For more information about an error, try `rustc --explain E0034`.

error: could not compile `bitvec`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed
💥 maturin failed
  Caused by: Failed to build a native library through cargo
  Caused by: Cargo build finished with "exit code: 101": `cargo rustc --message-format json --manifest-path Cargo.toml --release --lib --`

@notdanilo
Copy link
Contributor

@FudiHub @Bi0max openlimits-python was just updated to the latest openlimits core version on master. You should be able to build and use it now.

@notdanilo notdanilo linked a pull request Feb 25, 2021 that will close this issue
@Bi0max
Copy link

Bi0max commented Feb 25, 2021

@FudiHub @Bi0max openlimits-python was just updated to the latest openlimits core version on master. You should be able to build and use it now.

Thank you, @notdanilo, now everything compiles nicely 👍

@Bi0max
Copy link

Bi0max commented Feb 25, 2021

@notdanilo, I have installed the wheel, but it gives an error, when importing

Error
Traceback (most recent call last):
  File "C:\Users\Maksim\Miniconda3\envs\arb32\lib\unittest\case.py", line 60, in testPartExecutor
    yield
  File "C:\Users\Maksim\Miniconda3\envs\arb32\lib\unittest\case.py", line 676, in run
    self._callTestMethod(testMethod)
  File "C:\Users\Maksim\Miniconda3\envs\arb32\lib\unittest\case.py", line 633, in _callTestMethod
    method()
  File "C:\Users\Maksim\Miniconda3\envs\arb32\lib\unittest\loader.py", line 34, in testFailure
    raise self._exception
ImportError: Failed to import test module: test_nash
Traceback (most recent call last):
  File "C:\Users\Maksim\Miniconda3\envs\arb32\lib\unittest\loader.py", line 154, in loadTestsFromName
    module = __import__(module_name)
  File "D:\projects\arbitrage_trader\arbitrage_trader\tests\exchange\test_nash.py", line 4, in <module>
    from openlimits_python import ExchangeClient
ImportError: DLL load failed while importing openlimits_python: The specified module could not be found.

@notdanilo
Copy link
Contributor

@Bi0max let me check it.

@Bi0max
Copy link

Bi0max commented Mar 1, 2021

Hi @notdanilo, are there any news on the issue?

@notdanilo
Copy link
Contributor

@Bi0max sorry, I didn't have availability to check it yet. I will do that at some moment during this week.

In the meantime I recommend you to use older commits as we can suppose they are working.

@Bi0max
Copy link

Bi0max commented Mar 4, 2021

On Linux I still cannot get to wheels actually. For rust:latest image I encounter the following error:

#9 182.7    Compiling openlimits v0.1.10
#9 216.6    Compiling openlimits-python v0.1.0 (/usr/src/app/openlimits-python)
#9 222.8     Finished release [optimized] target(s) in 3m 32s
#9 222.9 💥 maturin failed
#9 222.9   Caused by: Failed to ensure manylinux2010 compliance
#9 222.9   Caused by: Your library is not manylinux compliant because it links the following forbidden libraries: ["libgmp.so.10", "libssl.so.1.1", "libcrypto.so.1.1"]

@Bi0max
Copy link

Bi0max commented Mar 4, 2021

On Linux I still cannot get to wheels actually. For rust:latest image I encounter the following error:

#9 182.7    Compiling openlimits v0.1.10
#9 216.6    Compiling openlimits-python v0.1.0 (/usr/src/app/openlimits-python)
#9 222.8     Finished release [optimized] target(s) in 3m 32s
#9 222.9 💥 maturin failed
#9 222.9   Caused by: Failed to ensure manylinux2010 compliance
#9 222.9   Caused by: Your library is not manylinux compliant because it links the following forbidden libraries: ["libgmp.so.10", "libssl.so.1.1", "libcrypto.so.1.1"]

This one was caused by maturin actually. Maybe it makes sense to add it to the README. When running on linux, use command maturin build --release --manylinux off

@FudiHub
Copy link
Author

FudiHub commented Mar 13, 2021

I can confirm that I where able to build now on MacOS

@FudiHub FudiHub closed this as completed Mar 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants