Size: a a a

Rust — русскоговорящее сообществo

2020 August 27

Э

Эрик in Rust — русскоговорящее сообществo
Андрей Казанцев
#[cfg(any(features))] не работает
[features]
any = ["a", "b"]


в Cargo.toml
источник

Э

Эрик in Rust — русскоговорящее сообществo
Хотя лучше назвать full, а не any.
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Так я все фичи убрал в отдельный модуль
источник

Э

Эрик in Rust — русскоговорящее сообществo
Хотя вру, на это не повесить.
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
И хочу чтобы он подключался только если есть хотябы одна
источник

Э

Эрик in Rust — русскоговорящее сообществo
Короче, нет такого, чего ты хочешь.
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
А в нём там уже для каждой фичи своё включение
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
А условная компиляция это часть компилятора?
источник

VB

Vlad Beskrovnyy in Rust — русскоговорящее сообществo
Андрей Казанцев
Но тогда надо все перечислить
Так буквально так все и делают. С огромными нечитаемыми #[cfg] на три колометра
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
А нету предложения это упростить?
источник

VB

Vlad Beskrovnyy in Rust — русскоговорящее сообществo
Андрей Казанцев
А условная компиляция это часть компилятора?
да-да, rustc сам это делает
источник

VB

Vlad Beskrovnyy in Rust — русскоговорящее сообществo
Андрей Казанцев
А нету предложения это упростить?
не в курсе
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
error[E0271]: type mismatch resolving `<S as match_engine::strategies::MatchStrategy>::OrderBook == order_book::FastOrderBook`
  --> src\order_book\mod.rs:269:5
   |
269 | /     fn get_possible_matches<S, T>(&self, terms: T) -> Result<S::Matches, S::MatchErr>
270 | |         where S: MatchStrategy<OrderBook=FastOrderBook>,
271 | |               T: Into<S::MatchTerms>,
272 | |     {
273 | |         S::match_strategy(self, terms.into())
274 | |     }
   | |_____^ expected associated type, found struct `order_book::FastOrderBook`
   |
   = note: expected associated type `<S as match_engine::strategies::MatchStrategy>::OrderBook`
                       found struct `order_book::FastOrderBook`
   = note: the requirement `<S as match_engine::strategies::MatchStrategy>::OrderBook == order_book::FastOrderBook` appears on the impl method but not on the corresponding trait method
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Как ему конкретизировать что OrderBook это Self?
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Вроде добавил bind
источник

V

Vladimir in Rust — русскоговорящее сообществo
Андрей Казанцев
Вроде добавил bind
код в студию
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
impl OrderBookTrait for FastOrderBook {
   fn get_possible_matches<S, T>(&self, terms: T) -> Result<S::Matches, S::MatchErr>
       where S: MatchStrategy<OrderBook=Self>,
             T: Into<S::MatchTerms>,
   {
       S::match_strategy(self, terms.into())
   }
}
источник

V

Vladimir in Rust — русскоговорящее сообществo
я скомпилировал в голове - работает.
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
    pub trait MatchStrategy {
       type OrderBook;

       type MatchTerms;

       type Matches;
       type MatchErr;

       fn match_strategy(
           order_book: &Self::OrderBook, terms: Self::MatchTerms,
       ) -> Result<Self::Matches, Self::MatchErr>;
   }
источник

АК

Андрей Казанцев... in Rust — русскоговорящее сообществo
Так это весь
источник