Trait spielrs_diff::tree::TreeBuilder [−][src]
pub trait TreeBuilder { 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 tree_diff(dir_tree: Vec<Tree>, dir_tree_comp: Vec<Tree>) -> bool; fn get_content_files<'async_trait>(
dir_tree: Vec<Tree>
) -> Pin<Box<dyn Future<Output = Vec<String>> + Send + 'async_trait>>; fn compare_dir_content(
dir_content: Vec<String>,
dir_content_comp: Vec<String>
) -> bool; }
Expand description
Trait for Tree
to create your own TreeBuilder
Required methods
Build a vector of Tree
Compare two tree directories and return true if are different
Get the content by string of all the files in one tree directory
Implementors
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); }
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); }
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", ) ) }
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); }