pub struct GeneralOptions {
pub stop_time: Option<Time<TimePrefix>>,
pub seed: Option<u32>,
pub parallelism: Option<u32>,
pub bootstrap_end_time: Option<Time<TimePrefix>>,
pub log_level: Option<LogLevel>,
pub heartbeat_interval: Option<NullableOption<Time<TimePrefix>>>,
pub data_directory: Option<String>,
pub template_directory: Option<NullableOption<String>>,
pub progress: Option<bool>,
pub model_unblocked_syscall_latency: Option<bool>,
}
Fields§
§stop_time: Option<Time<TimePrefix>>
The simulated time at which simulated processes are sent a SIGKILL signal
seed: Option<u32>
Initialize randomness using seed N
parallelism: Option<u32>
How many parallel threads to use to run the simulation. A value of 0 will allow Shadow to choose the number of threads.
bootstrap_end_time: Option<Time<TimePrefix>>
The simulated time that ends Shadow’s high network bandwidth/reliability bootstrap period
log_level: Option<LogLevel>
Log level of output written on stdout. If Shadow was built in release mode, then log messages at level ‘trace’ will always be dropped
heartbeat_interval: Option<NullableOption<Time<TimePrefix>>>
Interval at which to print heartbeat messages
data_directory: Option<String>
Path to store simulation output
template_directory: Option<NullableOption<String>>
Path to recursively copy during startup and use as the data-directory
progress: Option<bool>
Show the simulation progress on stderr
model_unblocked_syscall_latency: Option<bool>
Model syscalls and VDSO functions that don’t block as having some latency. This should have minimal effect on typical simulations, but can be helpful for programs with “busy loops” that otherwise deadlock under Shadow.
Implementations§
source§impl GeneralOptions
impl GeneralOptions
sourcepub fn with_defaults(self, default: Self) -> Self
pub fn with_defaults(self, default: Self) -> Self
Replace unset (None
) values of base
with values from default
.
Trait Implementations§
source§impl Args for GeneralOptions
impl Args for GeneralOptions
source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command
so it can instantiate self
via
FromArgMatches::update_from_arg_matches_mut
Read moresource§impl Clone for GeneralOptions
impl Clone for GeneralOptions
source§fn clone(&self) -> GeneralOptions
fn clone(&self) -> GeneralOptions
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl CommandFactory for GeneralOptions
impl CommandFactory for GeneralOptions
source§impl Debug for GeneralOptions
impl Debug for GeneralOptions
source§impl<'de> Deserialize<'de> for GeneralOptions
impl<'de> Deserialize<'de> for GeneralOptions
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>,
source§impl FromArgMatches for GeneralOptions
impl FromArgMatches for GeneralOptions
source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches
to self
.source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches
to self
.source§impl JsonSchema for GeneralOptions
impl JsonSchema for GeneralOptions
source§fn schema_name() -> String
fn schema_name() -> String
source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moresource§impl Merge for GeneralOptions
impl Merge for GeneralOptions
source§impl Parser for GeneralOptions
impl Parser for GeneralOptions
source§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
source§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
Auto Trait Implementations§
impl Freeze for GeneralOptions
impl RefUnwindSafe for GeneralOptions
impl Send for GeneralOptions
impl Sync for GeneralOptions
impl Unpin for GeneralOptions
impl UnwindSafe for GeneralOptions
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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 more