tree-type 0.4.5

Rust macros for creating type-safe filesystem tree structures
Documentation
#![allow(deprecated)]

use tree_type::dir_type;
use tree_type::file_type;
use tree_type::tree_type;

dir_type!(TestDir);
file_type!(TestFile);
tree_type! {
    TestTree {
        file as TestTreeFile
        dir/ as TestTreeDir
    }
}

fn assert_clone<T: Clone>() {}
fn assert_debug<T: std::fmt::Debug>() {}
fn assert_partial_eq<T: PartialEq>() {}
fn assert_eq<T: Eq>() {}
fn assert_partial_ord<T: PartialOrd>() {}
fn assert_ord<T: Ord>() {}

#[test]
fn test_root_traits() {
    assert_clone::<TestTree>();
    assert_debug::<TestTree>();
    assert_partial_eq::<TestTree>();
    assert_eq::<TestTree>();
    assert_partial_ord::<TestTree>();
    assert_ord::<TestTree>();
}

#[test]
fn test_dir_traits() {
    // dir_type
    assert_clone::<TestDir>();
    assert_debug::<TestDir>();
    assert_partial_eq::<TestDir>();
    assert_eq::<TestDir>();
    assert_partial_ord::<TestDir>();
    assert_ord::<TestDir>();
    // tree_type
    assert_clone::<TestTreeDir>();
    assert_debug::<TestTreeDir>();
    assert_partial_eq::<TestTreeDir>();
    assert_eq::<TestTreeDir>();
    assert_partial_ord::<TestTreeDir>();
    assert_ord::<TestTreeDir>();
}

#[test]
fn test_file_traits() {
    // file_type
    assert_clone::<TestFile>();
    assert_debug::<TestFile>();
    assert_partial_eq::<TestFile>();
    assert_eq::<TestFile>();
    assert_partial_ord::<TestFile>();
    assert_ord::<TestFile>();
    // tree_type
    assert_clone::<TestTreeFile>();
    assert_debug::<TestTreeFile>();
    assert_partial_eq::<TestTreeFile>();
    assert_eq::<TestTreeFile>();
    assert_partial_ord::<TestTreeFile>();
    assert_ord::<TestTreeFile>();
}