Size: a a a

2021 April 29

EG

Emmanuel Goldstein in rust_offtopic
Ограничение должно хоть что-то ограничивать, чтобы быть осмысленным.
источник

EG

Emmanuel Goldstein in rust_offtopic
Да.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну вот я не вижу как
источник

П

Пух in rust_offtopic
А через forget и кастомный дроп не?
источник

EG

Emmanuel Goldstein in rust_offtopic
Теперь у тебя есть ограничение, что значение нельзя просто забыть.
источник

П

Пух in rust_offtopic
Ток я хз как память при этом грохнуть. Ещё из дебильных идей transmute
источник

П

Пух in rust_offtopic
Все рантаймовое, да
источник

EG

Emmanuel Goldstein in rust_offtopic
Собственно, для чего сейчас есть #[must_use]
источник

EG

Emmanuel Goldstein in rust_offtopic
Деструктурировать!
источник

EG

Emmanuel Goldstein in rust_offtopic
Разобрать на поля и дропнуть каждое поле отдельно
источник

EG

Emmanuel Goldstein in rust_offtopic
И так до примитивов
источник

TK

Traveller Kolsky in rust_offtopic
Вот с деструктурированием ещё как раз проблемы, если не менять семантику
источник

П

Пух in rust_offtopic
А ну то есть ещё и дроп реализовывать самому возможность?
источник

EG

Emmanuel Goldstein in rust_offtopic
Деструктурирование должно неявно форгетать при этом
источник

EG

Emmanuel Goldstein in rust_offtopic
И дроп принимать по значению
источник

EG

Emmanuel Goldstein in rust_offtopic
Соответственно, дефолтная реализация дроп будет выглядеть примерно так:
fn drop(self) {
   let Self { .. } = self;
}
источник

П

Пух in rust_offtopic
Forget же ещё и память ликает, да?
источник

TK

Traveller Kolsky in rust_offtopic
Нет
источник

EG

Emmanuel Goldstein in rust_offtopic
Нет. Форгет дропает без вызова деструктора
источник

П

Пух in rust_offtopic
Оу
источник