Skip to main content

foundry_config/
vyper.rs

1//! Vyper specific configuration types.
2
3use foundry_compilers::artifacts::vyper::{
4    VyperOptimizationLevel, VyperOptimizationMode, VyperVenomSettings,
5};
6use serde::{Deserialize, Serialize};
7use std::path::PathBuf;
8
9#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
10pub struct VyperConfig {
11    /// Vyper optimization mode.
12    #[serde(default, skip_serializing_if = "Option::is_none")]
13    pub optimize: Option<VyperOptimizationMode>,
14    /// Vyper numeric optimization level.
15    #[serde(default, alias = "optLevel", skip_serializing_if = "Option::is_none")]
16    pub opt_level: Option<VyperOptimizationLevel>,
17    /// The Vyper instance to use if any.
18    #[serde(default, skip_serializing_if = "Option::is_none")]
19    pub path: Option<PathBuf>,
20    /// Enables Vyper's experimental code generation pipeline.
21    #[serde(default, skip_serializing_if = "Option::is_none")]
22    pub experimental_codegen: Option<bool>,
23    /// Enables Vyper's Venom pipeline through the `venomExperimental` standard-json setting.
24    #[serde(default, skip_serializing_if = "Option::is_none")]
25    pub venom_experimental: Option<bool>,
26    /// Compile in debug mode.
27    #[serde(default, skip_serializing_if = "Option::is_none")]
28    pub debug: Option<bool>,
29    /// Re-enable the Vyper decimal type.
30    #[serde(default, skip_serializing_if = "Option::is_none")]
31    pub enable_decimals: Option<bool>,
32    /// Fine-grained Venom optimizer settings.
33    #[serde(default, skip_serializing_if = "Option::is_none")]
34    pub venom: Option<VyperVenomSettings>,
35}