home.social

#перечисления — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #перечисления, aggregated by home.social.

  1. Что делает перечисления (enum) в Rust такими мощными?

    На примерах попробую показать, почему enum в Rust это несколько больше, чем обычно принято считать. Рассмотрю расширенное использование enum в типовых ситуациях. Сразу забегая вперед скажу, что в рамках статьи я не затрагиваю паттерны и мэтчинг. Первое, что приходит в голову, когда речь заходит об enum , — это идея: «А давайте заменим все константы на enum ». :) Желание логичное, давайте на него посмотрим...

    habr.com/ru/articles/899792/

    #rust #enum #num_enum #перечисления #итераторы #repr #strum #try_from

  2. Что делает перечисления (enum) в Rust такими мощными?

    На примерах попробую показать, почему enum в Rust это несколько больше, чем обычно принято считать. Рассмотрю расширенное использование enum в типовых ситуациях. Сразу забегая вперед скажу, что в рамках статьи я не затрагиваю паттерны и мэтчинг. Первое, что приходит в голову, когда речь заходит об enum , — это идея: «А давайте заменим все константы на enum ». :) Желание логичное, давайте на него посмотрим...

    habr.com/ru/articles/899792/

    #rust #enum #num_enum #перечисления #итераторы #repr #strum #try_from

  3. Что делает перечисления (enum) в Rust такими мощными?

    На примерах попробую показать, почему enum в Rust это несколько больше, чем обычно принято считать. Рассмотрю расширенное использование enum в типовых ситуациях. Сразу забегая вперед скажу, что в рамках статьи я не затрагиваю паттерны и мэтчинг. Первое, что приходит в голову, когда речь заходит об enum , — это идея: «А давайте заменим все константы на enum ». :) Желание логичное, давайте на него посмотрим...

    habr.com/ru/articles/899792/

    #rust #enum #num_enum #перечисления #итераторы #repr #strum #try_from

  4. Что делает перечисления (enum) в Rust такими мощными?

    На примерах попробую показать, почему enum в Rust это несколько больше, чем обычно принято считать. Рассмотрю расширенное использование enum в типовых ситуациях. Сразу забегая вперед скажу, что в рамках статьи я не затрагиваю паттерны и мэтчинг. Первое, что приходит в голову, когда речь заходит об enum , — это идея: «А давайте заменим все константы на enum ». :) Желание логичное, давайте на него посмотрим...

    habr.com/ru/articles/899792/

    #rust #enum #num_enum #перечисления #итераторы #repr #strum #try_from

  5. [Перевод] Удивительная оптимизация размера enum в компиляторе Rust

    Enum — одна из самых популярных фич Rust. Тип enum может иметь одно из значений в заданном множестве вариантов. /// Foo имеет значение или 32-битного integer, или символа. enum Foo { Int(u32), Char(char), } Значениями типа Foo могут быть или integer (например, вариант Foo::Int(3) с полезной нагрузкой 3 ), или символы (например, вариант Foo::Char('A') с полезной нагрузкой 'A' ). struct можно считать AND -комбинациями их полей, а enum — OR-комбинациями их вариантов. Этот пост посвящён удивительной оптимизации, выполняемой компилятором Rust с представлением в памяти значений enum , чтобы они занимали меньше места в памяти (спойлер: это не нишевая оптимизация). В общем случае, уменьшение размера значений может привести к ускорению программ, потому что значения передаются в регистрах CPU и в одну линию кэша CPU умещается больше значений.

    habr.com/ru/articles/899834/

    #компиляторные_оптимизации #перечисления #enum #оптимизация_кода #оптимизации