Size: a a a

Rust — русскоговорящее сообществo

2020 March 13

Э

Эрик in Rust — русскоговорящее сообществo
Пробел, например.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Или точку с запятой. Или запятую. Есть ещё разные приколы типа ($t:ty => $atomic_t:ty) => ...
источник

Э

Эрик in Rust — русскоговорящее сообществo
macro! (usize => AtomicUsize);
источник

В

Вафель in Rust — русскоговорящее сообществo
Это всё понятно, интересен точный список разрешённых символов...)
источник

YB

Yevhenii Babichenko in Rust — русскоговорящее сообществo
любой валидный токен
источник

Э

Эрик in Rust — русскоговорящее сообществo
Ну, нельзя делить с помощью $, насколько я помню.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Скобки там тоже не заходят вроде.
источник

YB

Yevhenii Babichenko in Rust — русскоговорящее сообществo
значит, надо вникать)
источник

ДК

Денис Котляров in Rust — русскоговорящее сообществo
Вафель
А что можно использовать как разделители в макросах? Типо $( $T:ty ),+ что можно использовать вместо запятой?
тут еще суть в том что не обязательно писать $($t:ty),+

если можно написать даже так...

($t:ty $(,)? )*

а значит ограничения более-менее стандартны)
источник

В

Вафель in Rust — русскоговорящее сообществo
Yevhenii Babichenko
любой валидный токен
Ого, я даже не задумывался об этом...
источник

O

Ołeksij in Rust — русскоговорящее сообществo
Может быть, кто-то делал что-то подобное ...
Мне нужно имплементировать Drop для структуры, в fn drop вызвать асинхронную функцию из этой структуры.
В tokio есть Handle::current(), но с его помощью, вроде, нельзя block_on. Как мне в fn drop получить Runtime и вызвать block_on или есть другой способ?
источник

В

Вафель in Rust — русскоговорящее сообществo
Эрик
Ну, нельзя делить с помощью $, насколько я помню.
Доллар работает, а скобочки это 2 токена :)
источник

YB

Yevhenii Babichenko in Rust — русскоговорящее сообществo
Вафель
Ого, я даже не задумывался об этом...
я на самом деле не думая ляпнул, там точно есть ограничения
источник

Э

Эрик in Rust — русскоговорящее сообществo
В стд либе многие макросы на массовую имплементацию трейтов с пробелом в качестве разделителя. Потому что лень - двигатель прогресса.
источник

YB

Yevhenii Babichenko in Rust — русскоговорящее сообществo
но это надо по доке рыться, я сложные кейсы через процедурные макросы кодил
источник

В

Вафель in Rust — русскоговорящее сообществo
Yevhenii Babichenko
я на самом деле не думая ляпнул, там точно есть ограничения
Да вроде нет, любой токен кроме *, ? и +
источник

YB

Yevhenii Babichenko in Rust — русскоговорящее сообществo
Вафель
Да вроде нет, любой токен кроме *, ? и +
думаю что скобки тоже мимо
источник

ДК

Денис Котляров in Rust — русскоговорящее сообществo
Yevhenii Babichenko
я на самом деле не думая ляпнул, там точно есть ограничения
даже более. ограничения динамичны в зависимости от того что стояло, ty, exp). для этого и придумали  разновидности (exp, lifetime, ....)
источник

В

Вафель in Rust — русскоговорящее сообществo
Yevhenii Babichenko
думаю что скобки тоже мимо
скобки это 2 токена, не один
источник

В

Вафель in Rust — русскоговорящее сообществo
Денис Котляров
тут еще суть в том что не обязательно писать $($t:ty),+

если можно написать даже так...

($t:ty $(,)? )*

а значит ограничения более-менее стандартны)
Хм, ну тоже верно)
источник