If I understood correctly, the first match
expression doesn't take the ownership of the prev_data.kind
because the prev_data.kind
is a place expression:
https://doc.rust-lang.org/stable/reference/expressions.html#place-expressions-and-value-expressions
A place expression is an expression that represents a memory location.
https://doc.rust-lang.org/stable/reference/expressions/match-expr.html#match-expressions
When the scrutinee expression is a place expression, the match does not allocate a temporary location; however, a by-value binding may copy or move from the memory location.
I'm not sure what "a by-value binding may copy or move from the memory location" does mean, but I beleive no allocation means no move.
For the second match
, move happens. The tuple (prev_data.kind, new_data.kind)
tries
to take an ownership of the prev_data.kind
, but the prev_data
is &Data
(borrowed from the vec data
), so the tuple can't take the ownership.
Awesome. The current lemmy-ui sends a lot of traffic to other Lemmy instances to get pictrs-cached images, so this is huge improvement. On the other hand, on next.lemm.ee those requests seems to be gone. As feedback, I noticed this page still seems to send a request to imgur, ~~and the text is difficult to read because of the low-contrast theme.~~ (edit: fixed and now completely readable. thank you @sunaurus@lemm.ee )