This PR adds a tree structure that represents the Psd layer tree. This PR preserves the existing layer and group interfaces. I added this tree feature because I needed to navigate without knowing the group names in advanced. Also I failed to construct a tree externally and maintain sort order on hierarchy levels that have mixed groups and layers using the existing group and layer interfaces. I needed to construct the tree at decode time to persevere the order. I feel this is a more intuitive interface to navigate the tree. This PR also adds a test that copies one_group_with_two_subgroups test but uses the tree interface to navigate.
@chinedufn let me know your thoughts on the implementation I'm fairly new to rust and not sure if there's any optimizations to make here.
This PR adds a tree structure that represents the Psd layer tree. This PR preserves the existing layer and group interfaces. I added this tree feature because I needed to navigate without knowing the group names in advanced. Also I failed to construct a tree externally and maintain sort order on hierarchy levels that have mixed groups and layers using the existing group and layer interfaces. I needed to construct the tree at decode time to persevere the order. I feel this is a more intuitive interface to navigate the tree. This PR also adds a test that copies
one_group_with_two_subgroups
test but uses the tree interface to navigate.@chinedufn let me know your thoughts on the implementation I'm fairly new to rust and not sure if there's any optimizations to make here.