How to deal with nested elements

Hi,
Keep working on the serialization/deserialization learning phase.
Serialization is done, it works very fine.
I could go the easy path and read what I did and do it the other way.

I decided to do something else, just for the exercise.
Playground

My issue is that I would like to implement a function deserialize for any node in the tree, that would go down from the current location.
The learning project has multiple files so it's not easy to share via the playground but my issue is that the partial deserialization trait works for flat levels like (String, u32), but not nested ones (String, (u32,u32)).

The issue is that for nested levels, I pass Deserialize<Output = <T0 as Unarchive>::Unarchived>, which ends up confusing the compiler because I end up having ArchivedTuple2<String, String> when I should have ArchivedTuple2<ArchivedString, ArchivedString>.

Adjusting to Deserialize<Output = T0 > just opens a world of issues. Following the compiler advices there won't make it.

So, I am stuck at this stage.

Any help appreciated

After a sleep found out my silly mistake:
Was:

impl<T0, T1> Archive for (T0, T1)
where
        T0: Archive,
        T1: Archive
{
        type Archived = ArchivedTuple2<<T0 as Archive>::Archived, <T1 as Archive>::Archived>;
}

Now is:

impl<T0, T1> Archive for (T0, T1)
where
        T0: Archive,
        T1: Archive
{
        type Archived = ArchivedTuple2<T0, T1>;
}

Project done.

Now let's work on something bigger.