tree-type-proc-macro 0.1.1

Procedural macros for tree-type crate
Documentation
use tempfile::TempDir;
use tree_type_proc_macro::tree_type;

tree_type! {
    MethodTest {
        test_file,
        test_dir/ {
            nested
        }
    }
}

#[test]
fn test_file_methods_exist() {
    let tempdir = TempDir::new().unwrap();
    let root = MethodTest::new(tempdir.path());
    let file = root.test_file();

    // Verify all essential file methods compile
    let _ = file.as_path();
    let _ = file.exists();
    let _ = file.read();
    let _ = file.read_to_string();
    let _ = file.write("test");
    let _ = file.remove();
    let _ = file.fs_metadata();
}

#[test]
fn test_dir_methods_exist() {
    let tempdir = TempDir::new().unwrap();
    let root = MethodTest::new(tempdir.path());
    let dir = root.test_dir();

    // Verify all essential dir methods compile
    let _ = dir.as_path();
    let _ = dir.exists();
    let _ = dir.create();
    let _ = dir.create_all();
    let _ = dir.remove();
    let _ = dir.remove_all();
    let _ = dir.read_dir();
    let _ = dir.fs_metadata();
    let _ = dir.validate();
    let _ = dir.setup();
    let _ = dir.ensure();
}

#[test]
fn test_root_methods_exist() {
    let tempdir = TempDir::new().unwrap();
    let root = MethodTest::new(tempdir.path());

    // Verify root struct methods compile
    let _ = root.as_path();
    let _ = root.validate();
    let _ = root.setup();
    let _ = root.ensure();
}