* ryan-summers:
I started implementing general enum support in miniconf, but I think we might need to discuss slightly how it should work :p

For instance, a simple unit test of the node iteration:

```rust

#[derive(PartialEq, Debug, Clone, Default, Tree)]
struct Inner {
    data: u32,
}

#[derive(Debug, Clone, Default, Tree)]
struct Settings {
    #[tree(depth = 1)]
    value: Either,
}

#[derive(Debug, Clone, Default, Tree)]
enum Either {
    #[default]
    Unit,
    NamedTuple(Inner)
}

#[test]
fn iterate_keys() {
    let mut expected_keys = HashSet::from([
        // What would you expect here?
    ]);

    for node in Settings::nodes::<Path<String, '/'>>() {
        let (path, node) = node.unwrap();
        assert!(node.is_leaf());

        assert!(expected_keys.remove(path.as_str()));
    }
    assert!(expected_keys.is_empty());
}
```

Should the `expected_keys` contain all possible cases (`["/value/Unit", "/value/NamedTuple/data"]`)? I would think so, with the non-constructed ones returning absent?