pub struct RunConfigOpts {
pub queues: Arc<QueuesConfig>,
pub working_directory_pool: Arc<WorkingDirectoryPoolOpts>,
pub target_pre_exec_bash_code: Option<Arc<str>>,
pub targets: Vec<Arc<BenchmarkingTarget>>,
pub job_template_lists: BTreeMap<KString, Vec<JobTemplateOpts>>,
pub benchmarking_job_settings: Arc<BenchmarkingJobSettingsOpts>,
pub eval_settings: Arc<EvalSettings>,
pub remote_repository: RemoteRepositoryOpts,
pub output_dir: OutputDirOpts,
pub versioned_datasets_base_dir: Option<Arc<TildePath<PathBuf>>>,
pub commit_tags_regex: Option<SerializableRegex>,
/* private fields */
}Expand description
Direct representation of the evobench config file
Fields§
§queues: Arc<QueuesConfig>§working_directory_pool: Arc<WorkingDirectoryPoolOpts>§target_pre_exec_bash_code: Option<Arc<str>>Bash shell code to run before executing any of the
targets. E.g. to source a Python virtual env or defining env
variables. set -meuo pipefail and IFS= are
enabled. Execution flow must leave at the end of the string.
targets: Vec<Arc<BenchmarkingTarget>>What command to run on the target project to execute a benchmarking run; the env variables configured in CustomParameters are set when running this command.
job_template_lists: BTreeMap<KString, Vec<JobTemplateOpts>>A set of named job template lists, referred to by name from
remote_branch_names_for_poll or from the command line
(evobench insert templates). Each job template in a
list generates a separate benchmark run for each commit that
is inserted. The order defines in which order the jobs are
inserted (which means the job generated from the first
template is scheduled first, at least if priorities are the
same). priority is added to whatever priority the inserter
asks for, and initial_boost is added to the job for its
first run only.
benchmarking_job_settings: Arc<BenchmarkingJobSettingsOpts>Each job receives a copy of these settings after expansion
eval_settings: Arc<EvalSettings>Settings for calling evobench-eval
remote_repository: RemoteRepositoryOptsInformation on the remote repository of the target project
output_dir: OutputDirOptsWhere the output files should be placed.
versioned_datasets_base_dir: Option<Arc<TildePath<PathBuf>>>Optional directory holding directories whose name is taken
from the (optional, depending on the configuration) DATASET
custom variable (hacky to mis-use a custom variable for
this?), inside which are directories named after git revision
names (tags or commit ids), the latest which is an ancestor or
the commit itself to be benchmarked,
i.e. $versioned_datasets_base_dir/$DATASET/$best_rev_name. The
resolved path (only when both this option and DATASET are
provided) is stored in the DATASET_DIR env var when calling
the benchmarking entry point of the client app. Supports ~/
for specifying the home directory.
A regular expression matching those Git tags that should be
passed to the target in the COMMIT_TAGS env variable (as
comma-separated strings). By default, all tags are passed.
Implementations§
Source§impl RunConfigOpts
impl RunConfigOpts
Sourcepub fn check(
&self,
global_app_state_dir: &GlobalAppStateDir,
) -> Result<RunConfig>
pub fn check( &self, global_app_state_dir: &GlobalAppStateDir, ) -> Result<RunConfig>
Don’t take ownership since RunConfigWithReload can’t give it
Trait Implementations§
Source§impl Debug for RunConfigOpts
impl Debug for RunConfigOpts
Source§impl DefaultConfigPath for RunConfigOpts
impl DefaultConfigPath for RunConfigOpts
Source§fn default_config_file_name_without_suffix() -> Result<Option<ProperFilename>>
fn default_config_file_name_without_suffix() -> Result<Option<ProperFilename>>
ConfigFile::load_config tries this file name, together with
a list of file name extensions, appended to the paths from
default_config_dirs(), and one path is then expected to
exist in a dir, if none the next is tried, or its or_else
fallback is called. In the case of ConfigDir::Home, a dot is
prepended to the file name.fn default_config_dirs() -> SliceOrBox<'static, ConfigDir>
Source§impl<'de> Deserialize<'de> for RunConfigOpts
impl<'de> Deserialize<'de> for RunConfigOpts
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for RunConfigOpts
impl RefUnwindSafe for RunConfigOpts
impl Send for RunConfigOpts
impl Sync for RunConfigOpts
impl Unpin for RunConfigOpts
impl UnwindSafe for RunConfigOpts
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> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
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);