pub struct Tree {
pub name: String,
pub path: String,
pub subdir: Option<Vec<Tree>>,
}
Expand description
Represent a tree directory
Fields§
§name: String
§path: String
§subdir: Option<Vec<Tree>>
Trait Implementations§
Source§impl TreeBuilder for Tree
impl TreeBuilder for Tree
Source§fn build_tree<'async_trait>(
dir_path: String,
excluding: Option<Vec<String>>,
recursive_excluding: bool,
) -> Pin<Box<dyn Future<Output = Vec<Tree>> + Send + 'async_trait>>
fn build_tree<'async_trait>( dir_path: String, excluding: Option<Vec<String>>, recursive_excluding: bool, ) -> Pin<Box<dyn Future<Output = Vec<Tree>> + Send + 'async_trait>>
Build a vector of Tree
You can exclude directories or files only from the root path
of the directory or recursively in the building
§Example
use spielrs_diff::tree::{Tree, TreeBuilder};
#[tokio::main]
async fn main() {
let dir_one = Tree::build_tree(
"./mocks/dir_one".to_string(),
Some(vec!["purpose".to_string()]),
true
).await;
println!("{:#?}", dir_one);
}
Source§fn tree_diff(dir_tree: Vec<Tree>, dir_tree_comp: Vec<Tree>) -> bool
fn tree_diff(dir_tree: Vec<Tree>, dir_tree_comp: Vec<Tree>) -> bool
Compare two tree directories and return true if are different
§Example
use spielrs_diff::tree::{Tree, TreeBuilder};
#[tokio::test]
async fn should_return_false_equal_dir_tree() {
let dir_one = Tree::build_tree("./mocks/dir_one".to_string(), None, false).await;
let dir_two = Tree::build_tree("./mocks/dir_two".to_string(), None, false).await;
let diff = Tree::tree_diff(dir_one, dir_two);
assert_eq!(diff, false);
}
Source§fn get_content_files<'async_trait>(
dir_tree: Vec<Tree>,
) -> Pin<Box<dyn Future<Output = Vec<String>> + Send + 'async_trait>>
fn get_content_files<'async_trait>( dir_tree: Vec<Tree>, ) -> Pin<Box<dyn Future<Output = Vec<String>> + Send + 'async_trait>>
Get the content by string of all the files in one tree directory
§Example
use spielrs_diff::tree::{Tree, TreeBuilder};
#[tokio::test]
async fn should_return_all_file_content() {
let dir_one = Tree::build_tree("./mocks/dir_one".to_string(), None, false).await;
let content = Tree::get_content_files(dir_one).await;
assert_eq!(
content,
vec!(
"Hello world",
"print(\"This line will be printed.\")",
"new language",
"fn main() {\n println(\"hello world\")\n}\n",
)
)
}
Source§fn compare_dir_content(
dir_content: Vec<String>,
dir_content_comp: Vec<String>,
) -> bool
fn compare_dir_content( dir_content: Vec<String>, dir_content_comp: Vec<String>, ) -> bool
compare all the content from two tree directories and return true if both are equal
§Example
use spielrs_diff::tree::{Tree, TreeBuilder};
#[tokio::test]
async fn should_return_true_if_both_dir_content_are_equal() {
let dir_one = Tree::build_tree("./mocks/dir_one".to_string(), None, false).await;
let content_one = Tree::get_content_files(dir_one).await;
let dir_two = Tree::build_tree("./mocks/dir_two".to_string(), None, false).await;
let content_two = Tree::get_content_files(dir_two).await;
assert_eq!(Tree::compare_dir_content(content_one, content_two), true);
}
impl StructuralPartialEq for Tree
Auto Trait Implementations§
impl Freeze for Tree
impl RefUnwindSafe for Tree
impl Send for Tree
impl Sync for Tree
impl Unpin for Tree
impl UnwindSafe for Tree
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more