Anton
Anton
Вот, нашел, можешь всплакнуть о будущем гуев в расте)
պլհկ
а под мак есть?
Anton
пока что хуй там
Anton
но завтра думаю будет
Anton
я на маке буду завтра писать)
Anton
как фиксы доебу, отпишусь
Anton
когда Арсен пытался собрать мой проект у него сломался Cargo
պլհկ
лол
Anton
без шуток
Anton
рил сломался
Evgeniy
добрый день друзья.
вопрос новичка
зачем писать два амперсанда если я пердаю функцию в мэп например?
xs.iter().map(|&&x| x + 1)
Денис
потому что iter() возвращает итератор, Item которого — это ссылка на элемент массива, то есть &_, а map() принимает лябмду, которой передаёт аргумент &Item, то есть &&_
Денис
а нет, наврал
Денис
map() передаёт Item
Денис
xs — это что такое?
Sergey
Sergey
Evgeniy
типа имя массива
Sergey
Evgeniy
в общем я тут заметил что есть отдельный чат для новичков
я туда пойду пожалуй
Денис
типа имя массива
массива чего? https://play.rust-lang.org/?gist=21f917374e77fa05b0e8d21857ea29a6&version=stable&mode=debug
Evgeniy
хммм видимо не чисел раз с чилами одного зватает
Денис
вот если у тебя массив ссылок, то тогда в map и появляется второй амперсанд
Денис
короче iter, как правило, делает итератор по ссылкам на оригинальные элементы массива
Anton
но давно
Anton
до того как я решился новые деревья впихать
Sergey
Anton
но как я их запихаю
Anton
по сути полностью готова отрисовка модульная
Anton
да еще и стайлшит готов
Денис
хммм видимо не чисел раз с чилами одного зватает
если уже разобрался с дженериками, то, возможно, так будет понятней, что там происходит: https://play.rust-lang.org/?gist=0694f3485ebf8ddc313aca4aa35c930a&version=stable&mode=debug
Anton
останеться написать простенький калькулятор эвентов на лайауте
Anton
и вуаля
Evgeniy
Sergey
Anton
Anton
ну тоесть для простого текст лайаута включая стили у меня есть говно
Anton
нету текстового движка под полноценный текстовый лайаут блочный
Маjко
Ух, написал новые бакеты, заебался, завтра допишу, думаю 0.2
Судзумия
Токсичный
Anton
Токсичный
держу в курсе, но в моем чате они тоже присоединились 😕 и это мне не особо нравится
Anton
https://intellij-rust.github.io/2018/05/04/changelog-73.html в CLion обовили плагин Rust, а change notes ведут на 404
trfc
в ссылке вместо 04 должно быть 03
https://intellij-rust.github.io/2018/05/03/changelog-73.html
Судзумия
добрый день друзья.
вопрос новичка
зачем писать два амперсанда если я пердаю функцию в мэп например?
xs.iter().map(|&&x| x + 1)
Потому что iter возвращает итератор по заимствованиям от оригинального массива.
Есть ещё into_iter, который пожирает оригинальный массив, но итерирует по самим значениям.
map же в передваемое замыкание/функцию передаёт ещё раз заимствованные значения из итератора (то есть, в твоём случае заимствование заимствования), чтобы твоё замыкание не пожирало значения.
Пожирать -- делать значения неиспользуемыми далее из-за move семантики, в функциях это обозначается первым параметром self, когда в других функциях &self или &mut self
Судзумия
Хотя выше уже заметили, что map передаёт Item. А я попутал с filter
Судзумия
Это значит, что в xs уже заимствования
Денис
Тоже на это попался)
Макс
Привет. Есть вопрос по интеграционным тестам, никогда их раньше не использовал. Куда класть общую инициализацию, которая должна пройти перед всеми интеграционными тестами (создать тестовую бд и прогнать на ней миграции)?
Макс
В самом diesel для этого используется под-crate diesel_tests, и кастомный билд-скрипт build.rs для него, но для обычного приложения это выглядит немного как overkill
Денис
overkill лучше underkill )
Макс
Денис
ваще смотрю доки, походу такой возможности не предусмотрено
Денис
в общем вот что советую в доках
Денис
делаешь модуль tests/common.rs
Денис
и в нём публичную функцию типа pub fn setup()
Макс
Денис
точнее даже не tests/common.rs, а tests/common/mod.rs
Макс
но так это будет перед *каждым* тестом, а не один раз перед всеми
Денис
ну да
Денис
типа каждый тест запускается в полностью независимом окружении
Судзумия
Денис
отсутствие side-эффектов, вот это вот всё
Денис
но я с базами не работал, может там люди что-то уже похитрее придумали
Судзумия
Потому что это сложно
Макс
Потому что это сложно
у них более сложное решение, билд скрипт который делает миграции один раз
https://github.com/diesel-rs/diesel/blob/master/diesel_tests/build.rs
Денис
не знаю даже, честно говоря
Макс
https://github.com/diesel-rs/diesel/blob/master/diesel_tests/tests/schema.rs#L182
Денис
я бы всё-таки по-новой всё сетапил
Макс
понятно, буду дальше искать
Макс
может в итоге придётся делать прямо как у них)
Денис
а чем тебе не нравится сетапить каждый раз?
Денис
слишком много времени занимает?
Макс
количество миграций будет только расти, количество тестов тоже, а это уже O(n*m) от них получается