Size: a a a

Rust — русскоговорящее сообщество

2021 June 19

IA

Intemoc Aru'Nesh in Rust — русскоговорящее сообщество
https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=b9cfcb2f38568097577076bd87f0741f
Вот в плэйграунде попытался. Вроде, примитивная специализация для конкретного типа, но работать не хочет
источник

Э

Эрик in Rust — русскоговорящее сообщество
источник

Э

Эрик in Rust — русскоговорящее сообщество
Мне кажется, что ты хочешь hlist по фантомдате, а не вот это вот всё.
источник

IA

Intemoc Aru'Nesh in Rust — русскоговорящее сообщество
Исключительно типы и compiletime интересуют
источник

Э

Эрик in Rust — русскоговорящее сообщество
Ну хлист и в компайл тайм собрать можно. Итерироваться нельзя по хлисту в компайл тайм, правда, потому что трейты.
источник

Э

Эрик in Rust — русскоговорящее сообщество
Но если вопрос стоит именно про вычисление во время компиляции, то почему не проц макрос?
источник

DF

Dollar Føølish in Rust — русскоговорящее сообщество
Трейты не умеют в констфн?
источник

Э

Эрик in Rust — русскоговорящее сообщество
По крайней мере в стейбле точно не умеют.
источник

DF

Dollar Føølish in Rust — русскоговорящее сообщество
Понятно спасибо не знал
источник

DF

Dollar Føølish in Rust — русскоговорящее сообщество
Ну кстати да процмакрос наверняка самым чистым решением окажется
источник

IA

Intemoc Aru'Nesh in Rust — русскоговорящее сообщество
Через макросы я не могу делать подстановку в генерики. Мне бы сформировать список из типов, передать его как аргумент генерика и взять по индексу какой-то элемент
источник

IA

Intemoc Aru'Nesh in Rust — русскоговорящее сообщество
Вот пример, с которым у меня изначально были проблемы:
https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=e10cc4fb457845a631c00479644bbb41
Он позабористее, но суть, вроде, должна быть та же. Самореферентных ограничений на типы трейта не осталось, но компилироваться не желает.
источник

Э

Эрик in Rust — русскоговорящее сообщество
Я убрал default, теперь вообще не компилируется, кек.
источник

IA

Intemoc Aru'Nesh in Rust — русскоговорящее сообщество
Все видели кто сломал компилятор?
источник

IA

Intemoc Aru'Nesh in Rust — русскоговорящее сообщество
На машине у меня если убрать default, то ругается на конфликтующие специализации
источник

DF

Dollar Føølish in Rust — русскоговорящее сообщество
Возьмите нормальный кодген
источник

DF

Dollar Føølish in Rust — русскоговорящее сообщество
И не мучайте растц)
источник

IA

Intemoc Aru'Nesh in Rust — русскоговорящее сообщество
Кодген не решает вопросов. В кодгене я не могу типы проверить. А если могу, то это вторая компиляция, считай
источник
2021 June 20

D

Dmitry in Rust — русскоговорящее сообщество
всех приветствую!

существует ли какое-то решение для FFI, когда функция на C объявлена через неконстантный указатель Struct*, но семантика такая, что ничего не изменяется там, функция, по сути, getter чистой воды, а const просто добавить забыли

Пилю обёртку на раст.
Кастовать *const Struct в *mut Struct — UB, как я понимаю

есть ли какое-то решение, чтобы UB обойти, или везде с собой шареную ссылку таскать придётся?
источник

D

Denis in Rust — русскоговорящее сообщество
> *const Struct в *mut Struct
да вроде нет, UB будет, ежели ты это кастанёшь к &mut Struct или сишный код таки что-то изменит по указателю
источник