Awful Rust snippets for fun and profit
443 subscribers
49 photos
54 links
seen something awful and want to post it here? send it to @goldsteinq
Download Telegram
it’s possible to work around the “bounds with different associated types are not considered disjoint” limitation by using a helper trait

thanks to Marin Veršić, author of the disjoint_impls crate for publishing this trick!

playground
rust-lang/rust issue
👍4
implicit use of a trait we’re currently implementing leaks through a module
bonus points to anyone who finds any related documentation (please tell me in the comments if you do!)
playground
thanks to @kanashimia for showing me this

(also yay 200 subscribers!)
🤔9😱4👍1👎1
you can access the return type of a macro by unifying it with some variable
playground
🤯13👍4🔥3🤔21
postmono const expression conditions
note that you’d also need to do a similar check for alignment, which is omitted for brevity
UPD: as @arjentix pointed out, this will also only work in cargo build/cargo test; the check will be skipped in cargo check
playground
🔥7👍1
a bit late to the party, but couldn’t pass this one
method resolution depends on compiler’s mutable internal state, which you can observe by calling a method on an integer literal
playground
Rust issue (two Zulip threads linked inside)
CI failures for naive fix
🤔12😱9🎉41👍1😁1🤯1
found this one while thinking about size of uninhabited types. Ralf seems to agree it’s a bug, so the patch will probably be accepted
playground
UCG issue
proposed patch
6🔥5👍1🤯1
it compiles.
playground
7🤔4🔥3🙈1
you can have unnameable traits with accessible methods
playground
reference
🤯25🤔4🔥3👍1🤡1
match match is legal and can be occasionally useful

- playground
- real-world example from rust-analyzer
- people even do if if sometimes

thanks to @LennyLizowzskiy for suggesting this!
🤯17👍6🥰3😐21🔥1
a slightly more fun slash cursed variation on a standard “enum-instead-of-bool” trick

playground
don’t use booleans — an explanation on why would you even want that

thanks to @Ddystopia_0 for inspiring this one!
👀74👍2😱1🥴1
parsing sequences (like dates or version strings) by matching on part index

playground
original example

thanks to @kanashimia for suggesting this one!
🤯13🔥5👍2
1.80 now warns on #[cfg(skip)], so here’s a workaround

playground
release notes about the warning

(also yay 300 subscribers!)
🔥12😁73😨3👎1
wrote down some thoughts about error handling, specifically a pattern that I call “progress pattern” (probably it has another name somewhere, but I’m not aware of it)
https://github.com/GoldsteinE/gh-blog/blob/master/error_progress/README.md
thanks to @meowaffle for reviewing this!

(btw, are y’all ok with breaking the format like this sometimes?)
👍18🔥1😨1
iex by @purplesyringa automatically adds its attribute to the docs by injecting a <style> tag

code link
🐳92🤯2
mixed-site hygiene might be surprising

original blogpost (read it, it’s cool!)
playground

thanks to @alexpyattaev for suggesting this!
🔥10🤯4👍21🥴1