Kline summary
opened this issue · comments
the trait bound binance::model::KlineSummaries: serde::Deserializer<'_>
is not satisfied
the trait serde::Deserializer<'_>
is not implemented for binance::model::KlineSummaries
note: required by serde::Deserialize::deserialize
rustc(E0277)
main.rs(255, 58): the trait serde::Deserializer<'_>
is not implemented for binance::model::KlineSummaries
any can help me please?
@AnsterDev Is not enough just to add the Serialize, Deserialize macros?
#[derive(Debug, Serialize, Deserialize, Clone)]
pub enum KlineSummaries {
AllKlineSummaries(Vec<KlineSummary>),
}
@wisespace-io I have done the placing of the macros, but it appears when I modify the repository in git, the changes are not reflected in main.rs, it is as if it were the original repository, and it was blocked from changes, do you know how to solve it?
@AnsterDev Not sure what's going on in your side. Anyway, I added the macros and did not get any error. Please check the latest release 0.13.3
the macros already appear in the new update, but this appears:
match market.get_klines(symbol, interval, limit, None, None){
Ok(answer) => {
let deserialized = binance::model::KlineSummaries::deserialize(answer);
println!("{:#?}", deserialized);
}
Err(e) => println!("Error: {:?}", e),
}
------------------------------------------------------------------------
the trait bound `binance::model::KlineSummaries: serde::Deserializer<'_>` is not satisfied
the trait `serde::Deserializer<'_>` is not implemented for `binance::model::KlineSummaries`
note: required by `serde::Deserialize::deserialize`rustc(E0277)
main.rs(285, 77): the trait `serde::Deserializer<'_>` is not implemented for `binance::model::KlineSummaries`
@wisespace-io am I doing the deserialization wrong?
@AnsterDev There is a misunderstand here. You do not need to deserializer the answer, because you already get a KlineSummary, it is not a string, it is an object. I updated the example.
// last 10 5min klines (candlesticks) for a symbol:
match market.get_klines("BNBETH", "5m", 10, None, None) {
Ok(klines) => {
match klines {
binance::model::KlineSummaries::AllKlineSummaries(klines) => {
let kline: KlineSummary = klines[0].clone(); // You need to iterate over the klines
println!(
"Open: {}, High: {}, Low: {}",
kline.open, kline.high, kline.low
)
}
}
},
Err(e) => println!("Error: {}", e),
}