snarkvm_synthesizer_debug/
lib.rs

1// Copyright (C) 2019-2023 Aleo Systems Inc.
2// This file is part of the snarkVM library.
3
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at:
7// http://www.apache.org/licenses/LICENSE-2.0
8
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#![forbid(unsafe_code)]
16#![warn(clippy::cast_possible_truncation)]
17// TODO (howardwu): Update the return type on `execute` after stabilizing the interface.
18#![allow(clippy::type_complexity)]
19
20#[macro_use]
21extern crate tracing;
22
23#[cfg(feature = "process")]
24pub use synthesizer_process as process;
25#[cfg(feature = "program")]
26pub use synthesizer_program as program;
27#[cfg(feature = "snark")]
28pub use synthesizer_snark as snark;
29
30#[cfg(feature = "process")]
31pub use crate::process::{Authorization, CallMetrics, Process, Stack, Trace};
32#[cfg(feature = "program")]
33pub use crate::program::{Closure, Command, Finalize, Function, Instruction, Program};
34
35#[cfg(all(feature = "process", feature = "program", feature = "snark"))]
36pub mod vm;
37#[cfg(all(feature = "process", feature = "program", feature = "snark"))]
38pub use vm::*;
39
40pub mod prelude {
41    #[cfg(feature = "process")]
42    pub use crate::process::*;
43    #[cfg(feature = "program")]
44    pub use crate::program::{Closure, Finalize, Function, Instruction, Mapping, Program};
45    #[cfg(feature = "snark")]
46    pub use crate::snark::{Certificate, Proof, ProvingKey, UniversalSRS, VerifyingKey};
47    #[cfg(all(feature = "process", feature = "program", feature = "snark"))]
48    pub use crate::vm::*;
49}