@@ -6,6 +6,7 @@ use serde::{Deserialize, Serialize};
6
6
/// Inputs for the Brillig VM. These are the initial inputs
7
7
/// that the Brillig VM will use to start.
8
8
#[ derive( Clone , PartialEq , Eq , Serialize , Deserialize , Debug , Hash ) ]
9
+ #[ cfg_attr( feature = "arb" , derive( proptest_derive:: Arbitrary ) ) ]
9
10
pub enum BrilligInputs < F > {
10
11
Single ( Expression < F > ) ,
11
12
Array ( Vec < Expression < F > > ) ,
@@ -15,6 +16,7 @@ pub enum BrilligInputs<F> {
15
16
/// Outputs for the Brillig VM. Once the VM has completed
16
17
/// execution, this will be the object that is returned.
17
18
#[ derive( Clone , PartialEq , Eq , Serialize , Deserialize , Debug , Hash ) ]
19
+ #[ cfg_attr( feature = "arb" , derive( proptest_derive:: Arbitrary ) ) ]
18
20
pub enum BrilligOutputs {
19
21
Simple ( Witness ) ,
20
22
Array ( Vec < Witness > ) ,
@@ -24,6 +26,7 @@ pub enum BrilligOutputs {
24
26
/// a full Brillig function to be executed by the Brillig VM.
25
27
/// This is stored separately on a program and accessed through a [BrilligPointer].
26
28
#[ derive( Clone , PartialEq , Eq , Serialize , Deserialize , Default , Debug , Hash ) ]
29
+ #[ cfg_attr( feature = "arb" , derive( proptest_derive:: Arbitrary ) ) ]
27
30
pub struct BrilligBytecode < F > {
28
31
pub bytecode : Vec < BrilligOpcode < F > > ,
29
32
}
@@ -32,6 +35,7 @@ pub struct BrilligBytecode<F> {
32
35
#[ derive(
33
36
Clone , Debug , PartialEq , Eq , Serialize , Deserialize , Hash , Copy , Default , PartialOrd , Ord ,
34
37
) ]
38
+ #[ cfg_attr( feature = "arb" , derive( proptest_derive:: Arbitrary ) ) ]
35
39
#[ serde( transparent) ]
36
40
pub struct BrilligFunctionId ( pub u32 ) ;
37
41
0 commit comments