The crate unicode-segmentation
has fixed the segmentation logic for indic scritps in v1.12.0.
ref. unicode-rs/unicode-segmentation#125
$ cargo update -p unicode-segmentation --precise 1.11.0
$ cargo run
नमस्ते (4 graphemes): ["न", "म", "स\u{94d}", "त\u{947}"]
नमस्ते (4 graphemes): ["न", "म", "स\u{94d}", "त\u{947}"]
नमस्ते (4 graphemes): ["न", "म", "स\u{94d}", "त\u{947}"]
র্যর্য (4 graphemes): ["র\u{9cd}", "য", "র\u{9cd}", "য"]
র্যর্য (4 graphemes): ["র\u{9cd}", "য", "র\u{9cd}", "য"]
$ cargo update -p unicode-segmentation --precise 1.12.0
$ cargo run
नमस्ते (3 graphemes): ["न", "म", "स\u{94d}त\u{947}"]
नमस्ते (3 graphemes): ["न", "म", "स\u{94d}त\u{947}"]
नमस्ते (3 graphemes): ["न", "म", "स\u{94d}त\u{947}"]
র্যর্য (2 graphemes): ["র\u{9cd}য", "র\u{9cd}য"]
র্যর্য (2 graphemes): ["র\u{9cd}য", "র\u{9cd}য"]