Есть небольшой крейт с енамом который используется как в no_std

контексте (читается из serial), так и в std - десериализуется как часть udp фрейма и дальше передается одному из подключенных девайсов, либо дальше в сериал либо как udp.
В no_std нет аллокатора, и один из инвариантов выглядит как Variant<'a>(&'a [u8]), в то время как в контексте std тот же инвариант выглядит как Variant(Vec<u8>). Из-за этого получается достаточно ебловатый интерфейс и можно легко запутаться в feature flags.
В std был выбран owned вариант потому что полученный connection передается в spawned task с Send + 'static.
Есть ли какие-то best practices в плане использования одного и того-же крейта в контексте с аллоком и без?
Смотрел на Cow, но оно тоже аллок просит.

3 ответов

7 просмотров

для no_std есть неплохой LockedHeap

ну можно попробовать сделать их полями енама и на поля повесить фичи. получится при компиляции енам с одним полем. Через Deref или кастомный трейт пробросить доступ к полю. Вот только из-за лайфтайма может ничего не получиться

А в чём проблема сделать свой Cow, но без owned-варианта на no_std?

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

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

Хтось використовував Vapor на Windows?
Jaroshevskii
15
подскажите, а как можно очистить экран с библиотекой POSIX-UEFI?
Vi Chapmann 🪙
11
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
6
это кластер, в смысле связность сети высокая, или это сотня хакнутых компов, на которых вертится взлом /etc/passwd ?
Д. П.
8
@spiridonov_dv скажите, у вас будет 1 дц или несколько? переход обработки в другой дц нужен? что будет в таком случае с tcp/tls соединениями? если только udp, то все равно ост...
Ilya
2
Нужен пулл реквест с хаммингберд + асинкхттпклиент или хаммингберд + юрлсессия?
Karl {🌪️}{🐊} Shinobi
8
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Отдельные отрезки задачи.... Этот момент я пока не понимаю, но пропустим. А что касается ноды... Вот выключилось питание у сервера а он там по tcp куда то сообщение уже отправ...
Дмитрий Спиридонов
1
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Цвет аватарки с буквой же зависит от айди? Как может быть такое, что этот цвет поменялся?
Lencore
2
Карта сайта