В функцию прилетает аргумент транзакции sqlx: ptx: Option<&mut Transaction<'_, Postgres>> внутри

функции нужно пробросить эту же транзакцию в несколько фунrций, можно ли через option.map() как-то провернуть?

6 ответов

8 просмотров

if let Some(ref mut t) = transaction { let a = qwe(Some(t))?; let b = asd(Some(t))?; }

Саша- Автор вопроса

но тогда во второй ветви нужно будет, что как-то не красиво

Проблема в том, что реборровинг мутабельной ссылки — это хак компилятора, и работает оно только на &mut T, ни на чём другом оно не работает. В твоей ситуации проще всего ловить &mut Option<Transaction>, чтобы реборровинг нормально работал.

Саша- Автор вопроса

тоесть типы параметров принимающей функции менять?

Либо так, либо делать match и руками реборровить.

Вообще-то можно, но не очень красиво bar1(t.as_mut().map(|r| &mut **r));

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

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

'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Есть полностью собранная база "шрифтов" - подобных символов?
Shen
9
кто-нибудь отправлял ли групповые медиа с entites? что бы были гипер ссылки const result = await this.client.invoke( new Api.messages.SendMultiMedia({ silen...
Kokni
3
а у тя шо за бот?
Андрей
6
или ты хочешь сказать что это по юникоду не дефолтные буквы?
Roma
4
Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
if (user?.choseType === 'oneDay') { await ctx.reply( 'Добро пожаловать в команду «Магнита»! Правда, на один день ☺️ ', ); await ctx.s...
Kokni
1
Всем привет. А что там обычно с терминами выхода обновлений для telegraf? Год проект не открывал, смотрю библиотека только 7.1 еще поддерживает
The end.
1
отправляю так return bot.telegram.sendMessage(ctx?.business_message.chat.id, ctx?.business_message.text)
ᅠFLOUDYᵈᵉᵛ ᅠ
2
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Карта сайта