holochain-open-dev / holoom

Tools for weaving blockchain data into holochain
Other
2 stars 1 forks source link

`EntryTypes` and `UnitEntryTypes` are inaccessible in validation crates. #69

Open 8e8b2c opened 3 months ago

8e8b2c commented 3 months ago

I've just encountered a situation where I'd like to in which I like to validate that the recipe_ah of an SignedEvmSigningOffer points to a Recipe record. An imprecise way in which to do this is to attempt to deserialise the entry into the structure of a record. This approach is probably adequate but not flawless in general because the and struct type may overlap sufficiently to give a false positive. Therefore I would like to make a comparison on the records EntryType instead.

This isn't possible with the current crate structure because the EntryTypes and UnitEntryTypes enum are declared in the integrity crate, which is a dependant of the validation crate.

At the same time, we're also discussing separating differing functionality into zomes (see https://github.com/holochain-open-dev/holoom/issues/4). Integrity zomes cannot specify each other as dependencies, therefore we should devise a strategy that allows the enums to be shared between zomes without the zomes beings interdependent.

8e8b2c commented 3 months ago

Partially addressed by this spike: https://github.com/holochain-open-dev/holoom/pull/98

While above solution makes entry defs injectable, it doesn't yet describe how zomes would be made aware of sibling zome indices. That might require some compile time variables.

On the other hand, I haven't yet encountered a strong motivation for separating features into zomes, other than for the sake of making code more modular (which we've achieved anyway).