pub struct Settings {
    pub stop_after: Option<String>,
    pub remappings: Vec<Remapping>,
    pub optimizer: Optimizer,
    pub model_checker: Option<ModelCheckerSettings>,
    pub metadata: Option<SettingsMetadata>,
    pub output_selection: OutputSelection,
    pub evm_version: Option<EvmVersion>,
    pub via_ir: Option<bool>,
    pub debug: Option<DebuggingSettings>,
    pub libraries: Libraries,
}

Fields§

§stop_after: Option<String>

Stop compilation after the given stage. since 0.8.11: only “parsing” is valid here

§remappings: Vec<Remapping>§optimizer: Optimizer§model_checker: Option<ModelCheckerSettings>

Model Checker options.

§metadata: Option<SettingsMetadata>

Metadata settings

§output_selection: OutputSelection

This field can be used to select desired outputs based on file and contract names. If this field is omitted, then the compiler loads and does type checking, but will not generate any outputs apart from errors.

§evm_version: Option<EvmVersion>§via_ir: Option<bool>

Change compilation pipeline to go through the Yul intermediate representation. This is false by default.

§debug: Option<DebuggingSettings>§libraries: Libraries

Addresses of the libraries. If not all libraries are given here, it can result in unlinked objects whose output data is different.

The top level key is the name of the source file where the library is used. If remappings are used, this source file should match the global path after remappings were applied. If this key is an empty string, that refers to a global level.

Implementations§

source§

impl Settings

source

pub fn new(output_selection: impl Into<OutputSelection>) -> Self

Creates a new Settings instance with the given output_selection

source

pub fn sanitized(self, version: &Version) -> Self

Consumes the type and returns a Settings::sanitize version

source

pub fn sanitize(&mut self, version: &Version)

This will remove/adjust values in the settings that are not compatible with this version.

source

pub fn push_all( &mut self, settings: impl IntoIterator<Item = ContractOutputSelection> )

Inserts a set of ContractOutputSelection

source

pub fn with_extra_output( self, settings: impl IntoIterator<Item = ContractOutputSelection> ) -> Self

Inserts a set of ContractOutputSelection

source

pub fn push_output_selection(&mut self, value: impl ToString)

Inserts the value for all files and contracts

use ethers_solc::artifacts::output_selection::ContractOutputSelection;
use ethers_solc::artifacts::Settings;
let mut selection = Settings::default();
selection.push_output_selection(ContractOutputSelection::Metadata);
source

pub fn push_contract_output_selection( &mut self, contracts: impl Into<String>, value: impl ToString )

Inserts the key value pair to the output_selection for all files

If the key already exists, then the value is added to the existing list

source

pub fn set_output_selection( &mut self, values: impl IntoIterator<Item = impl ToString> )

Sets the value for all files and contracts

source

pub fn set_contract_output_selection( &mut self, key: impl Into<String>, values: impl IntoIterator<Item = impl ToString> )

Sets the key to the values pair to the output_selection for all files

This will replace the existing values for key if they’re present

source

pub fn set_via_ir(self, via_ir: bool) -> Self

Sets the ``viaIR` valu

source

pub fn with_via_ir(self) -> Self

Enables viaIR

source

pub fn with_via_ir_minimum_optimization(self) -> Self

Enable viaIR and use the minimum optimization settings

This is useful in the following scenarios:

  • When compiling for test coverage, this can resolve the “stack too deep” error while still giving a relatively accurate source mapping
  • When compiling for test, this can reduce the compilation time
source

pub fn with_ast(self) -> Self

Adds ast to output

source

pub fn with_base_path(self, base: impl AsRef<Path>) -> Self

Strips base from all paths

Trait Implementations§

source§

impl Clone for Settings

source§

fn clone(&self) -> Settings

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Settings

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Settings

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Settings

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<SolcConfig> for Settings

source§

fn from(config: SolcConfig) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Settings

source§

fn eq(&self, other: &Settings) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Settings

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Settings

source§

impl StructuralPartialEq for Settings

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

source§

impl<T> JsonSchemaMaybe for T