Судзумия
Anton
Я тут заебался с лог коллекторами (конвертация), посмотриваю на slоg, думаю как бы с ним не пришлось сношатся
Сергей
Тем временем в чатике 666 человек
Loo
Berkus
используй коллекторские агентства, они сами за тебя сделают
Anton
պլհկ
Они обещают в стдлог запилить, но висит уже давно
Loo
Max
А как в новых futures засунуть стрим в executor?
Stream::next()?
պլհկ
Max
Так, не понял (я тупой, да)
У меня есть несколько стримов, нужно их объединить (Stream::select?)
И при событии от стриов исполнять другую Future
Max
Но select тут кажется не подойдет, ибо там round-robin
(то есть полить будет по очереди, а мне все сразу слушать нужно)
Αλεχ
В расте все еще не завезли [0; n]?
Cat
шо?
Cat
let mut array: [i32; 3] = [0; 3];
Cat
из коробки
Αλεχ
n приходит в stdio
Cat
получается "stdion"?
Αλεχ
получается
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
let n: usize = lines.next().unwrap().unwrap().parse().unwrap();
let mut foo = [0u32; n];
foo[n - 2] = 50;
Cat
в смысле массивы динамического размера?
Αλεχ
да
Cat
нинужно
Αλεχ
просто обычно под динамическим размером имеется ввиду вектор
Αλεχ
Cat
да
Αλεχ
ты предлагаешь пушить n - 3 нулей в вектор?
Αλεχ
потому что я из выходов вижу только аллоцировать ансейфом область памяти нужную
Αλεχ
собрать from_raw_parts вектор нужной длины
Αλεχ
и фигарить по нужному индексу
Cat
а, я понял, о чём ты
Cat
Αλεχ
ну я щас count_sort пишу
Αλεχ
мне в нем нужно
Αλεχ
попробую обойтись, тем более костыль я уже придумал
Αλεχ
но уже 3 раз точно такая проблема за полгода возникает
Loo
@Psilon что за проблема. вектор аллоцируй и всё
Cat
я прост тоже не очень понял
Αλεχ
А во что это развернется?
Αλεχ
просто я пробовал Vec::with_capacity(n)
Αλεχ
но после этого можно только пушить, vec[0] = 10 - паника
Денис
Там за один раз выделится вся нужная память
Cat
это не значит, что у него длинна = n
Αλεχ
я это понимаю
Cat
или я не прав?
Αλεχ
а макрос проставляет еще и длину, да?
Cat
меня капец плавит короче
Денис
vec!(0; n) семантически то же самое, что и let mut v = Vec::with_capacity(n); v.push(0); ... v.push(0);
Денис
а VLA в расте не поддерживается
Денис
если что, они и в плюсах не поддерживаются
Денис
ещё можно SmallVec заюзать
Денис
а фокусы типа [0; n] — прямая дорога к переполнению стека
Маjко
Cat
кстати, как исходники раста в одну команду скачать?
Cat
нашёл, кому надо (лол)
Cat
Cat
дааада, уже обсудили
Cat
спасиб
Cat
պլհկ
Αλεχ
Αλεχ
мне unalloc сойдет
Αλεχ
ну ладно
Αλεχ
оставим пока идеоматически
Αλεχ
потом затюним
Αλεχ
кстати в тему преждевременной оптимизаци
Αλεχ
как вот это freq[m as usize] += 1; переписать на get_unchecked_mut, чтобы не было проверки границ?
Денис
unsafe{*freq.get_unchecked_mut(m as usize) += 1};
Αλεχ
а
Αλεχ
я звездочку забыл
Αλεχ
а он мне лицо разорвал ошибкой
Денис
cannot use `+=` on type `&mut {integer}`