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

Кто мне может объяснить откуда тут взялся лайфтайм 'a?

pub fn add_handler<F, Fut, T>(&mut self, topic_regex: Regex, func: F)
where
T: for<'d> Deserialize<'d>,
F: Fn(Arc<State>, &Self, T, String) -> Fut + 'static,
Fut: Future<Output = Result<(), Err>> + 'static,
{
self.handlers.push((
topic_regex,
Box::new(move |state, self_, publish, matches| {
let val = serde_json::from_slice(&publish.payload)?;
Ok(Box::pin(func(state, self_, val, matches)))
}),
));
}

async fn handle_canary_group_assigned<'l>(
self: Arc<Self>,
client: &Client,
canary_group: CanaryGroup,
_: String,
) -> Result<()>

error[E0308]: mismatched types
--> daemon\src\mqtt.rs:41:9
|
41 | / client.add_handler(
42 | | Regex::new(r"^/devices/\d+/canary_group$").unwrap(),
43 | | Self::handle_canary_group_assigned,
44 | | );
| |_________^ one type is more general than the other
|
= note: expected opaque type `impl for<'a> Future<Output = std::result::Result<(), error::Error>>`
found opaque type `impl Future<Output = std::result::Result<(), error::Error>>`
= help: consider `await`ing on both `Future`s
= note: distinct uses of `impl Trait` result in different opaque types
note: the lifetime requirement is introduced here
--> C:\Users\punks\RustroverProjects\fleet-commander\protocol\src\mqtt_client.rs:89:48
|
89 | F: Fn(Arc<State>, &Self, T, String) -> Fut + 'static,
| ^^^

4 ответов

49 просмотров

&Client

Tech Makaka- Автор вопроса
Αλεχ Zhukovsky
&Client

Как можно сделать чтобы он смог вывести что это один и тот же лайфтайм?

Tech Makaka
Как можно сделать чтобы он смог вывести что это од...

Какой тот же? У тебя требование: Fut: Future<Output = Result<(), Err>> + 'static, нельзя ни на что ссылаться. Поменяй хандлер на client: Arc<Client>,

Tech Makaka- Автор вопроса
Αλεχ Zhukovsky
Какой тот же? У тебя требование: Fut: Future<Outp...

Но я не могу. У меня коллер этих коллбеков mut self прнимает

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта