Restrict the public interface of the ACVM
Closed this issue · 0 comments
TomAFrench commented
Problem
We currently have much of the internals of the ACVM as public. There's no need for users to be able to instantiate the CSATTransformer
. Why whould we expose the sorting network used by the Directive::PermutationSort
solver?
This causes unnecessary breaking changes if we refactor code.
Happy Case
We should define the main APIs we want to support, keep these public and then make everything else private.
As far as I see it, we want to keep pwg::solve()
and compiler::compile()
(and anything necessary to call them) but nothing else needs to be exported from the ACVM.
Alternatives Considered
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response