Aler
я просто изучаю проект на раст и там такой код: encoding_struct! { struct Wallet { const SIZE = 48; pub_key: &PublicKey [00 => 32] name: &str [32 => 40] balance: u64 [40 => 48] } }
Мерль
а можно в любом случае пнуть?
А можно я буду звать тебя Владик? :3
Vladislav
меня и так все зовут Владик
Vladislav
ну кроме бч
Vladislav
там закрепилось другое
Мерль
меня и так все зовут Владик
Нет, Сенин, все тебя совут Сенин
Aler
я хочу его завернуть в другой макрос и добавить функционала, но и encoding_struct оставить
Vladislav
Нет, Сенин, все тебя совут Сенин
Меня зовут Сеня, и речь про бч
Vladislav
в жизни никто не зовет по фамилии или вот так
Aler
ой дяди я ошибся
Aler
или нет)
Aler
ладно, буду думать, не буду флудить в чат
Мерль
ладно, буду думать, не буду флудить в чат
Разговоры про руст называют флудом, дожили
Filipp
вот этот макрос делает что-то похожое на то, что ты описываешь https://github.com/gfx-rs/gfx/blob/8684e8cdc40afb5e7d17401477e8764279921c65/src/render/src/macros/mod.rs#L138
Filipp
что такое бч?
Vladislav
Aler
так я что-то совсем запустался
Aler
когда из одного макроса создаешься другой он токены не парсит заного?
Aler
сделать чтоли обычную кодогенерацию..
Emerald
что такое бч?
Близкий Человек
Tomato
блокчейн
Oleg
Бородатые частушки
Berkus
чюваки, чюваки, а для раста есть штука похожая на http://natty.joestelmach.com/ ?
vladislav
@berkus https://github.com/rust-unofficial/awesome-rust/blob/master/README.md тут вся годнота, похожего не нашёл.
Berkus
спасибо за годноту
Berkus
жаль что нету такой либы
Berkus
если кто портанет - пришлю пива )
vladislav
FFI юзай, если очень сильно нужна
Berkus
но она на джаве
Berkus
я ебанусь jvm с собой таскать )
Filipp
в питоне такая тоже есть
Berkus
а, это вариант кстати!
Filipp
https://dateparser.readthedocs.io/en/latest/
Filipp
я даже в нее законтрибутил "послезавтра" и "позавчера"
Anonymous
я ебанусь jvm с собой таскать )
Jlink ж есть в девятке
Berkus
это что
Anonymous
это что
http://openjdk.java.net/jeps/282
Berkus
я смотрю там в расте дофига интерфейсов к jvm и так
Berkus
шта
https://github.com/rust-unofficial/awesome-rust/blob/master/README.md#ffi вот тут в подразделе Java
Sergey
аа, ты об этом
Berkus
так, а в расте operator overloading не присутствует?
Berkus
как я могу сделать a = b * c + x; для векторов или матриц?
Anonymous
трейты
Anonymous
это не называется operator overloading в расте
Berkus
трейтами я могу именно такой синтаксис реализовать?
Anonymous
https://doc.rust-lang.org/std/ops/trait.Mul.html
Berkus
ага, спасибо, отлично!
Aler
коллеги, посовейте как красиво извлечь из tuple второй элемент
Aler
self.players().iter().find(|key: &PublicKey, p: Player| { p.x() == x && p.y() == y })
Max
p.1
Max
(если p - типаж)
Aler
не, типаж в | | попадает как раз
Aler
players это коллекция типажей (PublicKey, Player)
доня.
так падажжите
доня.
кортежи
доня.
не типажи
доня.
типажи это traits
Aler
да, точно.
Max
https://doc.rust-lang.org/std/primitive.tuple.html
доня.
а то вы меня запутали совсем
Aler
это меня лис спутал)
доня.
ох уж етот лис
Max
ой, я tuple и типаж перепутал только не бейте
доня.
тобi пизда
доня.
текай с городу
Aler
но .1 задачу не решает)
Aler
find() отдает Option<(PublicKey, Player)>
Aler
pub fn getAt(&mut self, x: i32, y: i32) -> Option<Player> { let players = self.players(); let found = players.iter().find(|p| { p.1.x() == x && p.1.y() == y }); match found { Some(result) => Some(result.1), None => None } }
Aler
вот так сделал
Aler
до поиска?
Aler
это не будет дороже?
Anton
found.map(|e| e.1)
Anton
вместо матчинга
Aler
почему это работает?)
Aler
я думал .map это для коллекций
Aler
но спасибо