Size: a a a

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

2020 April 16

Э

Эрик in Rust — русскоговорящее сообществo
Не, можно сделать HList из zero-sized структур, которые возвращают 1 или 0, но это должно занять реального места больше, чем просто битовая структура.
источник

В

Вафель in Rust — русскоговорящее сообществo
Никакого места ничего не занимает
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Тоже не понял почему нельзя type-level Hlist
источник

Э

Эрик in Rust — русскоговорящее сообществo
Из битовой структуры ты создаёшь значения, а такой лист тебе в код или usize запихает, ибо вызов функции, или заинлайнит u8 во все места, то есть просто [Bool; N] будет в реальности.
источник

В

Вафель in Rust — русскоговорящее сообществo
Эрик
Не, можно сделать HList из zero-sized структур, которые возвращают 1 или 0, но это должно занять реального места больше, чем просто битовая структура.
Посмотри что такое typenum, пожалуйста
источник

В

Вафель in Rust — русскоговорящее сообществo
Эрик
Из битовой структуры ты создаёшь значения, а такой лист тебе в код или usize запихает, ибо вызов функции, или заинлайнит u8 во все места, то есть просто [Bool; N] будет в реальности.
В 'реалности' будет ()
источник

Э

Эрик in Rust — русскоговорящее сообществo
Мы про этот typenum говорим? https://docs.rs/typenum/1.12.0/src/typenum/bit.rs.html#43
источник

В

Вафель in Rust — русскоговорящее сообществo
Да
источник

Э

Эрик in Rust — русскоговорящее сообществo
Смотри, ноль и единица же не из воздуха берутся? Значит где-то в коде они должны быть. И будут.
источник

В

Вафель in Rust — русскоговорящее сообществo
Нет
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Эрик
Смотри, ноль и единица же не из воздуха берутся? Значит где-то в коде они должны быть. И будут.
Они из воздуха
источник

В

Вафель in Rust — русскоговорящее сообществo
Они есть толко на уровне типов. B0 и B1.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Как только ты используешь одну из этих функций, в коде появляется вызов функции. Компилятор оптимизирует его с usize до u8. В итоге, когда вызываешь несколько таких функций подряд, у тебя появляется [u8; N] массив.
источник

В

Вафель in Rust — русскоговорящее сообществo
Эрик
Как только ты используешь одну из этих функций, в коде появляется вызов функции. Компилятор оптимизирует его с usize до u8. В итоге, когда вызываешь несколько таких функций подряд, у тебя появляется [u8; N] массив.
1) не вызывай эти функции
2) ты скорее будешь использовать условный U10::to_u32
источник

Э

Эрик in Rust — русскоговорящее сообществo
Вафель
Cons<B1, Nil> вот тебе и хлист битов
Ну как не вызывать, когда ты предлагаешь хлистать биты.
источник

В

Вафель in Rust — русскоговорящее сообществo
Эрик
Ну как не вызывать, когда ты предлагаешь хлистать биты.
/_-

У меня есть пара примеров проектов (один из них даже мой), в который используется typenum, но не используются Bit::to_u8 и Bit::to_bool
источник

K0

Korvin 0x7CFE in Rust — русскоговорящее сообществo
Если кому интересна тема разработки аппаратуры и программирования FPGA, я тут накидал статью на Хабре https://habr.com/ru/post/496720/
источник

K0

Korvin 0x7CFE in Rust — русскоговорящее сообществo
Инструменты этого мегапроекта реализованы на расте, так что не оффтоп :)
источник

L

Lain-dono in Rust — русскоговорящее сообществo
Выглядит круто
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
выглядит более прострастраственным чем verilog на Rust, но более фундаментальным в тоже время
источник