I keep getting surprised by .lines() semantics in Rust. "" -> empty "foo" -> one line "foo\n" -> one line "foo\nbar" -> two lines I end up using .split('\n') everywhere instead, but .lines() is so convenient it feels like a footgun.