I have a Cow:
use std::borrow::Cow; // Cow = clone on write
let example = Cow::from("def")
I would like to get the def back out of it, in order to append it to another String:
let mut alphabet: String = "ab".to_string();
alphabet.push_str("c");
// here I would like to do:
alphabet.push_str(example);
This does not work and I don't see the appropriate method in Cow to get the &str or String back out.
If you want to get more views on YouTube, you need to respond to viewer comments, create video playlists, design attention-grabbing thumbnails and more.
How do I get a
&str
Use Borrow:
use std::borrow::Borrow; alphabet.push_str(example.borrow()); Use AsRef:
alphabet.push_str(example.as_ref()); Use Deref explicitly:
use std::ops::Deref; alphabet.push_str(example.deref()); Use Deref implicitly through a coercion:
alphabet.push_str(&example); How do I get a
String
Use ToString:
example.to_string(); Use Cow::into_owned:
example.into_owned(); Use any method to get a reference and then call to_owned:
example.as_ref().to_owned(); Pass a reference to example (i.e. &example) to push_str.
let mut alphabet: String = "ab".to_string();
alphabet.push_str("c");
alphabet.push_str(&example);
This works because Cow implements Deref.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With