I was convinced a while back to minimize what goes in to crates when publishing them. In practice this meant adding examples and tests to the exclude list in Cargo.toml.
There is one minor annoyance though: I can't exclude benches, because Cargo.toml references benchmarks that must exists under benches, and publishing croaks if the benchmark source file does not exist.
Is there an way to specify (criterion) benchmarks other than [[bench]] in Cargo.toml?
This isn't what you asked, but: please don't exclude tests from publication (unless they have huge input data sets or something). Published tests are run by crater and assist Rust compiler development (if you have them, it's less likely that a future change breaks your crate), and can also help anyone who is troubleshooting a “wait, did this ever work?” kind of problem.