amarao_san

Category:

Это какое-то безумие

pub fn new_by_trait<F, T>(x: u32, y: u32, cpus: usize, f: F) -> Self
where
       F: Fn(usize) -> T,
       F: Send + 'static + Copy,
       T: DrawingApp

{...}

Я это не от балды написал, но после того, как я выдыхаю, мне трудно проговорить что я написал. Фактически, f тут — это требование функции new для трейта DrawingApp, причём такой, которую можно Send в соседний тред, причём много раз.

Вот это прямо текстом написано. «f — типа F, т.е. функция из usize в T», причём «F — можно копировать и слать в треды», а ещё у f должен быть lifetime static. А T  (тип, который возвращает f)  "должен реализовывать всё, что написано в трейте DrawingApp".

Вот это моща.

Error

default userpic

Your IP address will be recorded 

When you submit the form an invisible reCAPTCHA check will be performed.
You must follow the Privacy Policy and Google Terms of use.