[][src]Trait sc_cli::SubstrateCli

pub trait SubstrateCli: Sized {
    fn impl_name() -> &'static str;
fn impl_version() -> &'static str;
fn executable_name() -> &'static str;
fn description() -> &'static str;
fn author() -> &'static str;
fn support_url() -> &'static str;
fn copyright_start_year() -> i32;
fn load_spec(&self, id: &str) -> Result<Box<dyn ChainSpec>, String>; fn from_args() -> Self
    where
        Self: StructOpt + Sized
, { ... }
fn from_iter<I>(iter: I) -> Self
    where
        Self: StructOpt + Sized,
        I: IntoIterator,
        I::Item: Into<OsString> + Clone
, { ... }
fn try_from_iter<I>(iter: I) -> Result<Self>
    where
        Self: StructOpt + Sized,
        I: IntoIterator,
        I::Item: Into<OsString> + Clone
, { ... }
fn client_id() -> String { ... }
fn create_configuration<T: CliConfiguration>(
        &self,
        command: &T,
        task_executor: Arc<dyn Fn(Pin<Box<dyn Future<Output = ()> + Send>>, TaskType) + Send + Sync>
    ) -> Result<Configuration> { ... }
fn create_runner<T: CliConfiguration>(
        &self,
        command: &T
    ) -> Result<Runner<Self>> { ... } }

Substrate client CLI

This trait needs to be defined on the root structopt 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.

StructOpt must not be in scope to use from_args (or the similar methods). This trait provides its own implementation that will fill the necessary field based on the trait's functions.

Required methods

fn impl_name() -> &'static str

Implementation name.

fn impl_version() -> &'static str

Implementation version.

By default this will look like this: 2.0.0-b950f731c-x86_64-linux-gnu where the hash is the short commit hash of the commit of in the Git repository.

fn executable_name() -> &'static str

Executable file name.

fn description() -> &'static str

Executable file description.

fn author() -> &'static str

Executable file author.

fn support_url() -> &'static str

Support URL.

fn copyright_start_year() -> i32

Copyright starting year (x-current year)

fn load_spec(&self, id: &str) -> Result<Box<dyn ChainSpec>, String>

Chain spec factory

Loading content...

Provided methods

fn from_args() -> Self where
    Self: StructOpt + Sized

Helper function used to parse the command line arguments. This is the equivalent of structopt's from_iter() except that it takes a VersionInfo argument to provide the name of the application, author, "about" and version. It will also set AppSettings::GlobalVersion.

To allow running the node without subcommand, tt also sets a few more settings: AppSettings::ArgsNegateSubcommands and AppSettings::SubcommandsNegateReqs.

Gets the struct from the command line arguments. Print the error message and quit the program in case of failure.

fn from_iter<I>(iter: I) -> Self where
    Self: StructOpt + Sized,
    I: IntoIterator,
    I::Item: Into<OsString> + Clone

Helper function used to parse the command line arguments. This is the equivalent of structopt's from_iter() except that it takes a VersionInfo argument to provide the name of the application, author, "about" and version. It will also set AppSettings::GlobalVersion.

To allow running the node without subcommand, it also sets a few more settings: AppSettings::ArgsNegateSubcommands and AppSettings::SubcommandsNegateReqs.

Gets the struct from any iterator such as a Vec of your making. Print the error message and quit the program in case of failure.

fn try_from_iter<I>(iter: I) -> Result<Self> where
    Self: StructOpt + Sized,
    I: IntoIterator,
    I::Item: Into<OsString> + Clone

Helper function used to parse the command line arguments. This is the equivalent of structopt's from_iter() except that it takes a VersionInfo argument to provide the name of the application, author, "about" and version. It will also set AppSettings::GlobalVersion.

To allow running the node without subcommand, it also sets a few more settings: AppSettings::ArgsNegateSubcommands and AppSettings::SubcommandsNegateReqs.

Gets the struct from any iterator such as a Vec of your making. 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::ErrorKind::HelpDisplayed or clap::ErrorKind::VersionDisplayed respectively. You must call clap::Error::exit or perform a std::process::exit.

fn client_id() -> String

Returns the client ID: {impl_name}/v{impl_version}

fn create_configuration<T: CliConfiguration>(
    &self,
    command: &T,
    task_executor: Arc<dyn Fn(Pin<Box<dyn Future<Output = ()> + Send>>, TaskType) + Send + Sync>
) -> Result<Configuration>

Only create a Configuration for the command provided in argument

fn create_runner<T: CliConfiguration>(
    &self,
    command: &T
) -> Result<Runner<Self>>

Create a runner for the command provided in argument. This will create a Configuration and a tokio runtime

Loading content...

Implementors

Loading content...