Size: a a a

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

2017 November 26

AS

Anton Shramko in Rust — русскоговорящее сообщество
а примеров нет, есть только голый референс(
источник

A

Anton in Rust — русскоговорящее сообщество
Зато хотябы есть сорсы =)
источник

AV

A V in Rust — русскоговорящее сообщество
передавать данные между футурами с помощью крейта chan - норм вариант или костыль?
источник

AS

Aleksey Sidorov in Rust — русскоговорящее сообщество
А чем тебе модуль mpsc из футур не угодил?
источник

AV

A V in Rust — русскоговорящее сообщество
не знал про него
источник

AV

A V in Rust — русскоговорящее сообщество
боевая задача - принять данные по udp, обработать, отправить дозапрос нескольким адресатам - планирую сделать через три футуры и tokio в качестве клея
источник

AS

Aleksey Sidorov in Rust — русскоговорящее сообщество
Там есть штатный способ передать данные, а заодно создавать цепочки обработчиков любой степени сложности
источник

AS

Aleksey Sidorov in Rust — русскоговорящее сообщество
Ну тебе нужны стримы и каналы из футур. А так же их комбинаторы
источник

AS

Aleksey Sidorov in Rust — русскоговорящее сообщество
Смотри на функции select и join
источник

AS

Aleksey Sidorov in Rust — русскоговорящее сообщество
Хотя для твоей задачи хватит обычной синхронщины, нафига жизнь усложнять
источник

AV

A V in Rust — русскоговорящее сообщество
у меня уже написан вариант с двумя тредами и CSP (как на Go), сейчас хочу научиться асинхронщине
источник

AT

Anton TrionProg in Rust — русскоговорящее сообщество
Привет. Появилась следующая задачка: нам нужно сделать настраиваемые с помощью дженериков числа. Например, настройка говорит, что максимальное число😷, а при создании из f32, нужно округлять в большую или меньшую сторону. Увы, в качестве дженерика можно указать только тип, те я не могу сделать Number<7,RoundMax>, приходится передавать в качестве дженериков типы, которые возвращают числа с помощью трейтов(О ужс), например Number<Seven, RoundMax>. Более того, нужно чтобы такой тип мог бы Add, Mul и тд, а трейты нельзя имплементить для трейтов, поэтому нужно чтобы Number был структурой?! Но ведь я же хочу получить некий настраиваемый ТИП, например Number16. Естественно я не хочу объявлять 100 типов и писать к ним impl From<..> for Type1..100 хоть даже с помощью макроса. Мне интересно, есть ли какой-то прямой выход?
источник

AT

Anton TrionProg in Rust — русскоговорящее сообщество
увы, например в геймдеве, не выделишь по потоку на юзера(их то много), поэтому приходится писать асинхронщину. Имхо, футуры, конечно наиболее прямой выход и вообще за ними будущее =)
источник

AT

Anton TrionProg in Rust — русскоговорящее сообщество
у меня уже написан вариант с двумя тредами и CSP (как на Go), сейчас хочу научиться асинхронщине
источник

MS

Marat Safin in Rust — русскоговорящее сообщество
Anton TrionProg
Привет. Появилась следующая задачка: нам нужно сделать настраиваемые с помощью дженериков числа. Например, настройка говорит, что максимальное число😷, а при создании из f32, нужно округлять в большую или меньшую сторону. Увы, в качестве дженерика можно указать только тип, те я не могу сделать Number<7,RoundMax>, приходится передавать в качестве дженериков типы, которые возвращают числа с помощью трейтов(О ужс), например Number<Seven, RoundMax>. Более того, нужно чтобы такой тип мог бы Add, Mul и тд, а трейты нельзя имплементить для трейтов, поэтому нужно чтобы Number был структурой?! Но ведь я же хочу получить некий настраиваемый ТИП, например Number16. Естественно я не хочу объявлять 100 типов и писать к ним impl From<..> for Type1..100 хоть даже с помощью макроса. Мне интересно, есть ли какой-то прямой выход?
Тебе зависимые типы нужны переходи на idris🌚
источник

AT

Anton TrionProg in Rust — русскоговорящее сообщество
Добавлю: Каким-то образом я хочу получить такой тип, который бы настраивался СТАТИЧЕСКИ, те с помощью дженериков. Например, настройки бы он хранил в виде функции, не в объекте.
источник

AT

Anton TrionProg in Rust — русскоговорящее сообщество
Эх, на расте нужно =) В своей одной либе я сумел таки извратиться и сделать типы, собирающиеся на этапе компиляции, те они были осуществлены с помощью структур с PhantomData и трейтов, умеющих выдавать определённые числа с помощью их методов, но теперь нужно, чтобы они таскали с собой и Add/ Mul и тут и попадаешь на проблему, что нельзя с трейтом Number их таскать =( Мозговзрывная задача конечно =))
источник

AT

Anton TrionProg in Rust — русскоговорящее сообщество
А такие типы я хотел бы сделать, чтобы их применить в fn summ<A:Number, B:Number, C:Number😠a:A,b:B)-> C { a+b} и при этом A и B могут быть вовсем разными. Выход, конечно, есть, можно с помощью макросов создавать типы, например, create_number!(N12, 12, Round::Hight); Который имплементит всякое, но.. зато Idea не умеет раскрывать макросы =)) Хотя вряд ли это и понадобится, я же нигде не юзаю типы напрямую. Хм, наверно я так и сделаю, хотя, имхо, костыль.
источник
2017 November 27

ph

pl 🦑 hk in Rust — русскоговорящее сообщество
источник

AT

Anton TrionProg in Rust — русскоговорящее сообщество
Благодарю. Хотя, конечно, я просто ломаю голову ради "удовольствия", особой нужды конечно нет =) И к счастью, что нет. Кстати даже удалось сделать, правда что-то работает криво =( Точнее не компилиЦа
источник