pub struct Runner<C: SubstrateCli> { /* private fields */ }Expand description
A Substrate CLI runtime that can be used to run a node or a command
Implementations§
source§impl<C: SubstrateCli> Runner<C>
impl<C: SubstrateCli> Runner<C>
sourcepub fn new(config: Configuration, tokio_runtime: Runtime) -> Result<Runner<C>>
pub fn new(config: Configuration, tokio_runtime: Runtime) -> Result<Runner<C>>
Create a new runtime with the command provided in argument
Examples found in repository?
src/lib.rs (line 203)
195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
fn create_runner<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
&self,
command: &T,
) -> error::Result<Runner<Self>> {
let tokio_runtime = build_runtime()?;
let config = command.create_configuration(self, tokio_runtime.handle().clone())?;
command.init(&Self::support_url(), &Self::impl_version(), |_, _| {}, &config)?;
Runner::new(config, tokio_runtime)
}
/// Create a runner for the command provided in argument. The `logger_hook` can be used to setup
/// a custom profiler or update the logger configuration before it is initialized.
///
/// Example:
/// ```
/// use sc_tracing::{SpanDatum, TraceEvent};
/// struct TestProfiler;
///
/// impl sc_tracing::TraceHandler for TestProfiler {
/// fn handle_span(&self, sd: &SpanDatum) {}
/// fn handle_event(&self, _event: &TraceEvent) {}
/// };
///
/// fn logger_hook() -> impl FnOnce(&mut sc_cli::LoggerBuilder, &sc_service::Configuration) -> () {
/// |logger_builder, config| {
/// logger_builder.with_custom_profiling(Box::new(TestProfiler{}));
/// }
/// }
/// ```
fn create_runner_with_logger_hook<T: CliConfiguration, F>(
&self,
command: &T,
logger_hook: F,
) -> error::Result<Runner<Self>>
where
F: FnOnce(&mut LoggerBuilder, &Configuration),
{
let tokio_runtime = build_runtime()?;
let config = command.create_configuration(self, tokio_runtime.handle().clone())?;
command.init(&Self::support_url(), &Self::impl_version(), logger_hook, &config)?;
Runner::new(config, tokio_runtime)
}sourcepub fn run_node_until_exit<F, E>(
self,
initialize: impl FnOnce(Configuration) -> F
) -> Result<(), E>where
F: Future<Output = Result<TaskManager, E>>,
E: Error + Send + Sync + 'static + From<ServiceError>,
pub fn run_node_until_exit<F, E>(
self,
initialize: impl FnOnce(Configuration) -> F
) -> Result<(), E>where
F: Future<Output = Result<TaskManager, E>>,
E: Error + Send + Sync + 'static + From<ServiceError>,
A helper function that runs a node with tokio and stops if the process receives the signal
SIGTERM or SIGINT.
sourcepub fn sync_run<E>(
self,
runner: impl FnOnce(Configuration) -> Result<(), E>
) -> Result<(), E>where
E: Error + Send + Sync + 'static + From<ServiceError>,
pub fn sync_run<E>(
self,
runner: impl FnOnce(Configuration) -> Result<(), E>
) -> Result<(), E>where
E: Error + Send + Sync + 'static + From<ServiceError>,
A helper function that runs a command with the configuration of this node.
sourcepub fn async_run<F, E>(
self,
runner: impl FnOnce(Configuration) -> Result<(F, TaskManager), E>
) -> Result<(), E>where
F: Future<Output = Result<(), E>>,
E: Error + Send + Sync + 'static + From<ServiceError> + From<CliError>,
pub fn async_run<F, E>(
self,
runner: impl FnOnce(Configuration) -> Result<(F, TaskManager), E>
) -> Result<(), E>where
F: Future<Output = Result<(), E>>,
E: Error + Send + Sync + 'static + From<ServiceError> + From<CliError>,
A helper function that runs a future with tokio and stops if the process receives
the signal SIGTERM or SIGINT.
sourcepub fn config(&self) -> &Configuration
pub fn config(&self) -> &Configuration
Get an immutable reference to the node Configuration
sourcepub fn config_mut(&mut self) -> &mut Configuration
pub fn config_mut(&mut self) -> &mut Configuration
Get a mutable reference to the node Configuration
Auto Trait Implementations§
impl<C> !RefUnwindSafe for Runner<C>
impl<C> Send for Runner<C>where
C: Send,
impl<C> Sync for Runner<C>where
C: Sync,
impl<C> Unpin for Runner<C>where
C: Unpin,
impl<C> !UnwindSafe for Runner<C>
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.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> 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, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T.