Size: a a a

2018 November 29

D

Denis in rust_offtopic
кого-то и хаскель морозит
источник

D

Denis in rust_offtopic
мне збс
источник

AL

Arsenii Lyashenko in rust_offtopic
Вкусовщина
источник

D

Denis in rust_offtopic
Alexander
@mexus видимо живёт описывая свои фьючи - в них стейт. В js норм без асинка композировать, но тут бчекер
фьюча это всегда стейт-машина =) макросы просто за тебя её собирают
но и я стараюсь по-максимуму обузить impl Trait in return position :)
источник

AL

Arsenii Lyashenko in rust_offtopic
Мне лично и с колбасой из and_then норм
источник

AZ

Alex Zhukovsky in rust_offtopic
Alexander
Хз, мне она удобнее и понятнее - по сути просто композиция.
источник

AZ

Alex Zhukovsky in rust_offtopic
этот код можно сократить со 100 строк кода до 10
источник

AZ

Alex Zhukovsky in rust_offtopic
и причем сейчас его трогать боясзно, рефакторишь что-нибудь, а у тебя типы сходиться перестают
источник

AZ

Alex Zhukovsky in rust_offtopic
разбивать по функциям конечно можно, но в нормальном языке оно бы за няло одну строчку каждая
источник

D

Denis in rust_offtopic
сорри, но это выглядит как недекомпозированный код, сделанный на коленке по-быстрому
источник

D

Denis in rust_offtopic
и я не вижу, как асинк/авейт сократит количество строк в 10 раз
источник

D

Denis in rust_offtopic
но мб это просто реально я не вижу, будет интересно посмотреть, как он будет выглядеть с авейтами, когда их таки подвезут
источник

AZ

Alex Zhukovsky in rust_offtopic
let chunk = await req.into_body().concat2();
let update  = from_slice::<Update>(chunk.as_ref())?;
let chat_id = update.message.chat.id;
let message_id = update.message.message_id;
let processing_info = match (&update.message.from, &update.message.document, &update.message.photo) {
 (Some(ref from), Some(ref document), _) => Some((from, &document.file_id)),
 (Some(ref from), _, Some(ref photo)) => photo
   .iter()
   .max_by_key(|x| x.file_size.unwrap_or(0))
   .map(|x| (from, &x.file_id)),
 _ => None,
};
let file = await telegram_client.get_file(&file_id);
if let Some((file_path, ext)) = get_file_path_if_processable(file.file_path) {
 let image = Image::new(
   bytes.into_iter().collect(),
   ImageMetadata::new(format!("{}.{}", file_id, ext), user.id, message_id),
 );
  ....
}
источник

AZ

Alex Zhukovsky in rust_offtopic
это 131-177
источник

D

Denis in rust_offtopic
принципиально изменилось только то, что отступов стало меньше :))
но это по-прежнему недекомпозированное месиво)
источник

D

Denis in rust_offtopic
я, если что, не спорю, что асинк-авейт синтаксис принесёт много пользы
источник

AZ

Alex Zhukovsky in rust_offtopic
да это обыный метод
источник

AZ

Alex Zhukovsky in rust_offtopic
на 20-30 строк
источник

AZ

Alex Zhukovsky in rust_offtopic
в телеге мб выглядит как месиво, но в эдиторе норм
источник

AZ

Alex Zhukovsky in rust_offtopic
а что сейчас месиво - я не спорю
источник