10
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 13 Aug 2023
10 points (91.7% liked)
Rust
7718 readers
76 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 2 years ago
MODERATORS
You may be better off with
&[String]as a read-only view ofVec. To get&[&str]I think you need to create a new collection to hold the&strvalues. (Stringand&strhave different memory representations.) But the choice depends on what you want to do - maybe providing&strvalues adds a convenience that is worth creating a second collection.For the Option case I would go with
Option<&[String]>. My understanding is thatOption<&T>is the same size as&Tfor anyTso an owned Option wrapper is zero-cost. If the reference pointer is null then Rust interprets that asNone. Besides you usually want ownership of anOptionso you canmapit or whatever else you want to do.Right, I want the convenience of &[&str] , but if it requires creating a second collection then I think &[String] is better. Use cases that require &str can just map to as_str.