Struct foundry_compilers::project_util::mock::MockProjectGenerator
source · pub struct MockProjectGenerator { /* private fields */ }
project-util
only.Expand description
Represents a virtual project
Implementations§
source§impl MockProjectGenerator
impl MockProjectGenerator
sourcepub fn new(settings: &MockProjectSettings) -> Self
pub fn new(settings: &MockProjectSettings) -> Self
Create a new project and populate it using the given settings
sourcepub fn create<D: ParsedSource>(paths: &ProjectPathsConfig) -> Result<Self>
pub fn create<D: ParsedSource>(paths: &ProjectPathsConfig) -> Result<Self>
Create a skeleton of a real project
sourcepub fn into_inner(self) -> MockProjectSkeleton
pub fn into_inner(self) -> MockProjectSkeleton
Consumes the type and returns the underlying skeleton
sourcepub fn write_to<L: Language>(
&self,
paths: &ProjectPathsConfig<L>,
version: impl AsRef<str>,
) -> Result<()>
pub fn write_to<L: Language>( &self, paths: &ProjectPathsConfig<L>, version: impl AsRef<str>, ) -> Result<()>
Generate all solidity files and write under the paths config
sourcepub fn remappings_at(&self, root: &Path) -> Vec<Remapping>
pub fn remappings_at(&self, root: &Path) -> Vec<Remapping>
Returns all the remappings for the project for the given root path
sourcepub fn remappings(&self) -> Vec<Remapping>
pub fn remappings(&self) -> Vec<Remapping>
Returns all the remappings for the project
sourcepub fn populate(&mut self, settings: &MockProjectSettings) -> &mut Self
pub fn populate(&mut self, settings: &MockProjectSettings) -> &mut Self
Adds sources and libraries and populates imports based on the settings
sourcepub fn add_source(&mut self) -> &mut Self
pub fn add_source(&mut self) -> &mut Self
Adds a new source file
sourcepub fn add_sources(&mut self, num: usize) -> &mut Self
pub fn add_sources(&mut self, num: usize) -> &mut Self
Adds num
new source files
sourcepub fn add_lib_file(&mut self, lib_id: usize) -> &mut Self
pub fn add_lib_file(&mut self, lib_id: usize) -> &mut Self
Adds a new lib file
sourcepub fn add_lib_files(&mut self, num: usize, lib_id: usize) -> &mut Self
pub fn add_lib_files(&mut self, num: usize, lib_id: usize) -> &mut Self
Adds num
new source files
sourcepub fn add_lib(&mut self, num_files: usize) -> &mut Self
pub fn add_lib(&mut self, num_files: usize) -> &mut Self
Adds a new lib with the number of lib files
sourcepub fn assign_empty_files(&mut self) -> &mut Self
pub fn assign_empty_files(&mut self) -> &mut Self
randomly assign empty file status so that mocked files don’t emit artifacts
sourcepub fn populate_imports(&mut self, settings: &MockProjectSettings) -> &mut Self
pub fn populate_imports(&mut self, settings: &MockProjectSettings) -> &mut Self
Populates the imports of the project
sourcepub fn used_file_ids(&self) -> impl Iterator<Item = usize> + '_
pub fn used_file_ids(&self) -> impl Iterator<Item = usize> + '_
Returns an iterator over all file ids that are source files or imported by source files
In other words, all files that are relevant in order to compile the project’s source files.
sourcepub fn internal_file_ids(&self) -> impl Iterator<Item = usize> + '_
pub fn internal_file_ids(&self) -> impl Iterator<Item = usize> + '_
All ids of internal files
sourcepub fn external_file_ids(&self) -> impl Iterator<Item = usize> + '_
pub fn external_file_ids(&self) -> impl Iterator<Item = usize> + '_
All ids of external files
sourcepub fn modify_file(
&self,
id: usize,
paths: &ProjectPathsConfig,
version: impl AsRef<str>,
) -> Result<PathBuf>
pub fn modify_file( &self, id: usize, paths: &ProjectPathsConfig, version: impl AsRef<str>, ) -> Result<PathBuf>
Modifies the content of the given file
Trait Implementations§
source§impl Default for MockProjectGenerator
impl Default for MockProjectGenerator
source§impl From<MockProjectSkeleton> for MockProjectGenerator
impl From<MockProjectSkeleton> for MockProjectGenerator
source§fn from(inner: MockProjectSkeleton) -> Self
fn from(inner: MockProjectSkeleton) -> Self
Auto Trait Implementations§
impl Freeze for MockProjectGenerator
impl !RefUnwindSafe for MockProjectGenerator
impl !Send for MockProjectGenerator
impl !Sync for MockProjectGenerator
impl Unpin for MockProjectGenerator
impl !UnwindSafe for MockProjectGenerator
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.bright_black());
source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.bright_green());
source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.bright_yellow());
source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.bright_magenta());
source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.bright_white());
source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.on_bright_black());
source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.on_bright_green());
source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.on_bright_yellow());
source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightBlue
.
§Example
println!("{}", value.on_bright_blue());
source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.on_bright_magenta());
source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightCyan
.
§Example
println!("{}", value.on_bright_cyan());
source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.on_bright_white());
source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
source§fn underline(&self) -> Painted<&T>
fn underline(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::Underline
.
§Example
println!("{}", value.underline());
source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::RapidBlink
.
§Example
println!("{}", value.rapid_blink());
source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);