Size: a a a

2021 April 21

CD

Constantine Drozdov in rust_offtopic
ну инфа о типах в компильтайме есть полная, в строку переводят костылями над мангленным именем функции, в рантайме имени типа попросту нет, плюсовые типы не доживают до рантайма
если тебе условно надо сделать функцию, которая абстрактно пишет данные, то ты формальных компильтаймовый тип должен записать и проверить там всякие тривиальности
источник

EG

Emmanuel Goldstein in rust_offtopic
#[repr(transparent)]
struct Foo {
   a: usize,
   b: dep::Problem,
}
источник

EG

Emmanuel Goldstein in rust_offtopic
Если dep::Problem был ZST, а станет не-ZST, то код перестанет компилироваться
источник

EG

Emmanuel Goldstein in rust_offtopic
Это значит, что добавление первого поля ненулевого размера в структуру — breaking change.
источник

NL

Nick Linker in rust_offtopic
Видишь ли, я уже нюхом чую, что заикнись я про ffi, мне бы насовали бесполезных советов про swig, gir, metalang какой-нибудь, что было бы равносильно пустой трате времени.

Поэтому я и задал узкий вопрос, но конечно он сразу вызывает ощущение ху-проблемы, это понятно.
источник

CD

Constantine Drozdov in rust_offtopic
Да не, в плюсах не в моде совать рандомные либы, так что лучше бы просто сразу сказал, что тебе нужно
источник

EG

Emmanuel Goldstein in rust_offtopic
Где-то в районе rustc-dev-book был более подробный список вещей, которые внезапно breaking change
источник

p

polunin.ai in rust_offtopic
Ну и толку тогда от семвера если хуй кладут на него?
источник

NL

Nick Linker in rust_offtopic
Да, примерно так.
Давай я тебе ещё вопрос на поразвлечься задам.
Как из Rust передать в... и, наоборот, вернуть из крестов std::string по значению?
источник

EG

Emmanuel Goldstein in rust_offtopic
источник

EG

Emmanuel Goldstein in rust_offtopic
А RTFM потому что
источник

EG

Emmanuel Goldstein in rust_offtopic
Если требовать читать rustc-dev-guide странно, то Cargo Book можно и прочитать
источник

EG

Emmanuel Goldstein in rust_offtopic
Хотя rustc-dev-guide это тоже просветляющее чтиво
источник

CD

Constantine Drozdov in rust_offtopic
Никак, потому что std::string это минимум два разных типа
источник

CD

Constantine Drozdov in rust_offtopic
У них разные sizeof реализаций есть
источник

KR

Kai Ren in rust_offtopic
О, спасибо!
источник

KR

Kai Ren in rust_offtopic
А то я всё как-то наощупь, а раньше на эту страницу не заходил.
источник

CD

Constantine Drozdov in rust_offtopic
Я тебе больше скажу - в плюсы передать std::string по значению можно только в условиях одного компилятора и жёсткого описания его документации (там вопросы начиная от того, что рантайм либа должны быть динамически прилинкована, и заканчивая требованием собирать основной исполняемый файл самым новым компилятором из использующихся)
источник

CD

Constantine Drozdov in rust_offtopic
В общем-то смотри, как сделана та самая виндовая COM
источник

Т8

Т-34 85 in rust_offtopic
Grüße gehen raus an alle mutigen Menschen die sich trauen auf die Straße zu gehen. Gibt niemals auf.
источник