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,
|
buf: PathBuf,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PathBuilder {
|
impl<P: AsRef<Path>> From<P> for PathBuilder {
|
||||||
pub fn new<P: AsRef<Path>>(path: P) -> Self {
|
fn from(path: P) -> Self {
|
||||||
PathBuilder {
|
PathBuilder {
|
||||||
buf: path.as_ref().to_path_buf(),
|
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 {
|
pub fn append<P: AsRef<Path>>(&mut self, path: P) -> &mut Self {
|
||||||
self.buf.push(path);
|
self.buf.push(path);
|
||||||
|
@ -37,21 +45,21 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn create_path_builder() {
|
fn create_path_builder() {
|
||||||
let path = PathBuilder::new("test").build();
|
let path = PathBuilder::from("test").build();
|
||||||
|
|
||||||
assert_eq!(path, Path::new("test"))
|
assert_eq!(path, Path::new("test"))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn append_path_to_builder() {
|
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"))
|
assert_eq!(path, Path::new("directory/schema.sql"))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn add_default_extension_for_path() {
|
fn add_default_extension_for_path() {
|
||||||
let path = PathBuilder::new("directory")
|
let path = PathBuilder::from("directory")
|
||||||
.append("schema")
|
.append("schema")
|
||||||
.default_extension("sql")
|
.default_extension("sql")
|
||||||
.build();
|
.build();
|
||||||
|
|
Reference in a new issue