А есть ли принципиальная возможность создать в теле функции объект,

чтобы на выход выплюнуть его заимствование, а lifetime привязать к заимстваванному аргументу?

Грубо говоря, я хочу сделать:
fn foo(a: &'a [A]) -> &'a [B] {...}
При этом преобразование в В нельзя сделать in-place, нужно создать новый массив и накидать в него B::from(a[i]).

5 ответов

23 просмотра

А какой у этого смысл, если вектор все равно алоцирован будет? Почему бы не хранить в структуре его, а не ссылку? Лайфтайм если что можно отдельно привязать через PhantomData

Eugene- Автор вопроса
Ilya Bogdanov 🇺🇦
А какой у этого смысл, если вектор все равно алоци...

Эта вся свистопляска, на самом деле, нужна для тестов. Потому что при штатной работе структура содержит в себе слайс, и это, типа, важно.

Eugene
Эта вся свистопляска, на самом деле, нужна для тес...

Если тебе надо что бы структура умела хранить внутри или слайс на внешние данные, или владеть данными (т.е. хранить вектор), то тебе прямая дорога к использованию enum-а в качестве одного из полей структуры. Одно знаениче enum-а будет хранить слайс, второе - вектор.

Eugene- Автор вопроса
Kirill Kuzminykh
Если тебе надо что бы структура умела хранить внут...

"...или владеть данными" происходит только в тестах, поэтому енум для этого делать не хочется.

Eugene
"...или владеть данными" происходит только в теста...

А может тесты тебе "намекают", что такой кейс использования вполне себе возможен и даже востребован?

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

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

Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
7
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Есть тут кто занимается разработкой серваков майна? Или знакомые
meow *
3
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Есть ли лимиты на кол-во вебхук по домену? Стоит в данный момент 900+ ботов и бывает бот перестает отвечать (не приходят вебхуки) 🐒 Помогает только перезапуск
ᅠ [ Кому не ответил, дублируйте ]
11
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Товарищи, здравствуйте Подскажите, пожалуйста, может кто-нибудь сталкивался с такой задачей Через вебапку можно сканировать qr-код, а есть ли возможность считывать nfc?
Artem Stormageddon
8
Карта сайта