Trait sc_cli::SubstrateCli 
source · pub trait SubstrateCli: Sized {
Show 16 methods
    fn impl_name() -> String;
    fn impl_version() -> String;
    fn description() -> String;
    fn author() -> String;
    fn support_url() -> String;
    fn copyright_start_year() -> i32;
    fn load_spec(&self, id: &str) -> Result<Box<dyn ChainSpec>, String>;
    fn native_runtime_version(
        chain_spec: &Box<dyn ChainSpec>
    ) -> &'static RuntimeVersion;
    fn executable_name() -> String { ... }
    fn from_args() -> Self
    where
        Self: Parser + Sized,
    { ... }
    fn from_iter<I>(iter: I) -> Self
    where
        Self: Parser + Sized,
        I: IntoIterator,
        I::Item: Into<OsString> + Clone,
    { ... }
    fn try_from_iter<I>(iter: I) -> Result<Self>
    where
        Self: Parser + Sized,
        I: IntoIterator,
        I::Item: Into<OsString> + Clone,
    { ... }
    fn client_id() -> String { ... }
    fn create_configuration<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
        &self,
        command: &T,
        tokio_handle: Handle
    ) -> Result<Configuration> { ... }
    fn create_runner<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
        &self,
        command: &T
    ) -> Result<Runner<Self>> { ... }
    fn create_runner_with_logger_hook<T: CliConfiguration, F>(
        &self,
        command: &T,
        logger_hook: F
    ) -> Result<Runner<Self>>
    where
        F: FnOnce(&mut LoggerBuilder, &Configuration),
    { ... }
}Expand description
Substrate client CLI
This trait needs to be implemented on the root CLI struct of the application. It will provide
the implementation name, version, executable name, description, author, support_url,
copyright start year and most importantly: how to load the chain spec.
Required Methods§
sourcefn impl_version() -> String
 
fn impl_version() -> String
Implementation version.
By default this will look like this:
2.0.0-b950f731c
Where the hash is the short commit hash of the commit of in the Git repository.
sourcefn description() -> String
 
fn description() -> String
Executable file description.
Executable file author.
sourcefn support_url() -> String
 
fn support_url() -> String
Support URL.
sourcefn copyright_start_year() -> i32
 
fn copyright_start_year() -> i32
Copyright starting year (x-current year)
sourcefn native_runtime_version(
    chain_spec: &Box<dyn ChainSpec>
) -> &'static RuntimeVersion
 
fn native_runtime_version(
    chain_spec: &Box<dyn ChainSpec>
) -> &'static RuntimeVersion
Native runtime version.
Provided Methods§
sourcefn executable_name() -> String
 
fn executable_name() -> String
Executable file name.
Extracts the file name from std::env::current_exe().
Resorts to the env var CARGO_PKG_NAME in case of Error.
sourcefn from_args() -> Selfwhere
    Self: Parser + Sized,
 
fn from_args() -> Selfwhere
    Self: Parser + Sized,
Helper function used to parse the command line arguments. This is the equivalent of
clap::Parser::parse().
To allow running the node without subcommand, it also sets a few more settings:
clap::Command::propagate_version, clap::Command::args_conflicts_with_subcommands,
clap::Command::subcommand_negates_reqs.
Creates Self from the command line arguments. Print the
error message and quit the program in case of failure.
sourcefn from_iter<I>(iter: I) -> Selfwhere
    Self: Parser + Sized,
    I: IntoIterator,
    I::Item: Into<OsString> + Clone,
 
fn from_iter<I>(iter: I) -> Selfwhere
    Self: Parser + Sized,
    I: IntoIterator,
    I::Item: Into<OsString> + Clone,
Helper function used to parse the command line arguments. This is the equivalent of
clap::Parser::parse_from.
To allow running the node without subcommand, it also sets a few more settings:
clap::Command::propagate_version, clap::Command::args_conflicts_with_subcommands,
clap::Command::subcommand_negates_reqs.
Creates Self from any iterator over arguments.
Print the error message and quit the program in case of failure.
sourcefn try_from_iter<I>(iter: I) -> Result<Self>where
    Self: Parser + Sized,
    I: IntoIterator,
    I::Item: Into<OsString> + Clone,
 
fn try_from_iter<I>(iter: I) -> Result<Self>where
    Self: Parser + Sized,
    I: IntoIterator,
    I::Item: Into<OsString> + Clone,
Helper function used to parse the command line arguments. This is the equivalent of
clap::Parser::try_parse_from
To allow running the node without subcommand, it also sets a few more settings:
clap::Command::propagate_version, clap::Command::args_conflicts_with_subcommands,
clap::Command::subcommand_negates_reqs.
Creates Self from any iterator over arguments.
Print the error message and quit the program in case of failure.
NOTE: This method WILL NOT exit when --help or --version (or short versions) are
used. It will return a clap::Error, where the clap::Error::kind is a
clap::error::ErrorKind::DisplayHelp or clap::error::ErrorKind::DisplayVersion
respectively. You must call clap::Error::exit or perform a std::process::exit.
sourcefn create_configuration<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
    &self,
    command: &T,
    tokio_handle: Handle
) -> Result<Configuration>
 
fn create_configuration<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
    &self,
    command: &T,
    tokio_handle: Handle
) -> Result<Configuration>
Only create a Configuration for the command provided in argument
sourcefn create_runner<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
    &self,
    command: &T
) -> Result<Runner<Self>>
 
fn create_runner<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
    &self,
    command: &T
) -> Result<Runner<Self>>
Create a runner for the command provided in argument. This will create a Configuration and a tokio runtime
sourcefn create_runner_with_logger_hook<T: CliConfiguration, F>(
    &self,
    command: &T,
    logger_hook: F
) -> Result<Runner<Self>>where
    F: FnOnce(&mut LoggerBuilder, &Configuration),
 
fn create_runner_with_logger_hook<T: CliConfiguration, F>(
    &self,
    command: &T,
    logger_hook: F
) -> Result<Runner<Self>>where
    F: FnOnce(&mut LoggerBuilder, &Configuration),
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{}));
	}
}