Size: a a a

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

2020 September 06

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Hedgar
всю - это 8 мб?
Гигабайт
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
В том чтоб увеличить немного размер стэка в принципе ничего плохого не вижу
источник

P

Pavel in Rust — русскоговорящее сообществo
Andrey Vlasov
Рост стека меняется
так ещё раз: в чём сакральность стека? ты можешь поменять стек вызовов на стек на хипе, но зачем?
источник

D

Denis in Rust — русскоговорящее сообществo
Pavel
Пытаюсь при помощи structopt  сделать параметр, который принимает значения из enum, но компилятор ругается, что для энама не определён FromStr, может ли structopt генерировать их сам?

Рылся в здоровенной доке https://docs.rs/structopt/0.3.17/structopt/ нашёл, что автоматическая конверсия работает для subcommand, но у меня уже есть такая для другой цели, а несколько одновременно использовать нельзя.
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Pavel
так ещё раз: в чём сакральность стека? ты можешь поменять стек вызовов на стек на хипе, но зачем?
Нет сакральности стека, но экономить память имеет смысл
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Тот трюк, который я скидывал выше, уменьшает максимальную глубину рекурсии до log(N) (и на каждом уровне по-прежнему тратится O(1)).
То есть память действительно будет экономиться.
источник

H

Hedgar in Rust — русскоговорящее сообществo
Pavel
так ещё раз: в чём сакральность стека? ты можешь поменять стек вызовов на стек на хипе, но зачем?
да, точно, спасибо за поддержку
источник

P

Pavel in Rust — русскоговорящее сообществo
Спасибо, выглядит как то что нужно, но немного бойлерплейтно
источник

D

Denis in Rust — русскоговорящее сообществo
Pavel
Спасибо, выглядит как то что нужно, но немного бойлерплейтно
по-другому никак, дерайв-макрос не имеет доступа к другим типам
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Другой вопрос, что дерево все равно нужно хранить в памяти, поэтому сильного выигрыша нет.
источник

P

Pavel in Rust — русскоговорящее сообществo
Denis
по-другому никак, дерайв-макрос не имеет доступа к другим типам
но ведь для subcommand как-то работает
источник

D

Denis in Rust — русскоговорящее сообществo
Pavel
но ведь для subcommand как-то работает
а, ты имеешь в виду, что они могли бы это дело как-то встроить в structopt.. ну, наверное, да, но бойлерплейта бы от этого меньше практически не стало
источник

P

Pavel in Rust — русскоговорящее сообществo
Denis
а, ты имеешь в виду, что они могли бы это дело как-то встроить в structopt.. ну, наверное, да, но бойлерплейта бы от этого меньше практически не стало
ну смотри, для SceneType работает, а для RenderType — нет, хотя определения вариантов в принципе одинаковые, тоесть, достаточно реализации FromStr для вариантов.
источник

P

Pavel in Rust — русскоговорящее сообществo
Denis
а, ты имеешь в виду, что они могли бы это дело как-то встроить в structopt.. ну, наверное, да, но бойлерплейта бы от этого меньше практически не стало
источник

AV

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

D

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

P

Pavel in Rust — русскоговорящее сообществo
Denis
ну сделай, в чём проблема-то, код-то открытый :)
ну вот я и думаю, может оно сделано, но я не вижу, вроде бы очевидный кейс
источник

D

Denis in Rust — русскоговорящее сообществo
дык сделано через arg_enum, это ж то же самое
источник

D

Denis in Rust — русскоговорящее сообществo
что так надо оборачивать енум в макрос, что эдак, что так надо хинт у поля писать (#[structopt(subcommand)]), что эдак
источник

P

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