refac(core): impl from path trait for builder
This commit is contained in:
parent
49f14be548
commit
cc6899d416
1 changed files with 13 additions and 5 deletions
|
@ -6,12 +6,20 @@ pub struct PathBuilder {
|
|||
buf: PathBuf,
|
||||
}
|
||||
|
||||
impl PathBuilder {
|
||||
pub fn new<P: AsRef<Path>>(path: P) -> Self {
|
||||
impl<P: AsRef<Path>> From<P> for PathBuilder {
|
||||
fn from(path: P) -> Self {
|
||||
PathBuilder {
|
||||
buf: path.as_ref().to_path_buf(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl PathBuilder {
|
||||
pub fn new<P: AsRef<Path>>() -> Self {
|
||||
PathBuilder {
|
||||
buf: PathBuf::new(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn append<P: AsRef<Path>>(&mut self, path: P) -> &mut Self {
|
||||
self.buf.push(path);
|
||||
|
@ -37,21 +45,21 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn create_path_builder() {
|
||||
let path = PathBuilder::new("test").build();
|
||||
let path = PathBuilder::from("test").build();
|
||||
|
||||
assert_eq!(path, Path::new("test"))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn append_path_to_builder() {
|
||||
let path = PathBuilder::new("directory").append("schema.sql").build();
|
||||
let path = PathBuilder::from("directory").append("schema.sql").build();
|
||||
|
||||
assert_eq!(path, Path::new("directory/schema.sql"))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn add_default_extension_for_path() {
|
||||
let path = PathBuilder::new("directory")
|
||||
let path = PathBuilder::from("directory")
|
||||
.append("schema")
|
||||
.default_extension("sql")
|
||||
.build();
|
||||
|
|
Reference in a new issue