Function roe::to_ascii_titlecase
source · pub fn to_ascii_titlecase<T: AsRef<[u8]>>(slice: T) -> Vec<u8>
Available on crate feature
alloc
only.Expand description
Returns a vector containing a copy of the given slice where each byte is mapped to its ASCII title case equivalent.
ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’ in the first byte; subsequent bytes with ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’; non-ASCII letters are unchanged.
This function can be used to implement String#capitalize
and
Symbol#capitalize
for ASCII strings in Ruby.
To titlecase the value in-place, use make_ascii_titlecase
.
Examples
assert_eq!(to_ascii_titlecase("ABCxyz"), &b"Abcxyz"[..]);
assert_eq!(to_ascii_titlecase("1234%&*"), &b"1234%&*"[..]);
assert_eq!(to_ascii_titlecase("ABC1234%&*"), &b"Abc1234%&*"[..]);
assert_eq!(to_ascii_titlecase("1234%&*abcXYZ"), &b"1234%&*abcxyz"[..]);
assert_eq!(to_ascii_titlecase("ABC, XYZ"), &b"Abc, xyz"[..]);