can't update ruma to very latest commit because of the weird JsOption thing for syncv4 that i can't wrap my head around how to use, not important anyways
Signed-off-by: strawberry <strawberry@pupbrain.dev>
`IndexMap::remove` was deprecated in favor of explicitly named methods.
I assume that we actually needed to be using `shift_remove`, otherwise
we probably wouldn't be bothering with `indexmap` here in the first
place. I wonder if this fixes any bugs lol
I removed some lint configuration in the process:
* `#[allow(clippy::suspicious_else_formatting)]` because nothing is
currently triggering it.
* `#[warn(clippy::future_not_send)]` because some stuff under
`src/lib.rs` is. And also like, auto-trait leakage generally means
this isn't a problem, and if things really need to be `Send`, then
you'll probably know to mark it manually.
* `#[warn(rust_2018_idioms)]` and replaced it with
`explicit-outlives-requirements = "warn"` which is the most useful
lint in that group that isn't enabled by default.
It comes with a bunch of new lints (yay!) so I fixed them all so CI will
keep working.
Also apparently something about linking changed because I had to change
the checks for deciding the linker flags for static x86_64 builds to
keep working.
Honestly not sure why it wasn't done like this before. This code is much
less awkward to follow and more compartmentalized.
These changes were mainly motivated by a clippy lint triggering on the
original code, which then made me wonder if I could get rid of some of
the `Box`ing. Turns out I could, and this is the result of that.