Why does this `chars().rev()` approach not always reverse text correctly for arbitrary Unicode, but works here?fn main() { let s = "abc"; let r: String = s.chars().rev().collect(); println!("{}", r); }