172 похожих чатов

Есть ли крейт, который позволит безопасно трансмьютить структуры? Хочу что-то

такое:
struct A(i32, u8, &[B]), struct B(i32),
transmute(&[u8]) -> &[A]
Что-то типа каста различных типов под указателями в Си
А и В - repr(c)

12 ответов

5 просмотров

А такое вроде и нельзя трансмьютить, выравнивание ж как минимум:/

mental-stability🥺✨ Автор вопроса
Пух
А такое вроде и нельзя трансмьютить, выравнивание ...

Ну, как бы сказать, там либо repr(c), либо packed. В общем, нет выравнивания, структура уже подразумевает что выравнена по 32 битам

Структура да, а вот слайс не факт И как ты это будешь сейфово проверять?:/

mental-stability🥺✨ Автор вопроса
Пух
Структура да, а вот слайс не факт И как ты это буд...

Ну мне не надо проверять. Структура packed. Мне бы просто не хотелось номом парсить и копировать что-то, хочу просто по ссылкам/указателям обращаться

Мне кажется ровно такого нет, но можешь посмотреть в сторону — ref_cast — bytemuck — slice-dst

Lain-dono
> ref_cast Автора крейта легко угадать

да тут авторов всех крейтов легко угадать

mental-stability🥺✨ Автор вопроса
Lain-dono
> ref_cast Автора крейта легко угадать

А кто? На ум только dtolnay приходит

mental-stability🥺✨ Автор вопроса
вафля'
Мне кажется ровно такого нет, но можешь посмотреть...

Ну, в общем, из трёх только bytemuck подходит. Надеюсь, я не отстрелю себе ноги, используя его

mental stability🥺✨
Ну, в общем, из трёх только bytemuck подходит. Над...

Там есть очень хорошая документация про то, что делать, чтобы было безопасно. Вообще, если на твоей структуре работает derive(Pod), то все хорошо.

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта