Size: a a a

2019 December 26

А⚙

Антон ⚙️ in rust_offtopic
Nick Linker
Обоснуешь? А то вроде как Option/Result везде и всюду
Так это типы-суммы, а не типы-объединения
источник

А⚙

Антон ⚙️ in rust_offtopic
Mike Lubinets
rustjerk менее пассивно-агрессивен, не надо тут
О да, джерк активно агрессивен
источник

А⚙

Антон ⚙️ in rust_offtopic
red75prime
Технически и без ограничений на T валидная. С единственным вариантом реализации unimplemented!(). Но там я под T имел в виду любой тип и фактический тип возвращаемого значения может быть или ! или &'static T
Необязательно, есть же Box::leak
источник

r

red75prime in rust_offtopic
Антон ⚙️
Необязательно, есть же Box::leak
который тоже возвращает 'static ссылку
источник

В

Вафель in rust_offtopic
Антон ⚙️
А как ты в общем случае из enum восстановишь Self?
Так ты и из -1 не востановишь -293874. Можешь пояснить что ты имеешь в виду?
источник

r

red75prime in rust_offtopic
Ну да. Сигнатура не то чтобы невалидная, а вводящая в заблуждение. Получим не ссылку на значение, которое живёт 'a, а урезанную по времени жизни ссылку на значение, которое живёт 'static
источник

AZ

Alex Zhukovsky in rust_offtopic
Антон ⚙️
Так это типы-суммы, а не типы-объединения
то есть maybeuninit нужным быть перестал?
источник

А⚙

Антон ⚙️ in rust_offtopic
red75prime
который тоже возвращает 'static ссылку
https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.leak
Не, там время жизни вообще не ограниченно
источник

А⚙

Антон ⚙️ in rust_offtopic
Вафель
Так ты и из -1 не востановишь -293874. Можешь пояснить что ты имеешь в виду?
Так у тебя Negative, а не -1
источник

А⚙

Антон ⚙️ in rust_offtopic
Alex Zhukovsky
то есть maybeuninit нужным быть перестал?
Это весьма специфический юзкейс
источник

а

а это кто in rust_offtopic
Если время жизни не ограничено, то оно статик, нет?
источник

В

Вафель in rust_offtopic
Антон ⚙️
Так у тебя Negative, а не -1
И в чём разница между Negative и -1? Можешь обьяснить проблему?
источник

r

red75prime in rust_offtopic
О как. Можно ликать боксы со ссылками внутри. Впрочем, нашему foo это не поможет. Ему неоткуда взять не 'static ссылки. Ну и ликнутый бокс, натурально, не будет дропнут по окончанию 'a
источник

r

red75prime in rust_offtopic
Кстати, зачем может понадобиться делать leak на боксе, содержащем нестатические ссылки? Кто-нибудь может придумать причину?
источник

а

а это кто in rust_offtopic
Ссылка, которую возвращает Box валидна на протяжении всей жизни программы.
источник

А⚙

Антон ⚙️ in rust_offtopic
Вафель
И в чём разница между Negative и -1? Можешь обьяснить проблему?
В том, что если у тебя обобщённый тип, о котором ты ничего толком не знаешь, то -1 этого типа ты полчить не можешь
источник

а

а это кто in rust_offtopic
Антон ⚙️
Невалидная она, кстати, не из-за лайфтаймов, а из-за того, что на тип ограничений нет
А какие ограничения на тип должны быть?
источник

r

red75prime in rust_offtopic
а это кто
А какие ограничения на тип должны быть?
T: Default... не поможет. Вот если бы ConstDefault был, тогда да.
источник

r

red75prime in rust_offtopic
А, хотя Box::leak(Box::new(T::default()))
источник

А⚙

Антон ⚙️ in rust_offtopic
а это кто
А какие ограничения на тип должны быть?
Любой трейт, предоставляющий функцию () -> Self. Например, Default
источник