Size: a a a

2020 March 25

G

Gymmasssorla in rust_offtopic
Когда костылил копродукты
источник

Т8

Т-34 85 in rust_offtopic
union это такой тип, в котором ты описываешь, что в него может быть положено (что-то одно из), а память под этот юнион выделяется по размеру максимального типа из указанных, независимо от того, что ты туда заложишь. Короче, применение похоже на растовский Result

А enum ты знаешь по шарпу. Теперь видишь разницу?
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
union это такой тип, в котором ты описываешь, что в него может быть положено (что-то одно из), а память под этот юнион выделяется по размеру максимального типа из указанных, независимо от того, что ты туда заложишь. Короче, применение похоже на растовский Result

А enum ты знаешь по шарпу. Теперь видишь разницу?
не поверишь, но энум в расте так же устроен
источник

G

Gymmasssorla in rust_offtopic
Т-34 85
union это такой тип, в котором ты описываешь, что в него может быть положено (что-то одно из), а память под этот юнион выделяется по размеру максимального типа из указанных, независимо от того, что ты туда заложишь. Короче, применение похоже на растовский Result

А enum ты знаешь по шарпу. Теперь видишь разницу?
Не размер максимального типа. _как минимум_ размер максимального, т.к. может встроиться пустота, по крайней мере, в Си
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
union не предоставляет никакого способа увидеть активный член в данный момент
Ну, можно взять variant вместо него, не суть. Суть в том, что ты сравниваешь разнык по применению вещи
источник

G

Gymmasssorla in rust_offtopic
Alex Zhukovsky
не поверишь, но энум в расте так же устроен
Не также, енум в Rust - это ещё и тег
источник

AZ

Alex Zhukovsky in rust_offtopic
Gymmasssorla
Не также, енум в Rust - это ещё и тег
ну тег можно не считать
источник

AZ

Alex Zhukovsky in rust_offtopic
ты же можешь сделать трансмут в нужный вариант не проверяя тег, типа ты молодец. Ток зачем, непонятно
источник

G

Gymmasssorla in rust_offtopic
Alex Zhukovsky
ну тег можно не считать
Почему???
источник

G

Gymmasssorla in rust_offtopic
Тег обеспечивает гарантии
источник

G

Gymmasssorla in rust_offtopic
union в Rust тоже есть, кстати
источник

G

Gymmasssorla in rust_offtopic
unsafe
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
Собственно зачем нужно было придумывать enum class, std::variant, когда можно было сделать полноценные копродукты, как в Rust
А в чём проблема?
источник

G

Gymmasssorla in rust_offtopic
Т-34 85
А в чём проблема?
источник

AK

Alexander Krivitskiy in rust_offtopic
Gymmasssorla
Один решает частный случай копродуктов в Rust, второй - решает её неудобно
Первый решает проблему пространства имён. Вертели эти копродукты в комитете на одном месте. Второй да, пытается что-то решить, но так себе выходит.
источник

Т8

Т-34 85 in rust_offtopic
Alexander Krivitskiy
А enum class сделали ради того, чтобы в неймспейс варианты загонять, а не в глобал скоуп выбрасывать
Не столько из-за этого, сколько чтобы сделать типизацию, ибо enum == int
источник

G

Gymmasssorla in rust_offtopic
Alexander Krivitskiy
Первый решает проблему пространства имён. Вертели эти копродукты в комитете на одном месте. Второй да, пытается что-то решить, но так себе выходит.
s/Вертели эти копродукты в комитете/Вертели эту теорию типов в комитете
источник

G

Gymmasssorla in rust_offtopic
Т-34 85
Не столько из-за этого, сколько чтобы сделать типизацию, ибо enum == int
Не int, а целочисленный тип
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
не поверишь, но энум в расте так же устроен
Но это не тот энум, который в сях. Его так назвали для того, чтобы приходящих не отпугивать. И, кстати, правильно сделали!
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
Не размер максимального типа. _как минимум_ размер максимального, т.к. может встроиться пустота, по крайней мере, в Си
В смысле? Можно пример, когда размер больше максимального типа в нём?
источник