pub struct Remapping {
pub context: Option<String>,
pub name: String,
pub path: String,
}
Expand description
The solidity compiler can only reference files that exist locally on your computer. So importing directly from GitHub (as an example) is not possible.
Let’s imagine you want to use OpenZeppelin’s amazing library of smart contracts,
@openzeppelin/contracts-ethereum-package
:
pragma solidity 0.5.11;
import "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol";
contract MyContract {
using SafeMath for uint256;
...
}
When using solc
, you have to specify the following:
- A
prefix
: the path that’s used in your smart contract, i.e.@openzeppelin/contracts-ethereum-package
- A
target
: the absolute path of the downloaded contracts on your computer
The format looks like this: solc prefix=target ./MyContract.sol
For example:
solc --bin \
@openzeppelin/contracts-ethereum-package=/Your/Absolute/Path/To/@openzeppelin/contracts-ethereum-package \
./MyContract.sol
You can also specify a context
which limits the scope of the remapping to a subset of your
project. This allows you to apply the remapping only to imports located in a specific library or
a specific file. Without a context a remapping is applied to every matching import in all files.
The format is: solc context:prefix=target ./MyContract.sol
Fields§
§context: Option<String>
§name: String
§path: String
Implementations§
Source§impl Remapping
impl Remapping
Sourcepub fn into_relative(self, root: &Path) -> RelativeRemapping
pub fn into_relative(self, root: &Path) -> RelativeRemapping
Convenience function for RelativeRemapping::new
Sourcepub fn strip_prefix(&mut self, base: &Path) -> &mut Remapping
pub fn strip_prefix(&mut self, base: &Path) -> &mut Remapping
Removes the base
path from the remapping
Source§impl Remapping
impl Remapping
Sourcepub fn slash_path(&mut self)
pub fn slash_path(&mut self)
Converts any \\
separators in the path
to /
.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Remapping
impl<'de> Deserialize<'de> for Remapping
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Remapping, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Remapping, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl From<RelativeRemapping> for Remapping
impl From<RelativeRemapping> for Remapping
Source§fn from(r: RelativeRemapping) -> Remapping
fn from(r: RelativeRemapping) -> Remapping
Source§impl From<Remapping> for RelativeRemapping
impl From<Remapping> for RelativeRemapping
Source§fn from(r: Remapping) -> RelativeRemapping
fn from(r: Remapping) -> RelativeRemapping
Source§impl Ord for Remapping
impl Ord for Remapping
Source§impl PartialOrd for Remapping
impl PartialOrd for Remapping
Source§impl Serialize for Remapping
impl Serialize for Remapping
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl Eq for Remapping
impl StructuralPartialEq for Remapping
Auto Trait Implementations§
impl Freeze for Remapping
impl RefUnwindSafe for Remapping
impl Send for Remapping
impl Sync for Remapping
impl Unpin for Remapping
impl UnwindSafe for Remapping
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> 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>
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>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
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>
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>
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>
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>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
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 rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
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);