【发布时间】:2015-12-20 05:57:29
【问题描述】:
以下代码有效,但不确定它是否正确。几个问题:
- 我应该使用
Path还是PathBuf? - 我应该使用
AsRef吗? - 我是否需要
PathBuf::from(path)才能获得结构所拥有的路径?
use std::fmt;
use std::path::PathBuf;
struct Example {
path: PathBuf,
}
impl fmt::Display for Example {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.path.to_str().unwrap())
}
}
impl Example {
fn new(path: &PathBuf) -> Example {
// Do something here with path.
Example {
path: PathBuf::from(path),
}
}
}
fn main() {
let x = Example::new(&PathBuf::from("test.png"));
println!("{}", x);
}
一些上下文:我试图对一个应该知道自己的路径的文件进行高级抽象。也许设计是完全错误的。
【问题讨论】: