pub struct CacheEntry {
    pub last_modification_date: u64,
    pub content_hash: String,
    pub source_name: PathBuf,
    pub solc_config: SolcConfig,
    pub imports: BTreeSet<PathBuf>,
    pub version_requirement: Option<String>,
    pub artifacts: BTreeMap<String, BTreeMap<Version, PathBuf>>,
}
Expand description

A CacheEntry in the cache file represents a solidity file

A solidity file can contain several contracts, for every contract a separate Artifact is emitted. so the CacheEntry tracks the artifacts by name. A file can be compiled with multiple solc versions generating version specific artifacts.

Fields§

§last_modification_date: u64

the last modification time of this file

§content_hash: String

hash to identify whether the content of the file changed

§source_name: PathBuf

identifier name see crate::utils::source_name()

§solc_config: SolcConfig

what config was set when compiling this file

§imports: BTreeSet<PathBuf>

fully resolved imports of the file

all paths start relative from the project’s root: src/importedFile.sol

§version_requirement: Option<String>

The solidity version pragma

§artifacts: BTreeMap<String, BTreeMap<Version, PathBuf>>

all artifacts produced for this file

In theory a file can be compiled by different solc versions: A(<=0.8.10) imports C(>0.4.0) and B(0.8.11) imports C(>0.4.0) file C would be compiled twice, with 0.8.10 and 0.8.11, producing two different artifacts.

This map tracks the artifacts by name -> (Version -> PathBuf). This mimics the default artifacts directory structure

Implementations§

Returns the last modified timestamp Duration

Returns the artifact path for the contract name

use ethers_solc::cache::CacheEntry;
entry.find_artifact_path("Greeter");

Reads the last modification date from the file’s metadata

Retains only those artifacts that match the provided versions.

Removes an artifact entry if none of its versions is included in the versions set.

Returns true if the artifacts set contains the given version

Iterator that yields all artifact files and their version

Returns the artifact file for the contract and version pair

Iterator that yields all artifact files and their version

Iterator that yields all artifact files

Mutable iterator over all artifact files

Checks if all artifact files exist

Sets the artifact’s paths to base adjoined to the artifact’s path.

Removes base from the artifact’s path

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

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

Calls U::from(self).

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

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more