Danila Matveev
заходят обычно все же разные, имена совпадают
Danila Matveev
покрайней мере в 3х чатах где мой бот висит)
Anonymous
Anonymous
а
Marat
Надо сделать бота, который будет палить людей, которые сразу в кучу каналов разных заходят и кикать их, правда надо будет с кучей каналов договориться, чтобы поставили иначе толку не будет
Anonymous
а что такого с заходом в несколько каналов
Danila Matveev
Это бывает, довльно много реальных людей сидят в куче каналов
Marat
Ну боты обычно сразу в много каналов заходят, люди то обычно так не делают
Danila Matveev
забавно что я видел спам везде кроме этого чата (идрис не считается, там по ссылке только попасть можно)
Anonymous
Danila Matveev
есть боты, которые с одинаковым именем, но реально с разными айдишниками
есть боты, которые не имеют ничего общего, но явно от одного создателя
да и то что кто-то зашел не страшно, главное от спама быстро избавиться
Danila Matveev
подозрительно но недостаточно для бана
Marat
И если после захода он репостит из канала во все чаты то бан
Anonymous
ты не так говорил
Alex
Alex
Я зашел в awesome telegram и сразу зашел в кучу каналов
Alex
более того это нормальное поведение
Alex
Danila Matveev
это узкий кейс
VCL
Я как понял массивы не являются владельцами своих итемов, а просто хранят ссылки на них?
Alex
Alex
насколько я понимаю они как раз владельцы. А если хочешь ссылки то пихаешь элементы в Box
Alex
либо у тебя сами элементы это смартпоинтеры
Anonymous
а box не смартпоинтер?
VCL
почему?
Я пытаюсь сделать вот как-то так.
https://pastebin.com/t1kG2WjZ
То есть ожидаю, что Tile::new(assets_manager) переместится в contents. Но компилятор мне говорит
expected reference, found struct tile::Tile
То есть либо массив хранит ссылки, либо я его как-то криво в структуре объявил.
VCL
Что мне гуглить?
Marat
Marat
А стой, ты вообще в цикле пытаешься изменить содержание массива
Marat
Так нельзя делать
Marat
for item in row.iter() {
item = Tile::new(assets_manager);
}
VCL
VCL
Вообще лучше буду использовать Vec.
Больно много костылей с инициализацией будет у меня․ Так как Tile у меня не рассчитан на копирование)
Код с инициализацией без Copy, который я нашёл: https://stackoverflow.com/questions/31360993/what-is-the-proper-way-to-initialize-a-fixed-length-array
Vladimir
Спасибо, понял)
изменить содержание можно, а вот инициализировать нужно массив сразу.
Vladimir
А тот код, что ты нашел, будет работать и для Copy типов.
Anonymous
Anonymous
лоол
Alex
это где?
Vladimir
arc?
Anonymous
https://doc.rust-lang.org/1.8.0/src/alloc/up/src/liballoc/arc.rs.html#362
Anonymous
это про меня
Мерль
Anonymous
а что там без кастинга если не указатель?
Vladimir
Vladimir
который можно инлайнить
Anonymous
оо
Anonymous
а можно получить typeid типа который функция возвращает?
Vladimir
https://play.rust-lang.org/?gist=96d57dec0d64e47dea051ed6304bb3d2&version=nightly
Anonymous
fn test<A, B: 'static>(x: fn(A) -> B) -> bool {
std::any::TypeId::of::<B>() == std::any::TypeId::of::<bool>()
}
такое работает, но хотелось бы чтобы могло быть любое количество аргументов
Vladimir
А, тебе именно который возвращает
Anonymous
да
Vladimir
Смысле любое?
Anonymous
ну здесь работает только для функций которые принимают один аргумент
Vladimir
добавь несколько аргументов, в чем проблема
Anonymous
всм
Мерль
Я думаю можно сделать на макросах
Anonymous
на макросах неинтересно
Мерль
хотяяя
Мерль
реализовать все варианты вплоть до N аргументов
Anonymous
мб с Fn трейтом можно
Anonymous
https://play.rust-lang.org/?gist=fc740d0dcb90573681174faed8d25ed7&version=nightly
Anonymous
можно
Anonymous
кул
Anonymous
Мерль
Anonymous
аа
Anonymous
чуваки, спрашивают по книгам что посвежее. растбук и растономикон же вроде свежие всегда, да?
Anonymous
вторая версия rustbook
Anonymous
ну, та, что на сайте, да?
Anonymous
да
Anonymous
но самое-самое свежее находится в unstable book
Anonymous
ок, спс, ну я так и сказал