wisespace-io / binance-rs

Rust Library for the Binance API
Other
649 stars 295 forks source link

Error with kindle websocket #47

Closed emmtte closed 4 years ago

emmtte commented 4 years ago

Hi, I follow your exemple code for websocket kindle and have an error

  extern crate binance;

 use binance::api::*;
   use binance::websockets::*;

   fn main() {
   let keep_running = AtomicBool::new(true); // Used to control the event loop
   let kline: String = format!("{}", "ethbtc@kline_1m");
   let mut web_socket: WebSockets = WebSockets::new(|event: WebsocketEvent| {                                                                                                                                           match event {
          WebsocketEvent::Kline(kline_event) => {
              println!(
                  "Symbol: {}, high: {}, low: {}",
                  kline_event.kline.symbol, kline_event.kline.low, kline_event.kline.high
              );
          },
          _ => (),
      };                                                                                                                                                                                                               Ok(())
  });

  web_socket.connect(&kline).unwrap(); // check error
  if let Err(e) = web_socket.event_loop(&keep_running) {
      match e {
          err => {
             println!("Error: {}", err);
          }
      }
  }
  web_socket.disconnect().unwrap();
  }

Error :

error[E0433]: failed to resolve: use of undeclared type or module `AtomicBool`
 --> src/main.rs:7:20
  |
7 | let keep_running = AtomicBool::new(true); // Used to control the event loop
  |                    ^^^^^^^^^^ use of undeclared type or module `AtomicBool`

warning: unused import: `binance::api`
 --> src/main.rs:3:5
  |
3 | use binance::api::*;
  |     ^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: aborting due to previous error; 1 warning emitted

For more information about this error, try `rustc --explain E0433`.
error: could not compile `rsbot`.

To learn more, run the command again with --verbose.
wisespace-io commented 4 years ago

It needs to import AtomicBool, see below

extern crate binance;

use binance::websockets::*;
use std::sync::atomic::{AtomicBool};

fn main() {
   let keep_running = AtomicBool::new(true); // Used to control the event loop
   let kline: String = format!("{}", "ethbtc@kline_1m");
   let mut web_socket: WebSockets = WebSockets::new(|event: WebsocketEvent| {                                                                                                                                           match event {
          WebsocketEvent::Kline(kline_event) => {
              println!(
                  "Symbol: {}, high: {}, low: {}",
                  kline_event.kline.symbol, kline_event.kline.low, kline_event.kline.high
              );
          },
          _ => (),
      };                                                                                                                                                                                                               Ok(())
  });

  web_socket.connect(&kline).unwrap(); // check error
  if let Err(e) = web_socket.event_loop(&keep_running) {
      match e {
          err => {
             println!("Error: {}", err);
          }
      }
  }
  web_socket.disconnect().unwrap();
}

For more examples, see https://github.com/wisespace-io/binance-rs/blob/master/examples/binance_websockets.rs

emmtte commented 4 years ago

Thanks @wisespace-io, work like as expected