Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::borrow::Cow;
- fn foo<'a, T: Into<Cow<'a, str>>>(arg: T) {
- let owned: String = match arg.into() {
- Cow::Borrowed(string) => {
- println!("allocates");
- string.to_owned()
- },
- Cow::Owned(string) => {
- println!("doesn't allocate");
- string
- },
- };
- println!("{}", owned);
- }
- fn main() {
- let borrowed: &str = "test1";
- foo(borrowed);
- let owned: String = "test2".into();
- foo(owned);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement