Size: a a a

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

2020 September 06

D

Denis in Rust — русскоговорящее сообществo
Pavel
case_insensitive = true мне кажется значит что оно берёт имена из имён вариантов, а не из аннотаций
ничего не понял
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Andrey Vlasov
Оно же в куче хранится)
Да. Поэтому этот трюк довольно полезен, если стек маленький и поменять его нельзя.
В противном случае для улучшения потребления памяти он малополезен (но если хранить дерево в специальном порядке, то все еще можно выиграть по времени).
источник

P

Pavel in Rust — русскоговорящее сообществo
Denis
ничего не понял
ну, например, если вариант у меня называется RGBUnbiased, а я хочу в консоли писать просто unbiased, то разве оно сработает?
источник

D

Denis in Rust — русскоговорящее сообществo
Pavel
ну, например, если вариант у меня называется RGBUnbiased, а я хочу в консоли писать просто unbiased, то разве оно сработает?
я потерял нить
источник

D

Denis in Rust — русскоговорящее сообществo
(я сказал всё, что хотел и мог, так что с дальнейшей дискуссии сливаюсь, сорри)
источник

P

Pavel in Rust — русскоговорящее сообществo
Denis
я потерял нить
я про то, что разве #[structopt(possible_values = &Baz::variants(), case_insensitive = true)] берёт имена вариантов из аннотаций, а не из самих названий вариантов?
источник

D

Denis in Rust — русскоговорящее сообществo
Pavel
я про то, что разве #[structopt(possible_values = &Baz::variants(), case_insensitive = true)] берёт имена вариантов из аннотаций, а не из самих названий вариантов?
блин, оно их берёт из Baz::variants, а этот метод генерируется макросом arg_enum!
источник

D

Denis in Rust — русскоговорящее сообществo
ещё раз: дерайв-макрос на одном типе ничего не знает про другие типы (в т.ч. какие-то аннотации)
subcommand работает по совершенно иному принципу
источник

P

Pavel in Rust — русскоговорящее сообществo
Denis
блин, оно их берёт из Baz::variants, а этот метод генерируется макросом arg_enum!
https://github.com/TeXitoi/structopt/issues/67 во, чувак хотел того же, его отправили пилить фичу в репозиторий, который сейчас уже заархивирован
источник

kc

kek cheburec in Rust — русскоговорящее сообществo
Привет! Может кто знает где узнать конфигурацию/настройки для сборки своей версии компилятора. (которая имеет все оптимизации, и загружается всеми через rustup)
источник

Э

Эрик in Rust — русскоговорящее сообществo
kek cheburec
Привет! Может кто знает где узнать конфигурацию/настройки для сборки своей версии компилятора. (которая имеет все оптимизации, и загружается всеми через rustup)
Где-то на гитхабе в каком-нибудь contributing guide должно быть.
источник

Э

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

kc

kek cheburec in Rust — русскоговорящее сообществo
Эрик
Где-то на гитхабе в каком-нибудь contributing guide должно быть.
Ага, я знаю что по русту надо копать, решил спросить может кто знает
источник

P

Pavel in Rust — русскоговорящее сообществo
Denis
ещё раз: дерайв-макрос на одном типе ничего не знает про другие типы (в т.ч. какие-то аннотации)
subcommand работает по совершенно иному принципу
порешалось вполне простым образом, вот только не думаю, что если авторы страктопта хотели бы такую автоматическую реализацию, то не сделали бы её, тем более, что FromStr у них в других местах генерится
источник

AZ

Alexander Zaitsev in Rust — русскоговорящее сообществo
Переслано от Alexander Zaitsev
Есть структура, у неё методы, которые что-то делают с состоянием структуры (читают, изменяют).

Сами методы не thread safe, поэтому для использования из разных потоков используется Arc + Mutex. Но не нравится, что приходится постоянно писать var.lock().unwrap().do_something(), хочу var.do_something(), а оно внутри пусть уже мьютексы лочит и выполняет остальное.

Понятно, что такое можно реализовать простым враппером, который дублирует все методы и на каждом методе lock вызывает сам.

Внимание вопрос: а можно ли как-нибудь этот враппер не писать самому руками, а заставить его сгенерироваться? Также может быть это вообще делается как-то нормально и без врапперов левых
источник

AN

Alex Noname in Rust — русскоговорящее сообществo
Все равно надо пометить какие методы надо лочить а какие нет
источник

H

Hedgar in Rust — русскоговорящее сообществo
Кто пробовал на линуксе кросс-компилировать под darwin OpenSSL?)
источник

H

Hedgar in Rust — русскоговорящее сообществo
нужно в докере сбилдить под мак крейт, который зависит от openssl-sys :(
источник

P

Pavel in Rust — русскоговорящее сообществo
Alex Noname
Все равно надо пометить какие методы надо лочить а какие нет
можно просто макросом тогда сделать, чтоб список методов и он к этим методам дописывает .lock().unwrap()
источник

P

Pavel in Rust — русскоговорящее сообществo
и вызывать типа

try_with_locks!{foo, bar;
foo.do_something();
bar.do_something();
baz.do_something();
}
и оно б заменялось на
foo.lock().unwrap().do_something();
bar.lock().unwrap().do_something();
baz.do_something();
источник