You are running into the Send Approximation being too conservative. The compiler does not like to see a let binding for a non-Send type and an .await statement in the same scope. It is not (yet) smart enough to know that the non-Send type is already consumed by the time of the .await.
You've already discovered the workaround in your three(). To make it more concise
rust
async fn four() {
let content = do_stuff().err().map(|err| err.to_string());
if let Some(content) = content {
let _ = do_stuff_2(content).await;
}
}
Anything that’s updated with the OS can be rolled back. Now Windows is Windows so Crowdstrike handles things it’s own way. But I bet if Canonical or RedHat were to make their own versions of Crowdstrike, they would push updates through the o regular packages repo, allowing it to be rolled back.
The amount of points on your comment will be decreased by one. The deduction will be federated across thousands of Lemmy instances, bringing you shame from across the Fediverse.
Why did you do this?
There are several reasons I may deem a comment to be unworthy of positive or neutral points. These include, but are not limited to:
Rudeness towards other users,
Spreading incorrect information,
Sarcasm not correctly flagged with a /s.
As this is your first time receiving my downvote, I will provide reasons (listed below) to help you avoid making these mistakes again. Note that this will not be the case with future downvotes.
Writing variables next to each other to form words. "Y o u" is not an English word. If you want the English word "You" in LaTeX math mode, write \text{You}.
Your "rotation matrix" has determinant of -1, meaning it is not a rotation matrix. Propaganda promoting improper rotations will not be tolerated on mander.xyz.
Am I banned from the Lemmy?
No - not yet. But you should refrain from making comments like this in the future. Otherwise I will be forced to issue an additional downvote, which may put your commenting and posting privileges in jeopardy.
I don't believe my comment deserved a downvote. Can you un-downvote it?
Sure, mistakes happen. But only in exceedingly rare circumstances will I undo a downvote. If you would like to issue an appeal, shoot me a private message explaining what I got wrong. I tend to respond to PMs within several minutes. Do note, however, that over 99.9% of downvote appeals are rejected, and yours is likely no exception.
How can I prevent this from happening in the future?
Accept the downvote and move on. But learn from this mistake: your behavior will not be tolerated on mander.xyz or the Fediverse as a whole. I will continue to issue downvotes until you improve your conduct. Remember: Posting is privilege, not a right.
We could take this further and let developers specify exactly the dependencies they need! No more bloated runtimes! App A could specify libfoo>=1.23.45 while app B specify libfoo<1.24 and Flatpak could resolve the compatible version automatically!
Serious answer: If space saving is the goal, traditional packaging is the way to go. Allowing multiple runtimes is a slippery slope away from the core idea of Flatpak (simplest dependency management possible so developers don’t have to test many configurations).
(Not that there’s anything wrong with traditional packaging with more complicated dependency management - it’s just not Flatpak’s thing).
Never heard of this “Papers” PDF reader before and it’s not on Flathub either. Apparently it is a fork of Evince with lots of big changes planned. Exciting stuff! But does anyone know what’s going to happen to Evince?
Looks nice! Is this yours (OP)? If so, are you aware of Bavarder? It seems to have quite some features. (But it is unmaintained and broken right now so Alpaca is a welcome replacement.)
Look into using your browser’s designMode functionality. It’s as WYSIWYG as anything can be. It’s great for editing HTML but not very suitable for writing HTML.
You are running into the Send Approximation being too conservative. The compiler does not like to see a let binding for a non-Send type and an
.awaitstatement in the same scope. It is not (yet) smart enough to know that the non-Send type is already consumed by the time of the.await.You've already discovered the workaround in your
three(). To make it more conciseasync fn four() { let content = do_stuff().err().map(|err| err.to_string()); if let Some(content) = content { let _ = do_stuff_2(content).await; } }