Struct ethers_solc::Artifacts
source · pub struct Artifacts<T>(pub FileToContractsMap<Vec<ArtifactFile<T>>>);
Expand description
Represents a set of Artifacts
Tuple Fields§
§0: FileToContractsMap<Vec<ArtifactFile<T>>>
Implementations§
source§impl<T> Artifacts<T>
impl<T> Artifacts<T>
sourcepub fn slash_paths(&mut self)
pub fn slash_paths(&mut self)
Converts all \\
separators in all paths to /
pub fn into_inner(self) -> FileToContractsMap<Vec<ArtifactFile<T>>>
sourcepub fn join_all(&mut self, root: impl AsRef<Path>) -> &mut Self
pub fn join_all(&mut self, root: impl AsRef<Path>) -> &mut Self
Sets the artifact files location to root
adjoined to self.file
.
sourcepub fn strip_prefix_all(&mut self, base: impl AsRef<Path>) -> &mut Self
pub fn strip_prefix_all(&mut self, base: impl AsRef<Path>) -> &mut Self
Removes base
from all artifacts
sourcepub fn find_artifact(
&self,
file: &str,
contract_name: &str,
version: &Version
) -> Option<&ArtifactFile<T>>
pub fn find_artifact(
&self,
file: &str,
contract_name: &str,
version: &Version
) -> Option<&ArtifactFile<T>>
Returns the Artifact
with matching file, contract name and version
sourcepub fn has_contract_artifact(
&self,
contract_name: &str,
artifact_path: &Path
) -> bool
pub fn has_contract_artifact(
&self,
contract_name: &str,
artifact_path: &Path
) -> bool
Returns true if this type contains an artifact with the given path for the given contract
sourcepub fn has_artifact(&self, artifact_path: &Path) -> bool
pub fn has_artifact(&self, artifact_path: &Path) -> bool
Returns true if this type contains an artifact with the given path
sourcepub fn artifact_files(&self) -> impl Iterator<Item = &ArtifactFile<T>>
pub fn artifact_files(&self) -> impl Iterator<Item = &ArtifactFile<T>>
Iterate over all artifact files
sourcepub fn artifact_files_mut(
&mut self
) -> impl Iterator<Item = &mut ArtifactFile<T>>
pub fn artifact_files_mut(
&mut self
) -> impl Iterator<Item = &mut ArtifactFile<T>>
Iterate over all artifact files
sourcepub fn into_artifacts<O: ArtifactOutput<Artifact = T>>(
self
) -> impl Iterator<Item = (ArtifactId, T)>
pub fn into_artifacts<O: ArtifactOutput<Artifact = T>>(
self
) -> impl Iterator<Item = (ArtifactId, T)>
Returns an iterator over all artifacts and <file name:contract name>
sourcepub fn into_artifacts_with_files(
self
) -> impl Iterator<Item = (String, String, T)>
pub fn into_artifacts_with_files(
self
) -> impl Iterator<Item = (String, String, T)>
Returns an iterator that yields the tuple (file, contract name, artifact)
NOTE this returns the path as is
sourcepub fn into_stripped_file_prefixes(self, base: impl AsRef<Path>) -> Self
pub fn into_stripped_file_prefixes(self, base: impl AsRef<Path>) -> Self
Strips the given prefix from all artifact file paths to make them relative to the given
root
argument
sourcepub fn find_first(&self, contract_name: impl AsRef<str>) -> Option<&T>
pub fn find_first(&self, contract_name: impl AsRef<str>) -> Option<&T>
Finds the first artifact T
with a matching contract name
sourcepub fn find(&self, path: impl AsRef<str>, contract: impl AsRef<str>) -> Option<&T>
pub fn find(&self, path: impl AsRef<str>, contract: impl AsRef<str>) -> Option<&T>
Finds the artifact with matching path and name
sourcepub fn remove(
&mut self,
path: impl AsRef<str>,
contract: impl AsRef<str>
) -> Option<T>
pub fn remove(
&mut self,
path: impl AsRef<str>,
contract: impl AsRef<str>
) -> Option<T>
Removes the artifact with matching file and name
sourcepub fn remove_first(&mut self, contract_name: impl AsRef<str>) -> Option<T>
pub fn remove_first(&mut self, contract_name: impl AsRef<str>) -> Option<T>
Removes the first artifact T
with a matching contract name
Note: if there are multiple artifacts (contract compiled with different solc) then this returns the first artifact in that set
Methods from Deref<Target = FileToContractsMap<Vec<ArtifactFile<T>>>>§
1.0.0 · sourcepub fn get<Q>(&self, key: &Q) -> Option<&V>where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn get<Q>(&self, key: &Q) -> Option<&V>where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns a reference to the value corresponding to the key.
The key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.get(&1), Some(&"a"));
assert_eq!(map.get(&2), None);
1.40.0 · sourcepub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns the key-value pair corresponding to the supplied key.
The supplied key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.get_key_value(&1), Some((&1, &"a")));
assert_eq!(map.get_key_value(&2), None);
1.66.0 · sourcepub fn first_key_value(&self) -> Option<(&K, &V)>where
K: Ord,
pub fn first_key_value(&self) -> Option<(&K, &V)>where
K: Ord,
Returns the first key-value pair in the map. The key in this pair is the minimum key in the map.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
assert_eq!(map.first_key_value(), None);
map.insert(1, "b");
map.insert(2, "a");
assert_eq!(map.first_key_value(), Some((&1, &"b")));
1.66.0 · sourcepub fn last_key_value(&self) -> Option<(&K, &V)>where
K: Ord,
pub fn last_key_value(&self) -> Option<(&K, &V)>where
K: Ord,
Returns the last key-value pair in the map. The key in this pair is the maximum key in the map.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "b");
map.insert(2, "a");
assert_eq!(map.last_key_value(), Some((&2, &"a")));
1.0.0 · sourcepub fn contains_key<Q>(&self, key: &Q) -> boolwhere
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn contains_key<Q>(&self, key: &Q) -> boolwhere
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns true
if the map contains a value for the specified key.
The key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.contains_key(&1), true);
assert_eq!(map.contains_key(&2), false);
1.17.0 · sourcepub fn range<T, R>(&self, range: R) -> Range<'_, K, V>where
T: Ord + ?Sized,
K: Borrow<T> + Ord,
R: RangeBounds<T>,
pub fn range<T, R>(&self, range: R) -> Range<'_, K, V>where
T: Ord + ?Sized,
K: Borrow<T> + Ord,
R: RangeBounds<T>,
Constructs a double-ended iterator over a sub-range of elements in the map.
The simplest way is to use the range syntax min..max
, thus range(min..max)
will
yield elements from min (inclusive) to max (exclusive).
The range may also be entered as (Bound<T>, Bound<T>)
, so for example
range((Excluded(4), Included(10)))
will yield a left-exclusive, right-inclusive
range from 4 to 10.
Panics
Panics if range start > end
.
Panics if range start == end
and both bounds are Excluded
.
Examples
Basic usage:
use std::collections::BTreeMap;
use std::ops::Bound::Included;
let mut map = BTreeMap::new();
map.insert(3, "a");
map.insert(5, "b");
map.insert(8, "c");
for (&key, &value) in map.range((Included(&4), Included(&8))) {
println!("{key}: {value}");
}
assert_eq!(Some((&5, &"b")), map.range(4..).next());
1.0.0 · sourcepub fn iter(&self) -> Iter<'_, K, V>
pub fn iter(&self) -> Iter<'_, K, V>
Gets an iterator over the entries of the map, sorted by key.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(3, "c");
map.insert(2, "b");
map.insert(1, "a");
for (key, value) in map.iter() {
println!("{key}: {value}");
}
let (first_key, first_value) = map.iter().next().unwrap();
assert_eq!((*first_key, *first_value), (1, "a"));
1.0.0 · sourcepub fn keys(&self) -> Keys<'_, K, V>
pub fn keys(&self) -> Keys<'_, K, V>
Gets an iterator over the keys of the map, in sorted order.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut a = BTreeMap::new();
a.insert(2, "b");
a.insert(1, "a");
let keys: Vec<_> = a.keys().cloned().collect();
assert_eq!(keys, [1, 2]);
1.0.0 · sourcepub fn values(&self) -> Values<'_, K, V>
pub fn values(&self) -> Values<'_, K, V>
Gets an iterator over the values of the map, in order by key.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut a = BTreeMap::new();
a.insert(1, "hello");
a.insert(2, "goodbye");
let values: Vec<&str> = a.values().cloned().collect();
assert_eq!(values, ["hello", "goodbye"]);
Trait Implementations§
source§impl<T> AsMut<BTreeMap<String, BTreeMap<String, Vec<ArtifactFile<T>, Global>, Global>, Global>> for Artifacts<T>
impl<T> AsMut<BTreeMap<String, BTreeMap<String, Vec<ArtifactFile<T>, Global>, Global>, Global>> for Artifacts<T>
source§fn as_mut(&mut self) -> &mut FileToContractsMap<Vec<ArtifactFile<T>>>
fn as_mut(&mut self) -> &mut FileToContractsMap<Vec<ArtifactFile<T>>>
source§impl<T> AsRef<BTreeMap<String, BTreeMap<String, Vec<ArtifactFile<T>, Global>, Global>, Global>> for Artifacts<T>
impl<T> AsRef<BTreeMap<String, BTreeMap<String, Vec<ArtifactFile<T>, Global>, Global>, Global>> for Artifacts<T>
source§fn as_ref(&self) -> &FileToContractsMap<Vec<ArtifactFile<T>>>
fn as_ref(&self) -> &FileToContractsMap<Vec<ArtifactFile<T>>>
source§impl<T> From<BTreeMap<String, BTreeMap<String, Vec<ArtifactFile<T>, Global>, Global>, Global>> for Artifacts<T>
impl<T> From<BTreeMap<String, BTreeMap<String, Vec<ArtifactFile<T>, Global>, Global>, Global>> for Artifacts<T>
source§fn from(m: FileToContractsMap<Vec<ArtifactFile<T>>>) -> Self
fn from(m: FileToContractsMap<Vec<ArtifactFile<T>>>) -> Self
source§impl<'a, T> IntoIterator for &'a Artifacts<T>
impl<'a, T> IntoIterator for &'a Artifacts<T>
source§impl<T> IntoIterator for Artifacts<T>
impl<T> IntoIterator for Artifacts<T>
source§impl<T: PartialEq> PartialEq<Artifacts<T>> for Artifacts<T>
impl<T: PartialEq> PartialEq<Artifacts<T>> for Artifacts<T>
impl<T: Eq> Eq for Artifacts<T>
impl<T> StructuralEq for Artifacts<T>
impl<T> StructuralPartialEq for Artifacts<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Artifacts<T>where
T: RefUnwindSafe,
impl<T> Send for Artifacts<T>where
T: Send,
impl<T> Sync for Artifacts<T>where
T: Sync,
impl<T> Unpin for Artifacts<T>
impl<T> UnwindSafe for Artifacts<T>where
T: RefUnwindSafe,
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.