[][src]Trait spielrs_diff::tree::TreeBuilder

pub trait TreeBuilder {
#[must_use]    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;
#[must_use] 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; }

Trait for Tree to create your own TreeBuilder

Required methods

#[must_use]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

fn tree_diff(dir_tree: Vec<Tree>, dir_tree_comp: Vec<Tree>) -> bool

Compare two tree directories and return true if are different

#[must_use]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

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

Loading content...

Implementors

impl TreeBuilder for Tree[src]

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>>
[src]

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);
}

fn tree_diff(dir_tree: Vec<Tree>, dir_tree_comp: Vec<Tree>) -> bool[src]

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);
}

fn get_content_files<'async_trait>(
    dir_tree: Vec<Tree>
) -> Pin<Box<dyn Future<Output = Vec<String>> + Send + 'async_trait>>
[src]

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",
        )
    )
}

fn compare_dir_content(
    dir_content: Vec<String>,
    dir_content_comp: Vec<String>
) -> bool
[src]

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);
}
Loading content...