[][src]Struct spielrs_diff::tree::Tree

pub struct Tree {
    pub name: String,
    pub path: String,
    pub subdir: Option<Vec<Tree>>,
}

Represent a tree directory

Fields

name: Stringpath: Stringsubdir: Option<Vec<Tree>>

Trait Implementations

impl Clone for Tree[src]

impl Debug for Tree[src]

impl PartialEq<Tree> for Tree[src]

impl StructuralPartialEq for Tree[src]

impl TreeBuilder for Tree[src]

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

Build a vector of Tree

Example

use spielrs_diff::tree::{Tree, TreeBuilder};

#[tokio::main]
async fn main() {
    let dir_one = Tree::build_tree("./mocks/dir_one".to_string()).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()).await;
    let dir_two = Tree::build_tree("./mocks/dir_two".to_string()).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()).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()).await;
    let content_one = Tree::get_content_files(dir_one).await;

    let dir_two = Tree::build_tree("./mocks/dir_two".to_string()).await;
    let content_two = Tree::get_content_files(dir_two).await;

    assert_eq!(Tree::compare_dir_content(content_one, content_two), true);
}

Auto Trait Implementations

impl RefUnwindSafe for Tree

impl Send for Tree

impl Sync for Tree

impl Unpin for Tree

impl UnwindSafe for Tree

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.