Berkus
default() :)
Nikita
Не нули и не дефолт, просто неопределенная память
Nikita
Так же, как это делает Vec
պլհկ
mem::uninitialized
Nikita
smallvec
Там можно избежать аллоцирования на куче?
Nikita
Например, кидать Err, если вылезает за границы
պլհկ
Ну let arr: [u8;8] = unsafe { mem::uninitialized()} будет на стеке
պլհկ
С границами самому разбираться
պլհկ
Готового крейта не видел для этого
Anonymous
uninitialized = malloc?
պլհկ
Можно самому обертку сделать
պլհկ
Просто бамп SP
Nikita
uninitialized = malloc?
Это просто чтобы компилятор не ругался и не обнулял память. malloc тут вообще не вызывается, память же на стеке
Anonymous
а
Мерль
Anton
Но еще часто ансейф - это признак того, что ты делаешь что-то не верно. Тут главное "первым надеть халат".
Чувак у меня колбэки это статические херовины самого gtk которые работают в потоке живущие дольше всей проги, делать целиком на safe геморрой, неконтролируемый и сложныц
Anton
Лучше у меня один объект с слушателями и элементами будет ансейф который в паре строчек, чем ебучая недоразвитая хуйня
Vladimir
Чувак у меня колбэки это статические херовины самого gtk которые работают в потоке живущие дольше всей проги, делать целиком на safe геморрой, неконтролируемый и сложныц
Да я что спорю, только ты неделю назад на бороучекер ругался, так что как-то слабо верится, что ты точно знаешь что делать
Anton
ну вообще вариант я нашел
Anton
Еще в ишью оригинальных
Anton
но там мясо
Anton
https://github.com/gtk-rs/gtk/issues/263
Anton
Ну а так чо, я пока пробую себя в этой хитрожопой фигне, так что в целом считаю что у меня все ок идет
Anton
зато некое подобие MVC с полноценным навигатором и эвентами захерачил
Anton
кек
Anton
Berkus
несколько бесит диагностика Trait BlaBla is not satisfied on SomeClass когда передаешь &param вместо param. И никаких fix-its!
Loo
Она же вроде прозрачная
Berkus
Она же вроде прозрачная
да вот нет, когда получается &&param то падает с этим вот непонятным
Loo
а тебе действительно нужна двойная ссылка?
Berkus
нет, не нужна - она случайно получается. я про что говорю - в этом случае диагностика компилятора НЕПОНЯТНА, и он никак не подсказывает что за фигня случилась. всё.
Vladimir
Крылатый
А чо нет?
Vladimir
Я слышал у ним хорошие ошибки
Anonymous
у атома есть кнопка которая создает ишью
Vladimir
Alex
Настолько баговый продукт?
там бывают настолько багованные расширения.
Alex
Которые благодаря issue скорее всего замечаются и фиксятся гораздо быстрее.
Alex
Кроме того если пройти в это issue то иногда можно найти способ обхода.
Vladimir
На гитхабе, ага
Berkus
гут, дойду может
Alex
для дурачков, скажите насколько большой стэк?
Vladimir
https://github.com/rust-embedded/fixedvec-rs
Кстати там дефолтное значение у массива
Loo
у меня на арче 8мегов вроде
Loo
на винде без понятий
доня.
ulimit показывает unlimited
доня.
еее
Vladimir
хек)
Vladimir
мне казалось что у раста стек может рости
доня.
там надо было опцию -s добавить :с
доня.
8 мегов тоже
доня.
но вариант с unlimited был круче
Anonymous
у главного треда только
Anonymous
у других 2мб (но меняется)
Berkus
а каким трейтом можно сказать что Т это арифметический тип и ему можно использовать всякие +=, *, / и т.д.?
Anonymous
std::ops::...?
Anonymous
или если строго числовые типы то нужен num крейт
Berkus
ааа ага, Add, Sub, etc
Anonymous
например where N: PartialEq + PartialOrd + Add<N, N> + Sub<N, N> + PartialEqMul<N, N> + Rem<N, N> + One + Zero
Berkus
а зачем для Add, Sub, Rem и PartialEqMul указаны <N, N>?
Berkus
у меня вообще оригинальная формула была довольно простая self.value += (self.speed / 1000) * elapsedTimeMs * match self.direction { Direction::Forward => 1, Direction::Backward => -1, }; но с генерик типом чо то она становится увешана as T как новогодняя елка
Anonymous
а зачем для Add, Sub, Rem и PartialEqMul указаны <N, N>?
ну чтобы можно было создать оператор + который берет два разных типа
Berkus
хммм но там указаны два одинаковых типа )
Anonymous
там да
Anonymous
но не всегда так хочется
Berkus
39 | where T: PartialEq + PartialOrd + Add + AddAssign + Sub + Div<T,T> + Mul + Neg + Rem // aka arithmetic type | ^^^^^^^^ expected at most 1 type argument :(
Anonymous
ну
Anonymous
что ты хочешь от раста
Cuno
У Add/Div/Sub по одному параметру-типу, потому что первый - Self.
Cuno
Дефолтится