e019: Let's `Clone` a `Cow` episode artwork

EPISODE · Feb 28, 2017 · 18 MIN

e019: Let's `Clone` a `Cow`

from New Rustacean · host Chris Krycho

code{white-space: pre;} The final pieces of the story for (single-threaded) memory management in Rust. Notes Sometimes, we actually do need to copy types. Wouldn't it be nice if Rust gave us a convenient way to do that when it's convenient, or when the cost is low enough that the ergonomic tradeoffs are worth it? Well, perhaps unsurprisingly, it does! The Copy and Clone traits, plus the Cow type, give us everything we need! Links underhanded.rs The typess std::marker::Copy "Copy types" in the book "Stack-Only Data: Copy" in the new book 7.2.0.2 Moved and copied types: When a local variable is used as an rvalue, the variable will be copied if its type implements Copy. All others are moved. Extended example in "Traits" section of new book std::clone::Clone std::borrow::Cow Default implementations discussion in the current book discussion in the new book Supertraits from the discussion in the reference (6.1.9 Traits): Traits may inherit from other traits.... The syntax Circle : Shape means that types that implement Circle must also have an implementation for Shape. Multiple supertraits are separated by +, trait Circle : Shape + PartialEq { }. In an implementation of Circle for a given type T, methods can refer to Shape methods, since the typechecker checks that any type with an implementation of Circle also has an implementation of Shape... discussion of trait "inheritance" in the book discussion of trait super- and subtyping in the new book (note: still to-be-written at the time this episode was published) Marker traits std::marker in the reference: 9 Special Traits Previous episodes on traits: e008: Just like something else e009: Composing a Rustic tune Sponsors Aleksey Pirogov Andreas Fischer Andrew Thompson Austin LeSure Ben Whitley Charlie Egan Chris Palmer Christopher Giffard Daniel Collin Derek Morr Jakub "Limeth" Hlusička Jordan Henderson Jupp Müller Keith Gray Lachlan Collins Luca Schmid Matt Rudder Matthew Piziak Max Jacobson Micael Bergeron Ovidiu Curcan Pascal Hertleif Peter Tillemans Philipp Keller Ralph Giles ("rillian") Raph Levien reddraggone9 Steven Murawski Stuart Hinson Tyler Harper Vesa Kaihlavirta Vlad Bezden William Roe Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Patreon Venmo Dwolla Cash.me Flattr PayPal.me Contact New Rustacean: Twitter: @newrustacean Email: [email protected] Chris Krycho GitHub: chriskrycho Twitter: @chriskrycho

Episode metadata supplied by the publisher feed · Published Feb 28, 2017

Embed this episode

The final pieces of the story for (single-threaded) memory management in Rust. Notes ----- Sometimes, we actually do need to copy types. Wouldn't it be nice if Rust gave us a convenient way to do that when it's convenient, or when the cost is low enough that the ergonomic tradeoffs are worth it? Well, perhaps unsurprisingly, it does! The Copy and Clone traits, plus the Cow type, give us everything we need! Sponsors -------- - Aleksey Pirogov - Andreas Fischer - Andrew Thompson - Austin LeSure - Ben Whitley - Charlie Egan - Chris Palmer - Christopher Giffard - Daniel Collin - Derek Morr - Jakub "Limeth" Hlusička - Jordan Henderson - Jupp Müller - Keith Gray - Lachlan Collins - Luca Schmid - Matt Rudder - Matthew Piziak - [Max Jacobson] - Micael Bergeron - Ovidiu Curcan - Pascal Hertleif - Peter Tillemans - Philipp Keller - Ralph Giles ("rillian") - Raph Levien - reddraggone9 - Steven Murawski - Stuart Hinson - Tyler Harper - Vesa Kaihlavirta - Vlad Bezden - William Roe - Zaki (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) ### Become a sponsor - Patreon.com/newrustacean - Venmo.com/chriskrycho - Dwolla](https://www.dwolla.com/hub/chriskrycho - Cash.me/$chriskrycho - Flattr.com/profile/chriskrycho - PayPal.me/chriskrycho Contact ------- - New Rustacean: + Twitter: @newrustacean + Email: [email protected] - Chris Krycho + GitHub: chriskrycho + Twitter: @chriskrycho

Distinct summary based on available episode metadata or transcript content.

NOW PLAYING

e019: Let's `Clone` a `Cow`

0:00 18:11

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

No similar episodes found.

Frequently Asked Questions

How long is this episode of New Rustacean?

This episode is 18 minutes long.

When was this New Rustacean episode published?

This episode was published on February 28, 2017.

Can I download this New Rustacean episode?

Yes. Use the download control on the episode player to save the publisher-provided media file.
URL copied to clipboard!