Cow<str> — Clone on Write, avoids allocation. String — owned.
Cow<str>:
String:
1use std::borrow::Cow;23fn get_greeting(name: &str) -> Cow<str> {4 if name.is_empty() {5 Cow::Borrowed("Hello, stranger!")6 } else {7 Cow::Owned(format!("Hello, {}!", name))8 }9}1011let greeting = get_greeting("");12let greeting = get_greeting("Alice");
Key: Cow for conditional allocation.