pod2/src
Eduard S. a7a30176a7
Split Params into base and developer-defined (#458)
I thought it would be nice to have a Predicate for the typed value so that the developer can work with predicates as values comfortably.  Then I noticed that hashing a predicate required `Params` which would have been annoying for converting a `TypedValue::Predicate` to `RawValue` and this led to a small refactor over how `Params` work.

We already had some fields in the `Params` struct that determine compatibility between encoded data.  They can be seen as determining a kind of ABI compatibility.  In general it's better if those parameters don't change so that different circuit configurations can still verify proofs from each other.  So I decided to force those parameters to be constant in the code base and not allow the user of our library to change them.  Many field element serialization/deserialization functions in our code depended on those parameters, and since now they are constant many functions get rid of the `Params` argument, which simplifies the code.  This includes the serialization of a `Predicate` which was required to calculate its hash.
2026-02-02 16:23:32 +01:00
..
backends Split Params into base and developer-defined (#458) 2026-02-02 16:23:32 +01:00
bin Add versioning features (#387) 2025-08-08 09:33:44 -07:00
cache make cache pub (#418) 2025-09-15 11:43:59 +02:00
examples Split Params into base and developer-defined (#458) 2026-02-02 16:23:32 +01:00
frontend Split Params into base and developer-defined (#458) 2026-02-02 16:23:32 +01:00
lang Split Params into base and developer-defined (#458) 2026-02-02 16:23:32 +01:00
middleware Split Params into base and developer-defined (#458) 2026-02-02 16:23:32 +01:00
lib.rs make cache pub (#418) 2025-09-15 11:43:59 +02:00