Loo
Херово, обект приходится строкой передавать?
Да, либо хуячить параметрами макроса самое важное из объекта отдельно
Судзумия
Anton
Я тут заебался с лог коллекторами (конвертация), посмотриваю на slоg, думаю как бы с ним не пришлось сношатся
Сергей
Тем временем в чатике 666 человек
Berkus
используй коллекторские агентства, они сами за тебя сделают
Anton
Лучше сам накидай логгер себе
Хочется стандартное решение
պլհկ
Они обещают в стдлог запилить, но висит уже давно
Berkus
Пока они запилят...
1. запили, 2. пришли PR
Max
А как в новых futures засунуть стрим в executor? Stream::next()?
Max
Так, не понял (я тупой, да) У меня есть несколько стримов, нужно их объединить (Stream::select?) И при событии от стриов исполнять другую Future
Max
Но select тут кажется не подойдет, ибо там round-robin (то есть полить будет по очереди, а мне все сразу слушать нужно)
Loo
Так, не понял (я тупой, да) У меня есть несколько стримов, нужно их объединить (Stream::select?) И при событии от стриов исполнять другую Future
ты ведь можешь зачейнить 2 стрима. с другой стороны если ты их создаёшь почему бы сразу не создать 1 стрим со всеми футурами в нём. чтобы при событии выполнять другую футуру - сделай просто .and_then/.then у футур исходной коллекции
Αλεχ
В расте все еще не завезли [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
а, я понял, о чём ты
Αλεχ
ну я щас count_sort пишу
Αλεχ
мне в нем нужно
Αλεχ
попробую обойтись, тем более костыль я уже придумал
Αλεχ
но уже 3 раз точно такая проблема за полгода возникает
Loo
@Psilon что за проблема. вектор аллоцируй и всё
Cat
мне в нем нужно
а так нельзя let vec = vec![0; 5];?
Cat
я прост тоже не очень понял
Αλεχ
А во что это развернется?
Αλεχ
просто я пробовал Vec::with_capacity(n)
Денис
А во что это развернется?
В динамический вектор развернётся конечно же
Αλεχ
но после этого можно только пушить, vec[0] = 10 - паника
Денис
Там за один раз выделится вся нужная память
Cat
просто я пробовал Vec::with_capacity(n)
with_capacity это же аналог сишного capacity
Cat
это не значит, что у него длинна = n
Αλεχ
я это понимаю
Cat
или я не прав?
Αλεχ
а макрос проставляет еще и длину, да?
Cat
меня капец плавит короче
Денис
vec!(0; n) семантически то же самое, что и let mut v = Vec::with_capacity(n); v.push(0); ... v.push(0);
Денис
а VLA в расте не поддерживается
Денис
если что, они и в плюсах не поддерживаются
Денис
ещё можно SmallVec заюзать
Денис
а фокусы типа [0; n] — прямая дорога к переполнению стека
Cat
Эм, vec![0; n]
у него типо n динамическое
Cat
кстати, как исходники раста в одну команду скачать?
Cat
нашёл, кому надо (лол)
Cat
Денис
у него типо n динамическое
вектору динамичность n не мешает никак )
Cat
дааада, уже обсудили
Денис
кстати, как исходники раста в одну команду скачать?
если вдруг ещё надо, то rustup component add rust-src
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}`