When returning an immutable reference to a private struct field. (On mobile and used vertical bars instead of a bunch of HTML codes)
When returning an immutable reference to a private struct field. (On mobile and used vertical bars instead of a bunch of HTML codes)
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&str
values. (String
and&str
have different memory representations.) But the choice depends on what you want to do - maybe providing&str
values 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&T
for anyT
so an owned Option wrapper is zero-cost. If the reference pointer is null then Rust interprets that asNone
. Besides you usually want ownership of anOption
so you canmap
it 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.