LINUX.ORG.RU

История изменений

Исправление pftBest, (текущая версия) :

отсутствия обобщенного механизма для этих вещей на уровне библиотеки/языка.

Этот «обобщенный механизм» называется futures. Два года назад когда раст зарелизился его небыло, это правда. Но сейчас он есть и уже стабилен, так что можно перестать рассказывать про «отсутствие».

код просто переусложнен

Ну и что тут переусложненого в этом асинхронном коде:

let future = future.map(move |msg| msg.extract_answer(query_type))
            .then(move |rv| rv.report_status(&name, status_tx))
            .then(move |rv| rv.partial_ok());

Box::new(future)
Тебе надо слово «async» написать чтобы понятно стало?

Исходная версия pftBest, :

отсутствия обобщенного механизма для этих вещей на уровне библиотеки/языка.

Еще раз повторю, этот «обобщенный механизм» называется futures. Два года назад когда раст зарелизился его небыло, это правда. Но сейчас он есть и уже стабилен, так что можно перестать рассказывать про «отсутствие».

код просто переусложнен

Ну и что тут переусложненого в этом асинхронном коде:

let future = future.map(move |msg| msg.extract_answer(query_type))
            .then(move |rv| rv.report_status(&name, status_tx))
            .then(move |rv| rv.partial_ok());

Box::new(future)
Тебе надо слово «async» написать чтобы понятно стало?