* Export type alias for bulletproof backend fields
Also, keep bulletproof stuff namespaced to a `bulletproofs` module.
* Change sudoku to use pub over const
* Docs updates
* Rename / clean up sudoku
* Export `Proof` type
Basically required for being able to deserialize a proof
* Add zkp/serde workspace example
* Drive by cleaning
* Exports necessary for gadget impls
* Rename compute_inputs to compute_hidden_inputs
* Add prove/verify builders
* Export the builder types
This isnt strictly necessary but it would be weird for these to not show up in the cargo docs
* Clippy fix
* Add helper .compile() & .runtime() methods to fhe prog fns
I do wonder if these should be defined in a separate trait, just so that they don't live next to the more internal functions in documentation.
* Use new swag to simplify the front-facing api docs example
* Add some whitespace
* Switch to an extension trait
* Add an extension to ZkpProgramFn
* Take an owned ZkpBackend, rather than reference
Its typical to have the caller handle cloning, rather than taking a reference, requiring Clone impl, and forcing clone. Plus, as of now the only backend is a zero size null struct, so nothing to be gained by using a reference. It also just looks weird to always pass `&BulletproofsBackend::new()`
* Update sudoku to use new swag
* Target second attribute in multi attribute error
* Enforce ordering zkp inputs: constants,public,private
Honestly this feels a little unnatural to me. Might want to reverse: private, public, constant and then change all the prove/verify methods to that ordering
* Build whitelist example in CI
* Reorder constant->public->private to private->public->constant
* Fix trailing ws
* Fix example
* Make .runtime() more consistent with .compile()
* Get rid of some boilerplate impls
* Add custom zkp type example
* Move example run checks into example tests
Should speed up CI a bit
* Change whitelist -> allowlist