### What it does Checks for maps with zero-sized value types anywhere in the code. ### Why is this bad? Since there is only a single value for a zero-sized type, a map containing zero sized values is effectively a set. Using a set in that case improves readability and communicates intent more clearly. ### Known problems * A zero-sized type cannot be recovered later if it contains private fields. * This lints the signature of public items ### Example ``` fn unique_words(text: &str) -> HashMap<&str, ()> { todo!(); } ``` Use instead: ``` fn unique_words(text: &str) -> HashSet<&str> { todo!(); } ```