172 похожих чатов

Всем привет! И с НГ! Есть функция с таким заголовком: pub fn

start_loop<F>(&mut self, listen: &str, threads: usize, func: F) where F: Fn(Option<&mut ByteStream>) -> FuncResult + Send + Copy + 'static {
...
}
Можно ли как-то тип F куда-то в type alias вынести?

9 ответов

28 просмотров

нет

Revertron-⚛ Автор вопроса
Dmytro Polunin
нет

Очень жаль, было бы полезно так выносить и делать компактные описания :(

Revertron ⚛
Очень жаль, было бы полезно так выносить и делать ...

максимум ты можешь в трейт отдельный вынести trait MyFn: Fn(Option<&mut ByteStream>) -> FuncResult + Send + Copy + 'static {} impl<F> MyFn for F where F: Fn(Option<&mut ByteStream>) -> FuncResult + Send + Copy + 'static {} pub fn start_loop<F>(&mut self, listen: &str, threads: usize, func: F) where F: MyFunc { ... }

Revertron-⚛ Автор вопроса
Dmytro Polunin
максимум ты можешь в трейт отдельный вынести trai...

Не, не стоит разводить сущности ради такого :(

Revertron-⚛ Автор вопроса
Revertron ⚛
Не нравится мне такая норма.

Ну современное программирование не любит монстуозные классы, интерфейсы, функции и другие сущности, трейты не исключение

Я не про твой пример, а в целом, о том что маленькие самодостаточные трейты это ок

Revertron-⚛ Автор вопроса
⬜️🟦⬜️ Andrew
Я не про твой пример, а в целом, о том что маленьк...

Не, это понятно. Когда они используются по назначению, то есть в качестве интерфейсов, это норма :)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта