remainder/layer/
layer_enum.rs1use serde::{Deserialize, Serialize};
5use shared_types::Field;
6
7use crate::layer_enum;
8
9use super::gate::{GateLayer, GateLayerDescription, VerifierGateLayer};
10use super::identity_gate::{IdentityGate, IdentityGateLayerDescription, VerifierIdentityGateLayer};
11use super::matmult::{MatMult, MatMultLayerDescription, VerifierMatMultLayer};
12use super::regular_layer::{RegularLayer, RegularLayerDescription, VerifierRegularLayer};
13
14layer_enum!(Layer, (Regular: RegularLayer<F>), (Gate: GateLayer<F>), (IdentityGate: IdentityGate<F>), (MatMult: MatMult<F>));
15
16#[derive(Serialize, Deserialize, Debug, Hash, Clone)]
17#[serde(bound = "F: Field")]
18pub enum LayerDescriptionEnum<F: Field> {
21 Regular(RegularLayerDescription<F>),
23 Gate(GateLayerDescription<F>),
25 IdentityGate(IdentityGateLayerDescription<F>),
27 MatMult(MatMultLayerDescription<F>),
29}
30
31#[derive(Serialize, Deserialize, Debug)]
32#[serde(bound = "F: Field")]
33pub enum VerifierLayerEnum<F: Field> {
35 Regular(VerifierRegularLayer<F>),
37 Gate(VerifierGateLayer<F>),
39 IdentityGate(VerifierIdentityGateLayer<F>),
41 MatMult(VerifierMatMultLayer<F>),
43}