mirror of
https://github.com/saymrwulf/pasta_curves-source.git
synced 2026-09-06 20:20:34 +00:00
Return results from assigned regions
This makes it easier to pass variables out of a region.
This commit is contained in:
parent
db0477a606
commit
3fc245343e
2 changed files with 10 additions and 10 deletions
|
|
@ -154,9 +154,9 @@ pub trait Layouter<C: Chip> {
|
||||||
/// region.assign_advice(self.config.a, offset, || { Some(value)});
|
/// region.assign_advice(self.config.a, offset, || { Some(value)});
|
||||||
/// });
|
/// });
|
||||||
/// ```
|
/// ```
|
||||||
fn assign_region<A, N, NR>(&mut self, name: N, assignment: A) -> Result<(), Error>
|
fn assign_region<A, AR, N, NR>(&mut self, name: N, assignment: A) -> Result<AR, Error>
|
||||||
where
|
where
|
||||||
A: FnMut(Region<'_, C>) -> Result<(), Error>,
|
A: FnMut(Region<'_, C>) -> Result<AR, Error>,
|
||||||
N: Fn() -> NR,
|
N: Fn() -> NR,
|
||||||
NR: Into<String>;
|
NR: Into<String>;
|
||||||
|
|
||||||
|
|
@ -202,9 +202,9 @@ impl<'a, C: Chip, L: Layouter<C> + 'a> Layouter<C> for NamespacedLayouter<'a, C,
|
||||||
self.0.config()
|
self.0.config()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn assign_region<A, N, NR>(&mut self, name: N, assignment: A) -> Result<(), Error>
|
fn assign_region<A, AR, N, NR>(&mut self, name: N, assignment: A) -> Result<AR, Error>
|
||||||
where
|
where
|
||||||
A: FnMut(Region<'_, C>) -> Result<(), Error>,
|
A: FnMut(Region<'_, C>) -> Result<AR, Error>,
|
||||||
N: Fn() -> NR,
|
N: Fn() -> NR,
|
||||||
NR: Into<String>,
|
NR: Into<String>,
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -106,9 +106,9 @@ impl<'a, C: Chip, CS: Assignment<C::Field> + 'a> Layouter<C> for SingleChip<'a,
|
||||||
&self.config
|
&self.config
|
||||||
}
|
}
|
||||||
|
|
||||||
fn assign_region<A, N, NR>(&mut self, name: N, mut assignment: A) -> Result<(), Error>
|
fn assign_region<A, AR, N, NR>(&mut self, name: N, mut assignment: A) -> Result<AR, Error>
|
||||||
where
|
where
|
||||||
A: FnMut(Region<'_, C>) -> Result<(), Error>,
|
A: FnMut(Region<'_, C>) -> Result<AR, Error>,
|
||||||
N: Fn() -> NR,
|
N: Fn() -> NR,
|
||||||
NR: Into<String>,
|
NR: Into<String>,
|
||||||
{
|
{
|
||||||
|
|
@ -136,13 +136,13 @@ impl<'a, C: Chip, CS: Assignment<C::Field> + 'a> Layouter<C> for SingleChip<'a,
|
||||||
|
|
||||||
self.cs.enter_region(name);
|
self.cs.enter_region(name);
|
||||||
let mut region = SingleChipRegion::new(self, region_index);
|
let mut region = SingleChipRegion::new(self, region_index);
|
||||||
{
|
let result = {
|
||||||
let region: &mut dyn RegionLayouter<C> = &mut region;
|
let region: &mut dyn RegionLayouter<C> = &mut region;
|
||||||
assignment(region.into())?;
|
assignment(region.into())
|
||||||
}
|
}?;
|
||||||
self.cs.exit_region();
|
self.cs.exit_region();
|
||||||
|
|
||||||
Ok(())
|
Ok(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_root(&mut self) -> &mut Self::Root {
|
fn get_root(&mut self) -> &mut Self::Root {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue