Background
In ibc-rs, to accommodate users who wish to leverage a custom HostFunctionsProvider (Related issue) for utilizing custom hashing functions in verifying their MerkleProof, the approaches there involve introducing <H: HostFunctionsProvider> as a generic type and making our Tendermint ClientState definition generic over H. However, since that ClientState relies on Clone and Debug traits in various parts of the ibc-rs implementation, The lack of these derivations on the HostFunctionsManager limits our options.
Proposal
At min, derive Clone and Debug on HostFunctionsManager, and see if it makes sense to require these two for the HostFunctionsProvider trait as well.
Background
In
ibc-rs, to accommodate users who wish to leverage a customHostFunctionsProvider(Related issue) for utilizing custom hashing functions in verifying theirMerkleProof, the approaches there involve introducing<H: HostFunctionsProvider>as a generic type and making our TendermintClientStatedefinition generic overH. However, since thatClientStaterelies onCloneandDebugtraits in various parts of the ibc-rs implementation, The lack of these derivations on theHostFunctionsManagerlimits our options.Proposal
At min, derive
CloneandDebugonHostFunctionsManager, and see if it makes sense to require these two for theHostFunctionsProvidertrait as well.