Improve lifetime names and parametrize CircuitDat lifetime.

This commit is contained in:
Alejandro Cabeza Romero 2026-05-06 12:31:06 +02:00
parent 4e826bbe94
commit b2b52bfbd8
No known key found for this signature in database
GPG Key ID: DA3D14AE478030FD
5 changed files with 19 additions and 19 deletions

View File

@ -6,11 +6,11 @@ use crate::ffi::{poc_generate_witness, poc_generate_witness_from_files};
static RAW_CIRCUIT_DAT: &[u8] = include_bytes!(concat!(env!("LBC_POC_LIB_DIR"), "/witness_generator.dat"));
pub struct PocDat;
impl lbc_types::CircuitDat for PocDat {
const DAT: &'static [u8] = RAW_CIRCUIT_DAT;
impl<'dat> lbc_types::CircuitDat<'dat> for PocDat {
const DAT: &'dat [u8] = RAW_CIRCUIT_DAT;
}
pub type PocWitnessInput<'a> = lbc_types::CircuitWitnessInput<'a, PocDat>;
pub type PocWitnessInput<'dat> = lbc_types::CircuitWitnessInput<'dat, PocDat>;
pub fn generate_witness(
input: PocWitnessInput,

View File

@ -6,11 +6,11 @@ use crate::ffi::{pol_generate_witness, pol_generate_witness_from_files};
static RAW_CIRCUIT_DAT: &[u8] = include_bytes!(concat!(env!("LBC_POL_LIB_DIR"), "/witness_generator.dat"));
pub struct PolDat;
impl lbc_types::CircuitDat for PolDat {
const DAT: &'static [u8] = RAW_CIRCUIT_DAT;
impl<'dat> lbc_types::CircuitDat<'dat> for PolDat {
const DAT: &'dat [u8] = RAW_CIRCUIT_DAT;
}
pub type PolWitnessInput<'a> = lbc_types::CircuitWitnessInput<'a, PolDat>;
pub type PolWitnessInput<'dat> = lbc_types::CircuitWitnessInput<'dat, PolDat>;
pub fn generate_witness(
input: PolWitnessInput,

View File

@ -6,11 +6,11 @@ use crate::ffi::{poq_generate_witness, poq_generate_witness_from_files};
static RAW_CIRCUIT_DAT: &[u8] = include_bytes!(concat!(env!("LBC_POQ_LIB_DIR"), "/witness_generator.dat"));
pub struct PoqDat;
impl lbc_types::CircuitDat for PoqDat {
const DAT: &'static [u8] = RAW_CIRCUIT_DAT;
impl<'dat> lbc_types::CircuitDat<'dat> for PoqDat {
const DAT: &'dat [u8] = RAW_CIRCUIT_DAT;
}
pub type PoqWitnessInput<'a> = lbc_types::CircuitWitnessInput<'a, PoqDat>;
pub type PoqWitnessInput<'dat> = lbc_types::CircuitWitnessInput<'dat, PoqDat>;
pub fn generate_witness(
input: PoqWitnessInput,

View File

@ -6,11 +6,11 @@ use crate::ffi::{signature_generate_witness, signature_generate_witness_from_fil
static RAW_CIRCUIT_DAT: &[u8] = include_bytes!(concat!(env!("LBC_SIGNATURE_LIB_DIR"), "/witness_generator.dat"));
pub struct SignatureDat;
impl lbc_types::CircuitDat for SignatureDat {
const DAT: &'static [u8] = RAW_CIRCUIT_DAT;
impl<'dat> lbc_types::CircuitDat<'dat> for SignatureDat {
const DAT: &'dat [u8] = RAW_CIRCUIT_DAT;
}
pub type SignatureWitnessInput<'a> = lbc_types::CircuitWitnessInput<'a, SignatureDat>;
pub type SignatureWitnessInput<'dat> = lbc_types::CircuitWitnessInput<'dat, SignatureDat>;
pub fn generate_witness(
input: SignatureWitnessInput,

View File

@ -1,24 +1,24 @@
use std::ops::Deref;
use crate::native::{WitnessInput, Error};
pub trait CircuitDat {
const DAT: &'static [u8];
pub trait CircuitDat<'dat> {
const DAT: &'dat [u8];
}
pub struct CircuitWitnessInput<'input, Dat> {
inner: WitnessInput<'input>,
pub struct CircuitWitnessInput<'dat, Dat> {
inner: WitnessInput<'dat>,
_phantom: std::marker::PhantomData<Dat>
}
impl<'input, Dat: CircuitDat> CircuitWitnessInput<'input, Dat> {
impl<'dat, Dat: CircuitDat<'dat>> CircuitWitnessInput<'dat, Dat> {
pub fn new(inputs_json: String) -> Result<Self, Error> {
let inner = WitnessInput::new(Dat::DAT, inputs_json)?;
Ok(Self { inner, _phantom: Default::default() })
}
}
impl<'input, Dat> Deref for CircuitWitnessInput<'input, Dat> {
type Target = WitnessInput<'input>;
impl<'dat, Dat> Deref for CircuitWitnessInput<'dat, Dat> {
type Target = WitnessInput<'dat>;
fn deref(&self) -> &Self::Target {
&self.inner