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