Improve the documentation of Display
and FromStr
, and their interactions by joshtriplett · Pull Request #136687 · rust-lang/rust (original) (raw)
@BurntSushi wrote:
I think I generally agree here, but I do think making
Display
andFromStr
match is good practice where possible. Maybe we can tweak the language here to accommodate that?
I'm not sure if even a description of "good practice" matches widespread community practice. "Where possible" excludes a large number of things, including things like Path/PathBuf, OsStr/OsString, BStr/BString, and many types whose Display
impls just aren't meant for round-tripping at all; the users of many types should typically be using different mechanisms to output and input those types losslessly. In particular, I don't think we should imply that people "should" make a Display
impl that's meant for round-tripping rather than for human consumption. It really depends on the type, which is what the documentation here says.
In addition to that, a Display
implementation also doesn't make any guarantees about valid delimiters; even if FromStr
works on the exact output of Display
, it also requires type-specific knowledge to store and extract that value as part of some larger data using any method other than a length or a universal escaping mechanism. Again, that's going to be up to the type and its documentation.
That said, I can attempt to tweak the language here, without making any new guarantees.