From 982bca8e8585114a659f99b8d2c43a0dd3f2c54f Mon Sep 17 00:00:00 2001 From: liamaharon Date: Tue, 29 Aug 2023 07:15:55 +0000 Subject: [PATCH] deploy: c9a41c0b1225fbaa63d32f9114142285ced48588 --- .../clap_builder/derive/trait.Args.js | 2 +- .../derive/trait.CommandFactory.js | 2 +- .../derive/trait.FromArgMatches.js | 2 +- .../clap_builder/derive/trait.Parser.js | 2 +- .../clap_builder/derive/trait.Subcommand.js | 2 +- implementors/core/clone/trait.Clone.js | 2 +- implementors/core/fmt/trait.Debug.js | 2 +- implementors/core/fmt/trait.Display.js | 3 + .../double_ended/trait.DoubleEndedIterator.js | 3 + .../exact_size/trait.ExactSizeIterator.js | 3 + .../iter/traits/iterator/trait.Iterator.js | 3 + implementors/core/marker/trait.Freeze.js | 2 +- implementors/core/marker/trait.Send.js | 2 +- implementors/core/marker/trait.Sync.js | 2 +- implementors/core/marker/trait.Unpin.js | 2 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 2 +- .../panic/unwind_safe/trait.UnwindSafe.js | 2 +- implementors/core/str/traits/trait.FromStr.js | 2 +- implementors/strum/trait.IntoEnumIterator.js | 3 + .../trait.InherentProvider.js | 3 + search-index.js | 2 +- source-files.js | 2 +- src/try_runtime/main.rs.html | 6 + .../commands/execute_block.rs.html | 2 +- .../commands/fast_forward.rs.html | 607 ++++++++++ .../commands/follow_chain.rs.html | 4 +- src/try_runtime_core/commands/mod.rs.html | 26 +- .../commands/offchain_worker.rs.html | 2 +- .../commands/on_runtime_upgrade.rs.html | 18 +- .../inherent_provider.rs.html | 453 +++++++ src/try_runtime_core/lib.rs.html | 32 +- try_runtime/fn.init_env.html | 2 +- try_runtime/fn.main.html | 2 +- try_runtime/index.html | 4 +- try_runtime_core/all.html | 2 +- try_runtime_core/commands/enum.Action.html | 19 +- .../commands/fast_forward/fn.run.html | 10 + .../commands/fast_forward/index.html | 1 + .../commands/fast_forward/sidebar-items.js | 1 + .../commands/fast_forward/struct.Command.html | 80 ++ .../commands/follow_chain/fn.run.html | 2 +- .../commands/follow_chain/index.html | 2 +- try_runtime_core/commands/index.html | 2 +- .../commands/on_runtime_upgrade/fn.run.html | 2 +- .../commands/on_runtime_upgrade/index.html | 2 +- .../on_runtime_upgrade/struct.Command.html | 10 +- try_runtime_core/commands/sidebar-items.js | 2 +- .../commands/struct.TryRuntime.html | 12 +- try_runtime_core/index.html | 2 +- .../inherent_provider/enum.Chain.html | 73 ++ try_runtime_core/inherent_provider/index.html | 2 + .../inherent_provider/sidebar-items.js | 1 + .../inherent_provider/struct.ChainIter.html | 1061 +++++++++++++++++ .../trait.InherentProvider.html | 13 + try_runtime_core/sidebar-items.js | 2 +- try_runtime_core/struct.RefTimeInfo.html | 2 +- 56 files changed, 2444 insertions(+), 67 deletions(-) create mode 100644 implementors/core/fmt/trait.Display.js create mode 100644 implementors/core/iter/traits/double_ended/trait.DoubleEndedIterator.js create mode 100644 implementors/core/iter/traits/exact_size/trait.ExactSizeIterator.js create mode 100644 implementors/core/iter/traits/iterator/trait.Iterator.js create mode 100644 implementors/strum/trait.IntoEnumIterator.js create mode 100644 implementors/try_runtime_core/inherent_provider/trait.InherentProvider.js create mode 100644 src/try_runtime_core/commands/fast_forward.rs.html create mode 100644 src/try_runtime_core/inherent_provider.rs.html create mode 100644 try_runtime_core/commands/fast_forward/fn.run.html create mode 100644 try_runtime_core/commands/fast_forward/index.html create mode 100644 try_runtime_core/commands/fast_forward/sidebar-items.js create mode 100644 try_runtime_core/commands/fast_forward/struct.Command.html create mode 100644 try_runtime_core/inherent_provider/enum.Chain.html create mode 100644 try_runtime_core/inherent_provider/index.html create mode 100644 try_runtime_core/inherent_provider/sidebar-items.js create mode 100644 try_runtime_core/inherent_provider/struct.ChainIter.html create mode 100644 try_runtime_core/inherent_provider/trait.InherentProvider.html diff --git a/implementors/clap_builder/derive/trait.Args.js b/implementors/clap_builder/derive/trait.Args.js index 54633376139..4c5e035c914 100644 --- a/implementors/clap_builder/derive/trait.Args.js +++ b/implementors/clap_builder/derive/trait.Args.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Args for Command"],["impl Args for Command"],["impl Args for LiveState"],["impl Args for Command"],["impl Args for Command"],["impl Args for SharedParams"],["impl Args for TryRuntime"],["impl Args for Command"]] +"try_runtime_core":[["impl Args for Command"],["impl Args for Command"],["impl Args for Command"],["impl Args for Command"],["impl Args for Command"],["impl Args for SharedParams"],["impl Args for Command"],["impl Args for LiveState"],["impl Args for TryRuntime"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/clap_builder/derive/trait.CommandFactory.js b/implementors/clap_builder/derive/trait.CommandFactory.js index 8a33554744e..134ba22dcee 100644 --- a/implementors/clap_builder/derive/trait.CommandFactory.js +++ b/implementors/clap_builder/derive/trait.CommandFactory.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl CommandFactory for Command"],["impl CommandFactory for TryRuntime"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for SharedParams"]] +"try_runtime_core":[["impl CommandFactory for Chain"],["impl CommandFactory for SharedParams"],["impl CommandFactory for TryRuntime"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for Command"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/clap_builder/derive/trait.FromArgMatches.js b/implementors/clap_builder/derive/trait.FromArgMatches.js index b9e57dd4e8d..e55ceb35eab 100644 --- a/implementors/clap_builder/derive/trait.FromArgMatches.js +++ b/implementors/clap_builder/derive/trait.FromArgMatches.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for LiveState"],["impl FromArgMatches for Command"],["impl FromArgMatches for State"],["impl FromArgMatches for Command"],["impl FromArgMatches for Action"],["impl FromArgMatches for TryRuntime"],["impl FromArgMatches for SharedParams"],["impl FromArgMatches for Command"]] +"try_runtime_core":[["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for Chain"],["impl FromArgMatches for LiveState"],["impl FromArgMatches for TryRuntime"],["impl FromArgMatches for State"],["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for SharedParams"],["impl FromArgMatches for Action"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/clap_builder/derive/trait.Parser.js b/implementors/clap_builder/derive/trait.Parser.js index 9772aebf1e2..e8406208eb2 100644 --- a/implementors/clap_builder/derive/trait.Parser.js +++ b/implementors/clap_builder/derive/trait.Parser.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Parser for Command"],["impl Parser for SharedParams"],["impl Parser for Command"],["impl Parser for Command"],["impl Parser for TryRuntime"],["impl Parser for Command"],["impl Parser for Command"]] +"try_runtime_core":[["impl Parser for SharedParams"],["impl Parser for Command"],["impl Parser for TryRuntime"],["impl Parser for Command"],["impl Parser for Command"],["impl Parser for Command"],["impl Parser for Command"],["impl Parser for Command"],["impl Parser for Chain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/clap_builder/derive/trait.Subcommand.js b/implementors/clap_builder/derive/trait.Subcommand.js index a4f7f188c93..67a75cf97e1 100644 --- a/implementors/clap_builder/derive/trait.Subcommand.js +++ b/implementors/clap_builder/derive/trait.Subcommand.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Subcommand for Action"],["impl Subcommand for State"]] +"try_runtime_core":[["impl Subcommand for Action"],["impl Subcommand for State"],["impl Subcommand for Chain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js index 2f551caf511..cde4ba1c2ec 100644 --- a/implementors/core/clone/trait.Clone.js +++ b/implementors/core/clone/trait.Clone.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Clone for Command"],["impl Clone for SharedParams"],["impl Clone for Command"],["impl Clone for Command"],["impl Clone for Command"],["impl Clone for Action"],["impl Clone for LiveState"],["impl Clone for TryRuntime"],["impl Clone for Command"],["impl Clone for State"],["impl Clone for Runtime"]] +"try_runtime_core":[["impl Clone for Command"],["impl Clone for TryRuntime"],["impl Clone for Chain"],["impl Clone for State"],["impl Clone for Command"],["impl Clone for LiveState"],["impl Clone for Command"],["impl Clone for Command"],["impl Clone for Action"],["impl Clone for Runtime"],["impl Clone for SharedParams"],["impl Clone for Command"],["impl Clone for Command"],["impl Clone for ChainIter"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Debug.js b/implementors/core/fmt/trait.Debug.js index bbc952e7c06..5a13c30bd09 100644 --- a/implementors/core/fmt/trait.Debug.js +++ b/implementors/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Debug for Command"],["impl Debug for LiveState"],["impl Debug for Command"],["impl Debug for TryRuntime"],["impl Debug for Runtime"],["impl Debug for Action"],["impl Debug for Command"],["impl Debug for Command"],["impl Debug for Command"],["impl Debug for State"],["impl Debug for SharedParams"]] +"try_runtime_core":[["impl Debug for Command"],["impl Debug for ChainIter"],["impl Debug for Chain"],["impl Debug for State"],["impl Debug for Command"],["impl Debug for Action"],["impl Debug for LiveState"],["impl Debug for Command"],["impl Debug for Command"],["impl Debug for Command"],["impl Debug for Runtime"],["impl Debug for TryRuntime"],["impl Debug for SharedParams"],["impl Debug for Command"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Display.js b/implementors/core/fmt/trait.Display.js new file mode 100644 index 00000000000..e76720b24d9 --- /dev/null +++ b/implementors/core/fmt/trait.Display.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"try_runtime_core":[["impl Display for Chain"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/iter/traits/double_ended/trait.DoubleEndedIterator.js b/implementors/core/iter/traits/double_ended/trait.DoubleEndedIterator.js new file mode 100644 index 00000000000..bdc07e80912 --- /dev/null +++ b/implementors/core/iter/traits/double_ended/trait.DoubleEndedIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"try_runtime_core":[["impl DoubleEndedIterator for ChainIter"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/iter/traits/exact_size/trait.ExactSizeIterator.js b/implementors/core/iter/traits/exact_size/trait.ExactSizeIterator.js new file mode 100644 index 00000000000..075604ddedd --- /dev/null +++ b/implementors/core/iter/traits/exact_size/trait.ExactSizeIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"try_runtime_core":[["impl ExactSizeIterator for ChainIter"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/iter/traits/iterator/trait.Iterator.js b/implementors/core/iter/traits/iterator/trait.Iterator.js new file mode 100644 index 00000000000..09ea251d290 --- /dev/null +++ b/implementors/core/iter/traits/iterator/trait.Iterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"try_runtime_core":[["impl Iterator for ChainIter"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js index a42ad47badd..5c4c61fcd26 100644 --- a/implementors/core/marker/trait.Freeze.js +++ b/implementors/core/marker/trait.Freeze.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Freeze for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl Freeze for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl Freeze for Action",1,["try_runtime_core::commands::Action"]],["impl Freeze for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl Freeze for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl Freeze for LiveState",1,["try_runtime_core::state::LiveState"]],["impl Freeze for State",1,["try_runtime_core::state::State"]],["impl Freeze for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] +"try_runtime_core":[["impl Freeze for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::fast_forward::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl Freeze for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl Freeze for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl Freeze for Action",1,["try_runtime_core::commands::Action"]],["impl Freeze for Chain",1,["try_runtime_core::inherent_provider::Chain"]],["impl Freeze for ChainIter",1,["try_runtime_core::inherent_provider::ChainIter"]],["impl Freeze for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl Freeze for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl Freeze for LiveState",1,["try_runtime_core::state::LiveState"]],["impl Freeze for State",1,["try_runtime_core::state::State"]],["impl Freeze for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Send.js b/implementors/core/marker/trait.Send.js index cfda31c6e74..22a95951ac2 100644 --- a/implementors/core/marker/trait.Send.js +++ b/implementors/core/marker/trait.Send.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Send for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl Send for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl Send for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl Send for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl Send for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl Send for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl Send for Action",1,["try_runtime_core::commands::Action"]],["impl Send for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl Send for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl Send for LiveState",1,["try_runtime_core::state::LiveState"]],["impl Send for State",1,["try_runtime_core::state::State"]],["impl Send for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] +"try_runtime_core":[["impl Send for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl Send for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl Send for Command",1,["try_runtime_core::commands::fast_forward::Command"]],["impl Send for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl Send for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl Send for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl Send for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl Send for Action",1,["try_runtime_core::commands::Action"]],["impl Send for Chain",1,["try_runtime_core::inherent_provider::Chain"]],["impl Send for ChainIter",1,["try_runtime_core::inherent_provider::ChainIter"]],["impl Send for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl Send for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl Send for LiveState",1,["try_runtime_core::state::LiveState"]],["impl Send for State",1,["try_runtime_core::state::State"]],["impl Send for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Sync.js b/implementors/core/marker/trait.Sync.js index a485d7a7b16..ed3c46fab32 100644 --- a/implementors/core/marker/trait.Sync.js +++ b/implementors/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Sync for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl Sync for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl Sync for Action",1,["try_runtime_core::commands::Action"]],["impl Sync for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl Sync for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl Sync for LiveState",1,["try_runtime_core::state::LiveState"]],["impl Sync for State",1,["try_runtime_core::state::State"]],["impl Sync for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] +"try_runtime_core":[["impl Sync for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::fast_forward::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl Sync for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl Sync for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl Sync for Action",1,["try_runtime_core::commands::Action"]],["impl Sync for Chain",1,["try_runtime_core::inherent_provider::Chain"]],["impl Sync for ChainIter",1,["try_runtime_core::inherent_provider::ChainIter"]],["impl Sync for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl Sync for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl Sync for LiveState",1,["try_runtime_core::state::LiveState"]],["impl Sync for State",1,["try_runtime_core::state::State"]],["impl Sync for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Unpin.js b/implementors/core/marker/trait.Unpin.js index e4dd6989084..bdbff54f631 100644 --- a/implementors/core/marker/trait.Unpin.js +++ b/implementors/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Unpin for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl Unpin for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl Unpin for Action",1,["try_runtime_core::commands::Action"]],["impl Unpin for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl Unpin for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl Unpin for LiveState",1,["try_runtime_core::state::LiveState"]],["impl Unpin for State",1,["try_runtime_core::state::State"]],["impl Unpin for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] +"try_runtime_core":[["impl Unpin for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::fast_forward::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl Unpin for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl Unpin for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl Unpin for Action",1,["try_runtime_core::commands::Action"]],["impl Unpin for Chain",1,["try_runtime_core::inherent_provider::Chain"]],["impl Unpin for ChainIter",1,["try_runtime_core::inherent_provider::ChainIter"]],["impl Unpin for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl Unpin for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl Unpin for LiveState",1,["try_runtime_core::state::LiveState"]],["impl Unpin for State",1,["try_runtime_core::state::State"]],["impl Unpin for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index e670114576b..40df6ff8d2f 100644 --- a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl RefUnwindSafe for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl RefUnwindSafe for Action",1,["try_runtime_core::commands::Action"]],["impl RefUnwindSafe for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl RefUnwindSafe for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl RefUnwindSafe for LiveState",1,["try_runtime_core::state::LiveState"]],["impl RefUnwindSafe for State",1,["try_runtime_core::state::State"]],["impl RefUnwindSafe for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] +"try_runtime_core":[["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::fast_forward::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl RefUnwindSafe for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl RefUnwindSafe for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl RefUnwindSafe for Action",1,["try_runtime_core::commands::Action"]],["impl RefUnwindSafe for Chain",1,["try_runtime_core::inherent_provider::Chain"]],["impl RefUnwindSafe for ChainIter",1,["try_runtime_core::inherent_provider::ChainIter"]],["impl RefUnwindSafe for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl RefUnwindSafe for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl RefUnwindSafe for LiveState",1,["try_runtime_core::state::LiveState"]],["impl RefUnwindSafe for State",1,["try_runtime_core::state::State"]],["impl RefUnwindSafe for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index 4e565360ae6..2d44bf93dc5 100644 --- a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl UnwindSafe for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl UnwindSafe for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl UnwindSafe for Action",1,["try_runtime_core::commands::Action"]],["impl UnwindSafe for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl UnwindSafe for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl UnwindSafe for LiveState",1,["try_runtime_core::state::LiveState"]],["impl UnwindSafe for State",1,["try_runtime_core::state::State"]],["impl UnwindSafe for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] +"try_runtime_core":[["impl UnwindSafe for Command",1,["try_runtime_core::commands::create_snapshot::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::execute_block::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::fast_forward::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::follow_chain::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::offchain_worker::Command"]],["impl UnwindSafe for Command",1,["try_runtime_core::commands::on_runtime_upgrade::Command"]],["impl UnwindSafe for TryRuntime",1,["try_runtime_core::commands::TryRuntime"]],["impl UnwindSafe for Action",1,["try_runtime_core::commands::Action"]],["impl UnwindSafe for Chain",1,["try_runtime_core::inherent_provider::Chain"]],["impl UnwindSafe for ChainIter",1,["try_runtime_core::inherent_provider::ChainIter"]],["impl UnwindSafe for SharedParams",1,["try_runtime_core::shared_parameters::SharedParams"]],["impl UnwindSafe for Runtime",1,["try_runtime_core::shared_parameters::Runtime"]],["impl UnwindSafe for LiveState",1,["try_runtime_core::state::LiveState"]],["impl UnwindSafe for State",1,["try_runtime_core::state::State"]],["impl UnwindSafe for RefTimeInfo",1,["try_runtime_core::RefTimeInfo"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/str/traits/trait.FromStr.js b/implementors/core/str/traits/trait.FromStr.js index 63ac1947eb0..52139a4b6d7 100644 --- a/implementors/core/str/traits/trait.FromStr.js +++ b/implementors/core/str/traits/trait.FromStr.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl FromStr for Runtime"]] +"try_runtime_core":[["impl FromStr for Runtime"],["impl FromStr for Chain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/strum/trait.IntoEnumIterator.js b/implementors/strum/trait.IntoEnumIterator.js new file mode 100644 index 00000000000..cb5a3345864 --- /dev/null +++ b/implementors/strum/trait.IntoEnumIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"try_runtime_core":[["impl IntoEnumIterator for Chain"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/try_runtime_core/inherent_provider/trait.InherentProvider.js b/implementors/try_runtime_core/inherent_provider/trait.InherentProvider.js new file mode 100644 index 00000000000..d047903f786 --- /dev/null +++ b/implementors/try_runtime_core/inherent_provider/trait.InherentProvider.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"try_runtime_core":[] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/search-index.js b/search-index.js index ee9c3f16f2b..376cd4520cd 100644 --- a/search-index.js +++ b/search-index.js @@ -1,6 +1,6 @@ var searchIndex = JSON.parse('{\ "try_runtime":{"doc":"Try-runtime","t":"FF","n":["init_env","main"],"q":[[0,"try_runtime"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ -"try_runtime_core":{"doc":"","t":"DLLALLLLLLLLLLLLLLLMAALLLLLLMLENNNNNDLLMLLLLLLLLLLLLLLALLLLLLALLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAALLMLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLMLLLLLLLLLLLLLLFMLLLLLLLLLLDLLLMLLLLLLLLLLLLLLLLLLLLLLLLLFMLLLMLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFMLLLMLLLLLLMLDLLLLLLLLLLLLLLLLLLLLLMLLLLLLLFMLLLLLLLLLLDLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMFMLLLLLLLLLLNNEDLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLMMNDNELLMLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLMLLMM","n":["RefTimeInfo","borrow","borrow_mut","commands","deref","deref_mut","drop","from","from_mut","from_mut","from_ref","from_ref","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","max","shared_parameters","state","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","used","vzip","Action","CreateSnapshot","ExecuteBlock","FollowChain","OffchainWorker","OnRuntimeUpgrade","TryRuntime","__clone_box","__clone_box","action","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","command","command_for_update","create_snapshot","deref","deref","deref_mut","deref_mut","drop","drop","execute_block","fmt","fmt","follow_chain","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","group_id","has_subcommand","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_mut","into_mut","into_ref","into_ref","offchain_worker","on_runtime_upgrade","run","run","shared","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","type_name","type_name","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","Command","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","run","snapshot_path","to_owned","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","Command","__clone_box","augment_args","augment_args_for_update","block_ws_uri","borrow","borrow_mut","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","run","state","to_owned","try_from","try_into","try_state","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","Command","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","keep_connection","run","state_root_check","to_owned","try_from","try_into","try_state","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","uri","vzip","Command","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","header_ws_uri","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","run","state","to_owned","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","Command","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","checks","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","no_weight_warnings","run","state","to_owned","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","Existing","Path","Runtime","SharedParams","__clone_box","__clone_box","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","command","command_for_update","deref","deref","deref_mut","deref_mut","drop","drop","export_proof","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_str","group_id","heap_pages","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_mut","into_mut","into_ref","into_ref","overwrite_state_version","runtime","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","type_name","type_name","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","wasm_method","wasmtime_instantiation_strategy","Live","LiveState","Snap","State","__clone_box","__clone_box","at","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow_mut","borrow_mut","child_tree","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","group_id","has_subcommand","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_mut","into_mut","into_ref","into_ref","pallet","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","type_name","type_name","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","uri","vzip","vzip","path","snapshot_path"],"q":[[0,"try_runtime_core"],[30,"try_runtime_core::commands"],[120,"try_runtime_core::commands::create_snapshot"],[162,"try_runtime_core::commands::execute_block"],[205,"try_runtime_core::commands::follow_chain"],[249,"try_runtime_core::commands::offchain_worker"],[291,"try_runtime_core::commands::on_runtime_upgrade"],[334,"try_runtime_core::shared_parameters"],[412,"try_runtime_core::state"],[492,"try_runtime_core::state::State"]],"d":["","","","","","","","Returns the argument unchanged.","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","Possible actions of try-runtime.","Create snapshot files.","Executes the given block against some state.","Follow the given chain’s finalized blocks and apply all …","Executes the offchain worker hooks of a given block …","Execute the migrations of the given runtime","Ready to use, vanilla command combining common actions.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Get a mutable reference to the inner from the outer.","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","Get a reference to the inner from the outer.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Configurations for run.","","","","","","","","","","","","","","Returns the argument unchanged.","The source of the snapshot. Must be a remote node.","","","Get a mutable reference to the inner from the outer.","","","Get a reference to the inner from the outer.","","","Calls U::from(self).","","","","","","Runs the create_snapshot command.","The snapshot path to write to.","","","","","","","","","","","Configurations for run.","","","","The ws uri from which to fetch the block.","","","","","","","","","","","Returns the argument unchanged.","","","","Get a mutable reference to the inner from the outer.","Get a reference to the inner from the outer.","","","","Calls U::from(self).","","","","","","","The state type to use.","","","","Which try-state targets to execute when running this …","","","","","","","","Configurations for run.","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Get a mutable reference to the inner from the outer.","Get a reference to the inner from the outer.","","","","Calls U::from(self).","","","","","","If present, a single connection to a node will be kept and …","","If set, then the state root check is enabled.","","","","Which try-state targets to execute when running this …","","","","","","","The url to connect to.","","Configuration for run.","","","","","","","","","","","","","","Returns the argument unchanged.","","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","The ws uri from which to fetch the header.","","Calls U::from(self).","","","","","","","The state type to use.","","","","","","","","","","","Configuration for run.","","","","","","Select which optional checks to perform. Selects all when …","","","","","","","","","Returns the argument unchanged.","","","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","Calls U::from(self).","","","","","","Whether to assume that the runtime is a relay chain …","","The state type to use.","","","","","","","","","","","Use the code of the remote node, or the snapshot.","Use the given path to the wasm binary file.","","Shared parameters of the try-runtime commands","","","","","","","","","","","","","","","","","","","","","Path to a file to export the storage proof into (as a …","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Get a mutable reference to the inner from the outer.","Get a mutable reference to the inner from the outer.","","","Get a reference to the inner from the outer.","Get a reference to the inner from the outer.","","","","The number of 64KB pages to allocate for Wasm execution. …","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Overwrite the state_version.","The runtime to use.","","","","","","","","","","","","","","","","","","","Type of wasm execution used.","The WASM instantiation method to use.","Use a live chain as the source of runtime state.","A Live variant for State","Use a state snapshot as the source of runtime state.","The source of runtime state to use.","","","The block hash at which to fetch the state.","","","","","","","","","Fetch the child-keys as well.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Get a mutable reference to the inner from the outer.","","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","A pallet to scrape. Can be provided multiple times. If …","","","","","","","","","","","","","","","","","","","The url to connect to.","","","","DEPRECATED: use --path instead."],"i":[0,31,31,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,0,0,31,31,31,31,31,31,31,31,0,13,13,13,13,13,0,12,13,12,12,12,13,13,12,13,12,13,12,13,12,13,12,12,0,12,13,12,13,12,13,0,12,13,0,12,13,12,13,12,13,12,12,13,13,12,12,13,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,0,0,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,23,23,23,23,23,23,23,23,23,23,23,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,24,24,24,24,24,24,24,24,24,24,24,24,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,25,25,25,25,25,25,25,25,25,25,25,25,25,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,27,27,27,27,27,27,27,27,27,27,27,28,28,0,0,22,28,22,22,22,28,22,28,22,28,22,28,22,22,22,28,22,28,22,28,22,22,28,22,28,22,22,22,22,28,28,22,22,28,28,28,22,22,22,28,22,28,22,28,22,28,22,28,22,28,22,28,22,22,22,28,22,28,22,28,22,28,22,28,22,28,22,28,22,22,22,28,22,22,30,0,30,0,29,30,29,29,29,30,30,29,30,29,30,29,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,29,30,30,29,29,30,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,29,30,32,32],"f":[0,[[]],[[]],0,[1],[1],[1],[[]],[[]],[[]],[[]],[[]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],0,0,0,[[],7],[[],7],[[],8],[[],9],[[]],[[]],0,[[]],0,0,0,0,0,0,0,[10],[10],0,[11,11],[11,11],[11,11],[11,11],[[]],[[]],[[]],[[]],[12,12],[13,13],[[]],[[]],[[],11],[[],11],0,[1],[1],[1],[1],[1],[1],0,[[12,14],15],[[13,14],15],0,[[]],[[]],[16,[[7,[12,17]]]],[16,[[7,[13,17]]]],[16,[[7,[12,17]]]],[16,[[7,[13,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[9,20],[[],1],[[],1],[[]],[[]],[[[3,[2]]],[[3,[4,2]]]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[]],[[]],0,0,[12,21],[[13,22],21],0,[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[[]],[[]],[[12,16],[[7,[17]]]],[[13,16],[[7,[17]]]],[[12,16],[[7,[17]]]],[[13,16],[[7,[17]]]],[[]],[[]],0,[10],[11,11],[11,11],[[]],[[]],[23,23],[[]],[[],11],[[],11],[1],[1],[1],[[23,14],15],[[]],0,[16,[[7,[23,17]]]],[16,[[7,[23,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[22,23],21],0,[[]],[[],7],[[],7],[[],8],[[],9],[[]],[[]],[[23,16],[[7,[17]]]],[[23,16],[[7,[17]]]],[[]],0,[10],[11,11],[11,11],0,[[]],[[]],[24,24],[[]],[[],11],[[],11],[1],[1],[1],[[24,14],15],[[]],[16,[[7,[24,17]]]],[16,[[7,[24,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[22,24],21],0,[[]],[[],7],[[],7],0,[[],8],[[],9],[[]],[[]],[[24,16],[[7,[17]]]],[[24,16],[[7,[17]]]],[[]],0,[10],[11,11],[11,11],[[]],[[]],[25,25],[[]],[[],11],[[],11],[1],[1],[1],[[25,14],15],[[]],[16,[[7,[25,17]]]],[16,[[7,[25,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],0,[[22,25],21],0,[[]],[[],7],[[],7],0,[[],8],[[],9],[[]],[[]],[[25,16],[[7,[17]]]],[[25,16],[[7,[17]]]],0,[[]],0,[10],[11,11],[11,11],[[]],[[]],[26,26],[[]],[[],11],[[],11],[1],[1],[1],[[26,14],15],[[]],[16,[[7,[26,17]]]],[16,[[7,[26,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],0,[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[22,26],21],0,[[]],[[],7],[[],7],[[],8],[[],9],[[]],[[]],[[26,16],[[7,[17]]]],[[26,16],[[7,[17]]]],[[]],0,[10],[11,11],[11,11],[[]],[[]],0,[27,27],[[]],[[],11],[[],11],[1],[1],[1],[[27,14],15],[[]],[16,[[7,[27,17]]]],[16,[[7,[27,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],0,[[22,27],21],0,[[]],[[],7],[[],7],[[],8],[[],9],[[]],[[]],[[27,16],[[7,[17]]]],[[27,16],[[7,[17]]]],[[]],0,0,0,0,[10],[10],[11,11],[11,11],[[]],[[]],[[]],[[]],[22,22],[28,28],[[]],[[]],[[],11],[[],11],[1],[1],[1],[1],[1],[1],0,[[22,14],15],[[28,14],15],[[]],[[]],[16,[[7,[22,17]]]],[16,[[7,[22,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[7,[28]]]],[[],[[19,[18]]]],0,[[],1],[[],1],[[]],[[]],[[[3,[2]]],[[3,[4,2]]]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[[]],[[]],[[22,16],[[7,[17]]]],[[22,16],[[7,[17]]]],[[]],[[]],0,0,0,0,0,0,[10],[10],0,[11,11],[11,11],[11,11],[11,11],[[]],[[]],[[]],[[]],0,[29,29],[30,30],[[]],[[]],[1],[1],[1],[1],[1],[1],[[29,14],15],[[30,14],15],[[]],[[]],[16,[[7,[29,17]]]],[16,[[7,[30,17]]]],[16,[[7,[29,17]]]],[16,[[7,[30,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[9,20],[[],1],[[],1],[[]],[[]],[[[3,[2]]],[[3,[4,2]]]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[[]],[[]],[[29,16],[[7,[17]]]],[[30,16],[[7,[17]]]],[[29,16],[[7,[17]]]],[[30,16],[[7,[17]]]],0,[[]],[[]],0,0],"c":[],"p":[[15,"usize"],[3,"Global"],[3,"Box"],[8,"Any"],[3,"Arc"],[3,"Rc"],[4,"Result"],[3,"TypeId"],[15,"str"],[3,"Private"],[3,"Command"],[3,"TryRuntime"],[4,"Action"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[6,"Error"],[3,"Id"],[4,"Option"],[15,"bool"],[6,"Result"],[3,"SharedParams"],[3,"Command"],[3,"Command"],[3,"Command"],[3,"Command"],[3,"Command"],[4,"Runtime"],[3,"LiveState"],[4,"State"],[3,"RefTimeInfo"],[13,"Snap"]]}\ +"try_runtime_core":{"doc":"","t":"DLLALLLLLLLLALLLLLLLMAALLLLLLMLENNNNNNDLLMLLLLLLLLLLLLLLALLLLLLAALLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAALLMLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLMLLLLLLLLLLLLLLFMLLLLLLLLLLDLLLMLLLLLLLLLLLLLLLLLLLLLLLLLFMLLLMLLLLLLLDLLLMLLMLLLLLLLLLLLLLLLLLLLLLLLMFMMLLLMLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFMLLLMLLLLLLMLDLLLLLLLLLLLLLLLLLLLLLMLLLLLLLFMLLLLLLLLLLDLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMFMLLLLLLLLLLNEDQINNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNEDLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLMMNDNELLMLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLMLLMM","n":["RefTimeInfo","borrow","borrow_mut","commands","deref","deref_mut","drop","from","from_mut","from_mut","from_ref","from_ref","inherent_provider","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","max","shared_parameters","state","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","used","vzip","Action","CreateSnapshot","ExecuteBlock","FastForward","FollowChain","OffchainWorker","OnRuntimeUpgrade","TryRuntime","__clone_box","__clone_box","action","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","command","command_for_update","create_snapshot","deref","deref","deref_mut","deref_mut","drop","drop","execute_block","fast_forward","fmt","fmt","follow_chain","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","group_id","has_subcommand","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_mut","into_mut","into_ref","into_ref","offchain_worker","on_runtime_upgrade","run","run","shared","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","type_name","type_name","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","Command","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","run","snapshot_path","to_owned","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","Command","__clone_box","augment_args","augment_args_for_update","block_ws_uri","borrow","borrow_mut","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","run","state","to_owned","try_from","try_into","try_state","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","Command","__clone_box","augment_args","augment_args_for_update","block_ws_uri","borrow","borrow_mut","chain","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","n_blocks","run","run_migrations","state","to_owned","try_from","try_into","try_state","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","Command","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","keep_connection","run","state_root_check","to_owned","try_from","try_into","try_state","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","uri","vzip","Command","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","header_ws_uri","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","run","state","to_owned","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","Command","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","checks","clone","clone_into","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_ref","from_ref","group_id","init","into","into_any","into_any_arc","into_any_rc","into_mut","into_ref","no_weight_warnings","run","state","to_owned","try_from","try_into","type_id","type_name","unchecked_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","AlephZero","Chain","ChainIter","Err","InherentProvider","Kusama","Polkadot","Rococo","SubstrateKitchenSink","SubstrateNodeTemplate","Westend","__clone_box","__clone_box","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","command","command_for_update","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_str","get_inherent_providers_and_pre_digest","get_inherent_providers_and_pre_digest","has_subcommand","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_iter","into_mut","into_mut","into_ref","into_ref","iter","len","len","next","next_back","nth","par_bridge","progress_with","size_hint","to_owned","to_owned","to_string","try_collect","try_from","try_from","try_into","try_into","type_id","type_id","type_name","type_name","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","Existing","Path","Runtime","SharedParams","__clone_box","__clone_box","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","command","command_for_update","deref","deref","deref_mut","deref_mut","drop","drop","export_proof","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_str","group_id","heap_pages","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_mut","into_mut","into_ref","into_ref","overwrite_state_version","runtime","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","type_name","type_name","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","wasm_method","wasmtime_instantiation_strategy","Live","LiveState","Snap","State","__clone_box","__clone_box","at","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow_mut","borrow_mut","child_tree","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_mut","from_mut","from_mut","from_mut","from_ref","from_ref","from_ref","from_ref","group_id","has_subcommand","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_mut","into_mut","into_ref","into_ref","pallet","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","type_name","type_name","unchecked_into","unchecked_into","unique_saturated_into","unique_saturated_into","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","uri","vzip","vzip","path","snapshot_path"],"q":[[0,"try_runtime_core"],[31,"try_runtime_core::commands"],[123,"try_runtime_core::commands::create_snapshot"],[165,"try_runtime_core::commands::execute_block"],[208,"try_runtime_core::commands::fast_forward"],[254,"try_runtime_core::commands::follow_chain"],[298,"try_runtime_core::commands::offchain_worker"],[340,"try_runtime_core::commands::on_runtime_upgrade"],[383,"try_runtime_core::inherent_provider"],[477,"try_runtime_core::shared_parameters"],[555,"try_runtime_core::state"],[635,"try_runtime_core::state::State"]],"d":["","","","","","","","Returns the argument unchanged.","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","TODO: Docs","","Calls U::from(self).","","","","","","","","","","","","","","","","","Possible actions of try-runtime.","Create snapshot files.","Executes the given block against some state.","Executes a runtime upgrade (optional), then mines a number …","Follow the given chain’s finalized blocks and apply all …","Executes the offchain worker hooks of a given block …","Execute the migrations of the given runtime","Ready to use, vanilla command combining common actions.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Get a mutable reference to the inner from the outer.","Get a mutable reference to the inner from the outer.","","","Get a reference to the inner from the outer.","Get a reference to the inner from the outer.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Configurations for run.","","","","","","","","","","","","","","Returns the argument unchanged.","The source of the snapshot. Must be a remote node.","","","Get a mutable reference to the inner from the outer.","","","Get a reference to the inner from the outer.","","","Calls U::from(self).","","","","","","Runs the create_snapshot command.","The snapshot path to write to.","","","","","","","","","","","Configurations for run.","","","","The ws uri from which to fetch the block.","","","","","","","","","","","Returns the argument unchanged.","","","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","Calls U::from(self).","","","","","","","The state type to use.","","","","Which try-state targets to execute when running this …","","","","","","","","Configuration for run.","","","","The ws uri from which to fetch the block.","","","Chain","","","","","","","","","Returns the argument unchanged.","","","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","Calls U::from(self).","","","","","","How many empty blocks should be processed.","","Whether to run pending migrations before fast-forwarding.","The state type to use.","","","","Which try-state targets to execute when running this …","","","","","","","","Configurations for run.","","","","","","","","","","","","","","Returns the argument unchanged.","","","Get a mutable reference to the inner from the outer.","","","Get a reference to the inner from the outer.","","","Calls U::from(self).","","","","","","If present, a single connection to a node will be kept and …","","If set, then the state root check is enabled.","","","","Which try-state targets to execute when running this …","","","","","","","The url to connect to.","","Configuration for run.","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Get a mutable reference to the inner from the outer.","Get a reference to the inner from the outer.","","","The ws uri from which to fetch the header.","","Calls U::from(self).","","","","","","","The state type to use.","","","","","","","","","","","Configuration for run.","","","","","","Select which optional checks to perform. Selects all when …","","","","","","","","","Returns the argument unchanged.","","","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","Calls U::from(self).","","","","","","Whether to assume that the runtime is a relay chain …","","The state type to use.","","","","","","","","","","","","Chains that have InherentProvider implemented.","An iterator over the variants of Chain","","Trait for providing the inherent data and digest items for …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a mutable reference to the inner from the outer.","","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Use the code of the remote node, or the snapshot.","Use the given path to the wasm binary file.","","Shared parameters of the try-runtime commands","","","","","","","","","","","","","","","","","","","","","Path to a file to export the storage proof into (as a …","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a mutable reference to the inner from the outer.","","","Get a mutable reference to the inner from the outer.","","Get a reference to the inner from the outer.","Get a reference to the inner from the outer.","","","","The number of 64KB pages to allocate for Wasm execution. …","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Overwrite the state_version.","The runtime to use.","","","","","","","","","","","","","","","","","","","Type of wasm execution used.","The WASM instantiation method to use.","Use a live chain as the source of runtime state.","A Live variant for State","Use a state snapshot as the source of runtime state.","The source of runtime state to use.","","","The block hash at which to fetch the state.","","","","","","","","","Fetch the child-keys as well.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Get a mutable reference to the inner from the outer.","","","Get a mutable reference to the inner from the outer.","Get a reference to the inner from the outer.","","Get a reference to the inner from the outer.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","A pallet to scrape. Can be provided multiple times. If …","","","","","","","","","","","","","","","","","","","The url to connect to.","","","","DEPRECATED: use --path instead."],"i":[0,40,40,0,40,40,40,40,40,40,40,40,0,40,40,40,40,40,40,40,40,0,0,40,40,40,40,40,40,40,40,0,13,13,13,13,13,13,0,12,13,12,12,12,13,13,12,13,12,13,12,13,12,13,12,12,0,12,13,12,13,12,13,0,0,12,13,0,12,13,12,13,12,13,12,12,13,13,12,12,13,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,0,0,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,23,23,23,23,23,23,23,23,23,23,23,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,24,24,24,24,24,24,24,24,24,24,24,24,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,25,25,25,25,25,25,25,25,25,25,25,25,25,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,27,27,27,27,27,27,27,27,27,27,27,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0,28,28,28,28,28,28,28,28,28,28,28,29,0,0,41,0,29,29,29,29,29,29,29,30,29,29,29,30,29,30,29,30,29,30,29,29,29,30,29,30,29,30,29,29,30,29,30,29,29,29,29,30,30,29,29,30,30,29,41,29,29,29,30,29,30,29,30,29,30,29,30,30,29,30,29,30,29,30,30,30,30,30,30,30,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,29,29,30,37,37,0,0,22,37,22,22,22,37,22,37,22,37,22,37,22,22,22,37,22,37,22,37,22,22,37,22,37,22,22,22,22,37,37,22,22,37,37,37,22,22,22,37,22,37,22,37,22,37,22,37,22,37,22,37,22,22,22,37,22,37,22,37,22,37,22,37,22,37,22,37,22,22,22,37,22,22,39,0,39,0,38,39,38,38,38,39,39,38,39,38,39,38,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,38,39,39,38,38,39,39,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,38,39,42,42],"f":[0,[[]],[[]],0,[1],[1],[1],[[]],[[]],[[]],[[]],[[]],0,[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],0,0,0,[[],7],[[],7],[[],8],[[],9],[[]],[[]],0,[[]],0,0,0,0,0,0,0,0,[10],[10],0,[11,11],[11,11],[11,11],[11,11],[[]],[[]],[[]],[[]],[12,12],[13,13],[[]],[[]],[[],11],[[],11],0,[1],[1],[1],[1],[1],[1],0,0,[[12,14],15],[[13,14],15],0,[[]],[[]],[16,[[7,[12,17]]]],[16,[[7,[13,17]]]],[16,[[7,[12,17]]]],[16,[[7,[13,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[9,20],[[],1],[[],1],[[]],[[]],[[[3,[2]]],[[3,[4,2]]]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[]],[[]],0,0,[12,21],[[13,22],21],0,[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[[]],[[]],[[12,16],[[7,[17]]]],[[13,16],[[7,[17]]]],[[12,16],[[7,[17]]]],[[13,16],[[7,[17]]]],[[]],[[]],0,[10],[11,11],[11,11],[[]],[[]],[23,23],[[]],[[],11],[[],11],[1],[1],[1],[[23,14],15],[[]],0,[16,[[7,[23,17]]]],[16,[[7,[23,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[22,23],21],0,[[]],[[],7],[[],7],[[],8],[[],9],[[]],[[]],[[23,16],[[7,[17]]]],[[23,16],[[7,[17]]]],[[]],0,[10],[11,11],[11,11],0,[[]],[[]],[24,24],[[]],[[],11],[[],11],[1],[1],[1],[[24,14],15],[[]],[16,[[7,[24,17]]]],[16,[[7,[24,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[22,24],21],0,[[]],[[],7],[[],7],0,[[],8],[[],9],[[]],[[]],[[24,16],[[7,[17]]]],[[24,16],[[7,[17]]]],[[]],0,[10],[11,11],[11,11],0,[[]],[[]],0,[25,25],[[]],[[],11],[[],11],[1],[1],[1],[[25,14],15],[[]],[16,[[7,[25,17]]]],[16,[[7,[25,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],0,[[22,25],21],0,0,[[]],[[],7],[[],7],0,[[],8],[[],9],[[]],[[]],[[25,16],[[7,[17]]]],[[25,16],[[7,[17]]]],[[]],0,[10],[11,11],[11,11],[[]],[[]],[26,26],[[]],[[],11],[[],11],[1],[1],[1],[[26,14],15],[[]],[16,[[7,[26,17]]]],[16,[[7,[26,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],0,[[22,26],21],0,[[]],[[],7],[[],7],0,[[],8],[[],9],[[]],[[]],[[26,16],[[7,[17]]]],[[26,16],[[7,[17]]]],0,[[]],0,[10],[11,11],[11,11],[[]],[[]],[27,27],[[]],[[],11],[[],11],[1],[1],[1],[[27,14],15],[[]],[16,[[7,[27,17]]]],[16,[[7,[27,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],0,[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[22,27],21],0,[[]],[[],7],[[],7],[[],8],[[],9],[[]],[[]],[[27,16],[[7,[17]]]],[[27,16],[[7,[17]]]],[[]],0,[10],[11,11],[11,11],[[]],[[]],0,[28,28],[[]],[[],11],[[],11],[1],[1],[1],[[28,14],15],[[]],[16,[[7,[28,17]]]],[16,[[7,[28,17]]]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[[],1],[[]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[[]],[[]],0,[[22,28],21],0,[[]],[[],7],[[],7],[[],8],[[],9],[[]],[[]],[[28,16],[[7,[17]]]],[[28,16],[[7,[17]]]],[[]],0,0,0,0,0,0,0,0,0,0,0,[10],[10],[11,11],[11,11],[[]],[[]],[[]],[[]],[29,29],[30,30],[[]],[[]],[[],11],[[],11],[1],[1],[1],[1],[1],[1],[[29,14],[[7,[31]]]],[[29,14],15],[[30,14],15],[[]],[[]],[16,[[7,[29,17]]]],[16,[[7,[29,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[7,[29]]]],[19,7],[[29,19],7],[9,20],[[],1],[[],1],[[]],[[]],[[[3,[2]]],[[3,[4,2]]]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[]],[[]],[[]],[[],30],[30,1],[[],1],[30,19],[30,19],[[30,1],19],[[],32],[33,34],[30],[[]],[[]],[[],35],[[],[[7,[36]]]],[[],7],[[],7],[[],7],[[],7],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[[]],[[]],[[29,16],[[7,[17]]]],[[29,16],[[7,[17]]]],[[]],[[]],0,0,0,0,[10],[10],[11,11],[11,11],[[]],[[]],[[]],[[]],[22,22],[37,37],[[]],[[]],[[],11],[[],11],[1],[1],[1],[1],[1],[1],0,[[22,14],15],[[37,14],15],[[]],[[]],[16,[[7,[22,17]]]],[16,[[7,[22,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[7,[37]]]],[[],[[19,[18]]]],0,[[],1],[[],1],[[]],[[]],[[[3,[2]]],[[3,[4,2]]]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[[]],[[]],[[22,16],[[7,[17]]]],[[22,16],[[7,[17]]]],[[]],[[]],0,0,0,0,0,0,[10],[10],0,[11,11],[11,11],[11,11],[11,11],[[]],[[]],[[]],[[]],0,[38,38],[39,39],[[]],[[]],[1],[1],[1],[1],[1],[1],[[38,14],15],[[39,14],15],[[]],[[]],[16,[[7,[38,17]]]],[16,[[7,[39,17]]]],[16,[[7,[38,17]]]],[16,[[7,[39,17]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[19,[18]]]],[9,20],[[],1],[[],1],[[]],[[]],[[[3,[2]]],[[3,[4,2]]]],[[[3,[2]]],[[3,[4,2]]]],[5,[[5,[4]]]],[5,[[5,[4]]]],[6,[[6,[4]]]],[6,[[6,[4]]]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[[]],[[]],[[38,16],[[7,[17]]]],[[39,16],[[7,[17]]]],[[38,16],[[7,[17]]]],[[39,16],[[7,[17]]]],0,[[]],[[]],0,0],"c":[],"p":[[15,"usize"],[3,"Global"],[3,"Box"],[8,"Any"],[3,"Arc"],[3,"Rc"],[4,"Result"],[3,"TypeId"],[15,"str"],[3,"Private"],[3,"Command"],[3,"TryRuntime"],[4,"Action"],[3,"Formatter"],[6,"Result"],[3,"ArgMatches"],[6,"Error"],[3,"Id"],[4,"Option"],[15,"bool"],[6,"Result"],[3,"SharedParams"],[3,"Command"],[3,"Command"],[3,"Command"],[3,"Command"],[3,"Command"],[3,"Command"],[4,"Chain"],[3,"ChainIter"],[3,"Error"],[3,"IterBridge"],[3,"ProgressBar"],[3,"ProgressBarIter"],[3,"String"],[3,"BoundedVec"],[4,"Runtime"],[3,"LiveState"],[4,"State"],[3,"RefTimeInfo"],[8,"InherentProvider"],[13,"Snap"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/source-files.js b/source-files.js index 222849a2709..3d1f7fef7f5 100644 --- a/source-files.js +++ b/source-files.js @@ -1,5 +1,5 @@ var sourcesIndex = JSON.parse('{\ "try_runtime":["",[],["main.rs"]],\ -"try_runtime_core":["",[["commands",[],["create_snapshot.rs","execute_block.rs","follow_chain.rs","mod.rs","offchain_worker.rs","on_runtime_upgrade.rs"]]],["lib.rs","parse.rs","shared_parameters.rs","state.rs"]]\ +"try_runtime_core":["",[["commands",[],["create_snapshot.rs","execute_block.rs","fast_forward.rs","follow_chain.rs","mod.rs","offchain_worker.rs","on_runtime_upgrade.rs"]]],["inherent_provider.rs","lib.rs","parse.rs","shared_parameters.rs","state.rs"]]\ }'); createSourceSidebar(); diff --git a/src/try_runtime/main.rs.html b/src/try_runtime/main.rs.html index e1243cdc553..db362c846e1 100644 --- a/src/try_runtime/main.rs.html +++ b/src/try_runtime/main.rs.html @@ -326,6 +326,9 @@ 326 327 328 +329 +330 +331
// This file is part of try-runtime-cli.
 
 // Copyright (C) Parity Technologies (UK) Ltd.
@@ -414,6 +417,8 @@
 //!
 //! * [`Action::OnRuntimeUpgrade`]: execute all the [`OnRuntimeUpgrade`] hooks.
 //! * [`Action::ExecuteBlock`]: re-execute the given block.
+//! * [`Action::FastForward`]: execute [`OnRuntimeUpgrade`] hooks, then fast-forward the chain a
+//!   given number of blocks while checking try-state invarients.
 //! * [`Action::OffchainWorker`]: re-execute the given block's offchain worker code path.
 //! * [`Action::FollowChain`]: continuously execute the blocks of a remote chain on top of a given
 //!   runtime.
@@ -620,6 +625,7 @@
 //! [`Action::ExecuteBlock`]: ../try_runtime_core/commands/enum.Action.html#variant.ExecuteBlock
 //! [`Action::OffchainWorker`]: ../try_runtime_core/commands/enum.Action.html#variant.OffchainWorker
 //! [`Action::CreateSnapshot`]: ../try_runtime_core/commands/enum.Action.html#variant.CreateSnapshot
+//! [`Action::FastForward`]: ../try_runtime_core/commands/enum.Action.html#variant.FastForward
 //! [`SharedParams`]: ../try_runtime_core/shared_parameters/struct.SharedParams.html
 //! [`SharedParams::runtime`]: ../try_runtime_core/shared_parameters/struct.SharedParams.html#structfield.runtime
 //! [`SharedParams::overwrite_state_version`]: ../try_runtime_core/shared_parameters/struct.SharedParams.html#structfield.overwrite_state_version
diff --git a/src/try_runtime_core/commands/execute_block.rs.html b/src/try_runtime_core/commands/execute_block.rs.html
index 7b0ba9d23b3..d37f6d1588c 100644
--- a/src/try_runtime_core/commands/execute_block.rs.html
+++ b/src/try_runtime_core/commands/execute_block.rs.html
@@ -311,7 +311,7 @@
     )
         .encode();
 
-    let _ = state_machine_call_with_proof::<HostFns>(
+    let _ = state_machine_call_with_proof::<Block, HostFns>(
         &ext,
         &executor,
         "TryRuntime_execute_block",
diff --git a/src/try_runtime_core/commands/fast_forward.rs.html b/src/try_runtime_core/commands/fast_forward.rs.html
new file mode 100644
index 00000000000..f00c11a7da8
--- /dev/null
+++ b/src/try_runtime_core/commands/fast_forward.rs.html
@@ -0,0 +1,607 @@
+fast_forward.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+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
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+
// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use std::{fmt::Debug, str::FromStr};
+
+use parity_scale_codec::{Decode, Encode};
+use sc_cli::Result;
+use sc_executor::{sp_wasm_interface::HostFunctions, WasmExecutor};
+use serde::de::DeserializeOwned;
+use sp_api::HashingFor;
+use sp_core::H256;
+use sp_inherents::InherentData;
+use sp_runtime::{
+    traits::{Header, NumberFor, One, Saturating},
+    Digest,
+};
+use sp_state_machine::TestExternalities;
+use substrate_rpc_client::{ws_client, ChainApi};
+
+use crate::{
+    build_executor, full_extensions,
+    inherent_provider::{Chain, InherentProvider},
+    rpc_err_handler,
+    state::{LiveState, State},
+    state_machine_call, state_machine_call_with_proof, BlockT, SharedParams,
+};
+
+/// Configuration for [`run`].
+#[derive(Debug, Clone, clap::Parser)]
+pub struct Command {
+    /// How many empty blocks should be processed.
+    #[arg(long)]
+    pub n_blocks: u64,
+
+    /// Chain
+    #[arg(long)]
+    pub chain: Chain,
+
+    /// The ws uri from which to fetch the block.
+    ///
+    /// If `state` is `Live`, this is ignored. Otherwise, it must not be empty.
+    #[arg(long, value_parser = crate::parse::url)]
+    pub block_ws_uri: Option<String>,
+
+    /// Which try-state targets to execute when running this command.
+    ///
+    /// Expected values:
+    /// - `all`
+    /// - `none`
+    /// - A comma separated list of pallets, as per pallet names in `construct_runtime!()` (e.g.
+    ///   `Staking, System`).
+    /// - `rr-[x]` where `[x]` is a number. Then, the given number of pallets are checked in a
+    ///   round-robin fashion.
+    #[arg(long, default_value = "all")]
+    pub try_state: frame_try_runtime::TryStateSelect,
+
+    /// Whether to run pending migrations before fast-forwarding.
+    #[arg(long, default_value = "true")]
+    pub run_migrations: bool,
+
+    /// The state type to use.
+    #[command(subcommand)]
+    pub state: State,
+}
+
+impl Command {
+    fn block_ws_uri(&self) -> &str {
+        match self.state {
+            State::Live(LiveState { ref uri, .. }) => uri,
+            _ => self
+                .block_ws_uri
+                .as_ref()
+                .expect("Either `--block-uri` must be provided, or state must be `live`"),
+        }
+    }
+}
+
+/// Read the block number corresponding to `hash` with an RPC call to `ws_uri`.
+async fn get_block_number<Block: BlockT>(
+    hash: Block::Hash,
+    ws_uri: &str,
+) -> Result<NumberFor<Block>>
+where
+    Block::Header: DeserializeOwned,
+{
+    let rpc = ws_client(ws_uri).await?;
+    Ok(
+        ChainApi::<(), Block::Hash, Block::Header, ()>::header(&rpc, Some(hash))
+            .await
+            .map_err(rpc_err_handler)
+            .and_then(|maybe_header| maybe_header.ok_or("header_not_found").map(|h| *h.number()))?,
+    )
+}
+
+/// Call `method` with `data` and return the result. `externalities` will not change.
+fn dry_call<T: Decode, Block: BlockT, HostFns: HostFunctions>(
+    externalities: &TestExternalities<HashingFor<Block>>,
+    executor: &WasmExecutor<HostFns>,
+    method: &'static str,
+    data: &[u8],
+) -> Result<T> {
+    let (_, result) = state_machine_call::<Block, HostFns>(
+        externalities,
+        executor,
+        method,
+        data,
+        full_extensions(executor.clone()),
+    )?;
+
+    Ok(<T>::decode(&mut &*result)?)
+}
+
+/// Call `method` with `data` and actually save storage changes to `externalities`.
+async fn call<Block: BlockT, HostFns: HostFunctions>(
+    externalities: &mut TestExternalities<HashingFor<Block>>,
+    executor: &WasmExecutor<HostFns>,
+    method: &'static str,
+    data: &[u8],
+) -> Result<()> {
+    let (mut changes, _) = state_machine_call::<Block, HostFns>(
+        externalities,
+        executor,
+        method,
+        data,
+        full_extensions(executor.clone()),
+    )?;
+
+    let storage_changes =
+        changes.drain_storage_changes(&externalities.backend, externalities.state_version)?;
+
+    externalities.backend.apply_transaction(
+        storage_changes.transaction_storage_root,
+        storage_changes.transaction,
+    );
+
+    Ok(())
+}
+
+/// Produces next block containing only inherents.
+async fn produce_next_block<Block: BlockT, HostFns: HostFunctions>(
+    externalities: &mut TestExternalities<HashingFor<Block>>,
+    executor: &WasmExecutor<HostFns>,
+    parent_height: NumberFor<Block>,
+    parent_hash: Block::Hash,
+    inherent_provider: &dyn InherentProvider<Err = String>,
+    previous_block_building_info: Option<(InherentData, Digest)>,
+) -> Result<(Block, Option<(InherentData, Digest)>)> {
+    let (inherent_data_provider, pre_digest) =
+        inherent_provider.get_inherent_providers_and_pre_digest(previous_block_building_info)?;
+
+    let inherent_data = inherent_data_provider
+        .create_inherent_data()
+        .await
+        .map_err(|s| sc_cli::Error::Input(s.to_string()))?;
+    let digest = Digest { logs: pre_digest };
+
+    let header = Block::Header::new(
+        parent_height + One::one(),
+        Default::default(),
+        Default::default(),
+        parent_hash,
+        digest.clone(),
+    );
+
+    call::<Block, _>(
+        externalities,
+        executor,
+        "Core_initialize_block",
+        &header.encode(),
+    )
+    .await?;
+
+    let extrinsics = dry_call::<Vec<Block::Extrinsic>, Block, _>(
+        externalities,
+        executor,
+        "BlockBuilder_inherent_extrinsics",
+        &inherent_data.encode(),
+    )?;
+
+    for xt in &extrinsics {
+        call::<Block, _>(
+            externalities,
+            executor,
+            "BlockBuilder_apply_extrinsic",
+            &xt.encode(),
+        )
+        .await?;
+    }
+
+    let header = dry_call::<Block::Header, Block, _>(
+        externalities,
+        executor,
+        "BlockBuilder_finalize_block",
+        &[0u8; 0],
+    )?;
+
+    call::<Block, _>(
+        externalities,
+        executor,
+        "BlockBuilder_finalize_block",
+        &[0u8; 0],
+    )
+    .await?;
+
+    Ok((
+        Block::new(header, extrinsics),
+        Some((inherent_data, digest)),
+    ))
+}
+
+pub async fn run<Block, HostFns>(shared: SharedParams, command: Command) -> Result<()>
+where
+    Block: BlockT<Hash = H256> + DeserializeOwned,
+    Block::Header: DeserializeOwned,
+    <Block::Hash as FromStr>::Err: Debug,
+    NumberFor<Block>: FromStr,
+    <NumberFor<Block> as FromStr>::Err: Debug,
+    HostFns: HostFunctions,
+{
+    let executor = build_executor::<HostFns>(&shared);
+    let ext = command
+        .state
+        .to_ext::<Block, HostFns>(&shared, &executor, None, true)
+        .await?;
+
+    if command.run_migrations {
+        log::info!("Running migrations...");
+        state_machine_call_with_proof::<Block, HostFns>(
+            &ext,
+            &executor,
+            "TryRuntime_on_runtime_upgrade",
+            command.try_state.encode().as_ref(),
+            Default::default(), // we don't really need any extensions here.
+            None,
+        )?;
+    }
+
+    log::info!("Fast forwarding {} blocks...", command.n_blocks);
+    let mut last_block_hash = ext.block_hash;
+    let mut last_block_number =
+        get_block_number::<Block>(last_block_hash, command.block_ws_uri()).await?;
+    let mut prev_block_building_info = None;
+
+    let mut ext = ext.inner_ext;
+
+    for _ in 1..=command.n_blocks {
+        // We are saving state before we overwrite it while producing new block.
+        let backend = ext.as_backend();
+
+        log::info!(
+            "Producing new empty block at height {:?}",
+            last_block_number + One::one()
+        );
+
+        let (next_block, new_block_building_info) = produce_next_block::<Block, HostFns>(
+            &mut ext,
+            &executor,
+            last_block_number,
+            last_block_hash,
+            &command.chain,
+            prev_block_building_info,
+        )
+        .await?;
+
+        log::info!("Produced a new block: {:?}", next_block.header());
+
+        // And now we restore previous state.
+        ext.backend = backend;
+
+        let state_root_check = true;
+        let signature_check = true;
+        let payload = (
+            next_block.clone(),
+            state_root_check,
+            signature_check,
+            command.try_state.clone(),
+        )
+            .encode();
+        call::<Block, _>(&mut ext, &executor, "TryRuntime_execute_block", &payload).await?;
+
+        log::info!("Executed the new block");
+
+        prev_block_building_info = new_block_building_info;
+        last_block_hash = next_block.hash();
+        last_block_number.saturating_inc();
+    }
+
+    Ok(())
+}
+
\ No newline at end of file diff --git a/src/try_runtime_core/commands/follow_chain.rs.html b/src/try_runtime_core/commands/follow_chain.rs.html index 59744fda2b0..f9fea07a8ca 100644 --- a/src/try_runtime_core/commands/follow_chain.rs.html +++ b/src/try_runtime_core/commands/follow_chain.rs.html @@ -208,7 +208,6 @@ 208 209 210 -211
// This file is part of try-runtime-cli.
 
 // Copyright (C) Parity Technologies (UK) Ltd.
@@ -362,7 +361,7 @@
             .as_mut()
             .expect("state_ext either existed or was just created");
 
-        let result = state_machine_call_with_proof::<HostFns>(
+        let result = state_machine_call_with_proof::<Block, HostFns>(
             state_ext,
             &executor,
             "TryRuntime_execute_block",
@@ -396,7 +395,6 @@
         let storage_changes = changes
             .drain_storage_changes(
                 &state_ext.backend,
-                &mut Default::default(),
                 // Note that in case a block contains a runtime upgrade, state version could
                 // potentially be incorrect here, this is very niche and would only result in
                 // unaligned roots, so this use case is ignored for now.
diff --git a/src/try_runtime_core/commands/mod.rs.html b/src/try_runtime_core/commands/mod.rs.html
index ba2b50e2d61..f41a053b684 100644
--- a/src/try_runtime_core/commands/mod.rs.html
+++ b/src/try_runtime_core/commands/mod.rs.html
@@ -158,6 +158,18 @@
 158
 159
 160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
 
// This file is part of try-runtime-cli.
 
 // Copyright (C) Parity Technologies (UK) Ltd.
@@ -188,6 +200,7 @@
 
 pub mod create_snapshot;
 pub mod execute_block;
+pub mod fast_forward;
 pub mod follow_chain;
 pub mod offchain_worker;
 pub mod on_runtime_upgrade;
@@ -279,12 +292,20 @@
     ///
     /// 1. Create a snapshot from a remote node:
     ///
-    /// try-runtime create-snapshot --uri <remote-node-uri> my_state.snap
+    /// try-runtime create-snapshot --uri ws://remote-node-uri my_state.snap
     ///
     /// 2. Utilize the snapshot with `on-runtime-upgrade`:
     ///
     /// try-runtime --runtime ./path/to/runtime.wasm on-runtime-upgrade snap --path my_state.snap
     CreateSnapshot(create_snapshot::Command),
+
+    /// Executes a runtime upgrade (optional), then mines a number of blocks while performing
+    /// try-state checks.
+    ///
+    /// The try-state checks are performed using the `TryRuntime_execute_block` runtime api.
+    ///
+    /// See [`TryRuntime`] and [`fast_forward::Command`] for more information.
+    FastForward(fast_forward::Command),
 }
 
 impl Action {
@@ -315,6 +336,9 @@
             Action::CreateSnapshot(cmd) => {
                 create_snapshot::run::<Block, HostFns>(shared.clone(), cmd.clone()).await
             }
+            Action::FastForward(cmd) => {
+                fast_forward::run::<Block, HostFns>(shared.clone(), cmd.clone()).await
+            }
         }
     }
 }
diff --git a/src/try_runtime_core/commands/offchain_worker.rs.html b/src/try_runtime_core/commands/offchain_worker.rs.html
index 30c54d463c9..92626450f25 100644
--- a/src/try_runtime_core/commands/offchain_worker.rs.html
+++ b/src/try_runtime_core/commands/offchain_worker.rs.html
@@ -199,7 +199,7 @@
         .map(|maybe_header| maybe_header.ok_or("Header does not exist"))??;
     let payload = header.encode();
 
-    let _ = state_machine_call::<HostFns>(
+    let _ = state_machine_call::<Block, HostFns>(
         &ext,
         &executor,
         "OffchainWorkerApi_offchain_worker",
diff --git a/src/try_runtime_core/commands/on_runtime_upgrade.rs.html b/src/try_runtime_core/commands/on_runtime_upgrade.rs.html
index e853d7f58f7..614b429cd11 100644
--- a/src/try_runtime_core/commands/on_runtime_upgrade.rs.html
+++ b/src/try_runtime_core/commands/on_runtime_upgrade.rs.html
@@ -214,6 +214,10 @@
 214
 215
 216
+217
+218
+219
+220
 
// This file is part of try-runtime-cli.
 
 // Copyright (C) Parity Technologies (UK) Ltd.
@@ -237,7 +241,8 @@
 use frame_try_runtime::UpgradeCheckSelect;
 use parity_scale_codec::Encode;
 use sc_executor::sp_wasm_interface::HostFunctions;
-use sp_core::{hexdisplay::HexDisplay, H256};
+use sp_api::HashingFor;
+use sp_core::{hexdisplay::HexDisplay, Hasher};
 use sp_runtime::traits::{Block as BlockT, NumberFor};
 use sp_state_machine::{CompactProof, StorageProof};
 
@@ -303,7 +308,7 @@
     }
 
     let pre_root = ext.backend.root();
-    let (_, proof, ref_time_results) = state_machine_call_with_proof::<HostFns>(
+    let (_, proof, ref_time_results) = state_machine_call_with_proof::<Block, HostFns>(
         &ext,
         &executor,
         "TryRuntime_on_runtime_upgrade",
@@ -312,7 +317,7 @@
         shared.export_proof,
     )?;
 
-    let pov_safety = analyse_pov(proof, *pre_root, command.no_weight_warnings);
+    let pov_safety = analyse_pov::<HashingFor<Block>>(proof, *pre_root, command.no_weight_warnings);
     let ref_time_safety = analyse_ref_time(ref_time_results, command.no_weight_warnings);
 
     match (pov_safety, ref_time_safety, command.no_weight_warnings) {
@@ -350,11 +355,14 @@
 const DEFAULT_WARNING_THRESHOLD: f32 = 0.8;
 
 /// Analyse the given ref_times and return if there is a potential weight safety issue.
-fn analyse_pov(proof: StorageProof, pre_root: H256, no_weight_warnings: bool) -> WeightSafety {
+fn analyse_pov<H>(proof: StorageProof, pre_root: H::Out, no_weight_warnings: bool) -> WeightSafety
+where
+    H: Hasher,
+{
     let encoded_proof_size = proof.encoded_size();
     let compact_proof = proof
         .clone()
-        .into_compact_proof::<sp_runtime::traits::BlakeTwo256>(pre_root)
+        .into_compact_proof::<H>(pre_root)
         .map_err(|e| {
             log::error!(target: LOG_TARGET, "failed to generate compact proof: {:?}", e);
             e
diff --git a/src/try_runtime_core/inherent_provider.rs.html b/src/try_runtime_core/inherent_provider.rs.html
new file mode 100644
index 00000000000..07b2fca3f9c
--- /dev/null
+++ b/src/try_runtime_core/inherent_provider.rs.html
@@ -0,0 +1,453 @@
+inherent_provider.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+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
+
// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! TODO: Docs
+
+use std::{str::FromStr, time::Duration};
+
+use itertools::Itertools;
+use parity_scale_codec::Encode;
+use sp_consensus_aura::{Slot, SlotDuration, AURA_ENGINE_ID};
+use sp_consensus_babe::{
+    digests::{PreDigest, SecondaryPlainPreDigest},
+    BABE_ENGINE_ID,
+};
+use sp_inherents::InherentData;
+use sp_runtime::{Digest, DigestItem};
+use sp_std::prelude::*;
+use sp_timestamp::TimestampInherentData;
+use strum::IntoEnumIterator;
+use strum_macros::{Display, EnumIter};
+
+/// Trait for providing the inherent data and digest items for block construction.
+pub trait InherentProvider {
+    type Err;
+
+    fn get_inherent_providers_and_pre_digest(
+        &self,
+        maybe_prev_info: Option<(InherentData, Digest)>,
+    ) -> InherentProviderResult<Self::Err>;
+}
+
+// Clippy asks that we abstract the return type because it's so long
+type InherentProviderResult<Err> =
+    Result<(Box<dyn sp_inherents::InherentDataProvider>, Vec<DigestItem>), Err>;
+
+/// Chains that have [`InherentProvider`] implemented.
+#[derive(Debug, Clone, clap::Parser, EnumIter, Display)]
+pub enum Chain {
+    // Relay chains
+    Polkadot,
+    Kusama,
+    Rococo,
+    Westend,
+
+    // Parachains
+    AlephZero,
+
+    // Development chains
+    SubstrateNodeTemplate,
+    SubstrateKitchenSink,
+}
+
+/// Implement FromStr so chain can be parsed as a CLI argument.
+impl FromStr for Chain {
+    type Err = String;
+
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        for chain in Chain::iter() {
+            if chain.to_string().to_lowercase() == s.to_lowercase() {
+                return Ok(chain);
+            }
+        }
+
+        // Clap error message already includes "Invalid value {s} for --chain <CHAIN>"
+        // This error will be logged after, so the user knows what the valid values are.
+        Err(format!(
+            "\nValid CHAIN values:\n{}\n{}",
+            Chain::iter().map(|s| format!("- {}", s)).join("\n"),
+            "Don't see your chain? Open a PR adding it to `inherent_provider.rs` on Github: https://github.com/paritytech/try-runtime-cli"
+        ))
+    }
+}
+
+impl InherentProvider for Chain {
+    type Err = String;
+
+    fn get_inherent_providers_and_pre_digest(
+        &self,
+        maybe_prev_info: Option<(InherentData, Digest)>,
+    ) -> InherentProviderResult<Self::Err> {
+        match *self {
+            // Relay chains
+            Chain::Polkadot | Chain::Kusama | Chain::Rococo | Chain::Westend => {
+                TimestampWithBabeInfoInherentProvider {
+                    blocktime: Duration::from_secs(6),
+                }
+                .get_inherent_providers_and_pre_digest(maybe_prev_info)
+            }
+
+            // Parachains
+            Chain::AlephZero => TimestampWithAuraInfoInherentProvider {
+                blocktime: Duration::from_secs(6),
+            }
+            .get_inherent_providers_and_pre_digest(maybe_prev_info),
+
+            // Development chains
+            Chain::SubstrateNodeTemplate => TimestampWithAuraInfoInherentProvider {
+                blocktime: Duration::from_secs(6),
+            }
+            .get_inherent_providers_and_pre_digest(maybe_prev_info),
+            Chain::SubstrateKitchenSink => SubstrateInherentProvider {
+                blocktime: Duration::from_secs(6),
+            }
+            .get_inherent_providers_and_pre_digest(maybe_prev_info),
+        }
+    }
+}
+
+struct SubstrateInherentProvider {
+    pub blocktime: Duration,
+}
+
+impl InherentProvider for SubstrateInherentProvider {
+    type Err = String;
+
+    fn get_inherent_providers_and_pre_digest(
+        &self,
+        maybe_prev_info: Option<(InherentData, Digest)>,
+    ) -> Result<(Box<dyn sp_inherents::InherentDataProvider>, Vec<DigestItem>), Self::Err> {
+        let blocktime_millis = self.blocktime.as_millis() as u64;
+
+        let timestamp_idp = match maybe_prev_info {
+            Some((inherent_data, _)) => sp_timestamp::InherentDataProvider::new(
+                inherent_data.timestamp_inherent_data().unwrap().unwrap() + blocktime_millis,
+            ),
+            None => sp_timestamp::InherentDataProvider::from_system_time(),
+        };
+
+        let slot =
+            Slot::from_timestamp(*timestamp_idp, SlotDuration::from_millis(blocktime_millis));
+        let slot_idp = sp_consensus_babe::inherents::InherentDataProvider::new(slot);
+
+        let storage_proof_idp = sp_transaction_storage_proof::InherentDataProvider::new(None);
+
+        let digest = vec![DigestItem::PreRuntime(
+            BABE_ENGINE_ID,
+            PreDigest::SecondaryPlain(SecondaryPlainPreDigest {
+                slot,
+                authority_index: 0,
+            })
+            .encode(),
+        )];
+
+        Ok((
+            Box::new((slot_idp, timestamp_idp, storage_proof_idp)),
+            digest,
+        ))
+    }
+}
+
+struct TimestampWithAuraInfoInherentProvider {
+    blocktime: Duration,
+}
+
+impl InherentProvider for TimestampWithAuraInfoInherentProvider {
+    type Err = String;
+
+    fn get_inherent_providers_and_pre_digest(
+        &self,
+        maybe_prev_info: Option<(InherentData, Digest)>,
+    ) -> Result<(Box<dyn sp_inherents::InherentDataProvider>, Vec<DigestItem>), Self::Err> {
+        let blocktime_millis = self.blocktime.as_millis() as u64;
+
+        let timestamp_idp = match maybe_prev_info {
+            Some((inherent_data, _)) => sp_timestamp::InherentDataProvider::new(
+                inherent_data.timestamp_inherent_data().unwrap().unwrap() + blocktime_millis,
+            ),
+            None => sp_timestamp::InherentDataProvider::from_system_time(),
+        };
+        let slot =
+            Slot::from_timestamp(*timestamp_idp, SlotDuration::from_millis(blocktime_millis));
+        let digest = vec![DigestItem::PreRuntime(AURA_ENGINE_ID, slot.encode())];
+
+        Ok((Box::new(timestamp_idp), digest))
+    }
+}
+
+struct TimestampWithBabeInfoInherentProvider {
+    blocktime: Duration,
+}
+
+impl InherentProvider for TimestampWithBabeInfoInherentProvider {
+    type Err = String;
+
+    fn get_inherent_providers_and_pre_digest(
+        &self,
+        maybe_prev_info: Option<(InherentData, Digest)>,
+    ) -> Result<(Box<dyn sp_inherents::InherentDataProvider>, Vec<DigestItem>), Self::Err> {
+        let blocktime_millis = self.blocktime.as_millis() as u64;
+
+        let timestamp_idp = match maybe_prev_info {
+            Some((inherent_data, _)) => sp_timestamp::InherentDataProvider::new(
+                inherent_data.timestamp_inherent_data().unwrap().unwrap() + blocktime_millis,
+            ),
+            None => sp_timestamp::InherentDataProvider::from_system_time(),
+        };
+
+        let slot =
+            Slot::from_timestamp(*timestamp_idp, SlotDuration::from_millis(blocktime_millis));
+        let slot_idp = sp_consensus_babe::inherents::InherentDataProvider::new(slot);
+
+        let digest = vec![DigestItem::PreRuntime(
+            BABE_ENGINE_ID,
+            PreDigest::SecondaryPlain(SecondaryPlainPreDigest {
+                slot,
+                authority_index: 0,
+            })
+            .encode(),
+        )];
+
+        Ok((Box::new((slot_idp, timestamp_idp)), digest))
+    }
+}
+
\ No newline at end of file diff --git a/src/try_runtime_core/lib.rs.html b/src/try_runtime_core/lib.rs.html index 4c684bd3433..743cbc4adc2 100644 --- a/src/try_runtime_core/lib.rs.html +++ b/src/try_runtime_core/lib.rs.html @@ -242,6 +242,13 @@ 242 243 244 +245 +246 +247 +248 +249 +250 +251
// This file is part of try-runtime-cli.
 
 // Copyright (C) Parity Technologies (UK) Ltd.
@@ -261,12 +268,12 @@
 
 use std::{fmt::Debug, path::PathBuf, str::FromStr, time::Duration};
 
-use frame_remote_externalities::TestExternalities;
 use parity_scale_codec::{Decode, DecodeAll};
 use sc_cli::{execution_method_from_cli, RuntimeVersion};
 use sc_executor::{
     sp_wasm_interface::HostFunctions, HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY,
 };
+use sp_api::HashingFor;
 use sp_core::{
     offchain::{
         testing::{TestOffchainExt, TestTransactionPoolExt},
@@ -278,12 +285,15 @@
 use sp_externalities::Extensions;
 use sp_keystore::{testing::MemoryKeystore, KeystoreExt};
 use sp_runtime::traits::Block as BlockT;
-use sp_state_machine::{OverlayedChanges, StateMachine, StorageProof, TrieBackendBuilder};
+use sp_state_machine::{
+    OverlayedChanges, StateMachine, StorageProof, TestExternalities, TrieBackendBuilder,
+};
 use sp_weights::Weight;
 
 use crate::shared_parameters::SharedParams;
 
 pub mod commands;
+pub mod inherent_provider;
 mod parse;
 pub mod shared_parameters;
 pub mod state;
@@ -322,7 +332,7 @@
 /// Ensure that the given `ext` is compiled with `try-runtime`
 fn ensure_try_runtime<Block: BlockT, HostFns: HostFunctions>(
     executor: &WasmExecutor<HostFns>,
-    ext: &mut TestExternalities,
+    ext: &mut TestExternalities<HashingFor<Block>>,
 ) -> bool {
     use sp_api::RuntimeApiInfo;
     let final_code = ext
@@ -341,13 +351,13 @@
 
 /// Execute the given `method` and `data` on top of `ext`, returning the results (encoded) and the
 /// state `changes`.
-pub(crate) fn state_machine_call<HostFns: HostFunctions>(
-    ext: &TestExternalities,
+pub(crate) fn state_machine_call<Block: BlockT, HostFns: HostFunctions>(
+    ext: &TestExternalities<HashingFor<Block>>,
     executor: &WasmExecutor<HostFns>,
     method: &'static str,
     data: &[u8],
     mut extensions: Extensions,
-) -> sc_cli::Result<(OverlayedChanges, Vec<u8>)> {
+) -> sc_cli::Result<(OverlayedChanges<HashingFor<Block>>, Vec<u8>)> {
     let mut changes = Default::default();
     let encoded_result = StateMachine::new(
         &ext.backend,
@@ -375,14 +385,18 @@
 /// information.
 ///
 /// Make sure [`LOG_TARGET`] is enabled in logging.
-pub(crate) fn state_machine_call_with_proof<HostFns: HostFunctions>(
-    ext: &TestExternalities,
+pub(crate) fn state_machine_call_with_proof<Block: BlockT, HostFns: HostFunctions>(
+    ext: &TestExternalities<HashingFor<Block>>,
     executor: &WasmExecutor<HostFns>,
     method: &'static str,
     data: &[u8],
     mut extensions: Extensions,
     maybe_export_proof: Option<PathBuf>,
-) -> sc_cli::Result<(OverlayedChanges, StorageProof, RefTimeInfo)> {
+) -> sc_cli::Result<(
+    OverlayedChanges<HashingFor<Block>>,
+    StorageProof,
+    RefTimeInfo,
+)> {
     let mut changes = Default::default();
     let backend = ext.backend.clone();
     let runtime_code_backend = sp_state_machine::backend::BackendRuntimeCode::new(&backend);
diff --git a/try_runtime/fn.init_env.html b/try_runtime/fn.init_env.html
index 1fb3a8ba56b..81f6eaf5007 100644
--- a/try_runtime/fn.init_env.html
+++ b/try_runtime/fn.init_env.html
@@ -1 +1 @@
-init_env in try_runtime - Rust

Function try_runtime::init_env

source ·
pub(crate) fn init_env()
\ No newline at end of file +init_env in try_runtime - Rust

Function try_runtime::init_env

source ·
pub(crate) fn init_env()
\ No newline at end of file diff --git a/try_runtime/fn.main.html b/try_runtime/fn.main.html index f4918d60d6e..5f9c32bd861 100644 --- a/try_runtime/fn.main.html +++ b/try_runtime/fn.main.html @@ -1 +1 @@ -main in try_runtime - Rust

Function try_runtime::main

source ·
pub(crate) fn main()
\ No newline at end of file +main in try_runtime - Rust

Function try_runtime::main

source ·
pub(crate) fn main()
\ No newline at end of file diff --git a/try_runtime/index.html b/try_runtime/index.html index 7bcad54b1b3..6d95da985f1 100644 --- a/try_runtime/index.html +++ b/try_runtime/index.html @@ -1,4 +1,4 @@ -try_runtime - Rust

Crate try_runtime

source ·
Expand description

Try-runtime

+try_runtime - Rust

Crate try_runtime

source ·
Expand description

Try-runtime

Substrate’s programmatic testing framework.

As the name suggests, try-runtime is a detailed testing framework that gives you a lot of @@ -59,6 +59,8 @@

Installation

Action::OnRuntimeUpgrade: execute all the OnRuntimeUpgrade hooks.
  • Action::ExecuteBlock: re-execute the given block.
  • +
  • Action::FastForward: execute OnRuntimeUpgrade hooks, then fast-forward the chain a +given number of blocks while checking try-state invarients.
  • Action::OffchainWorker: re-execute the given block’s offchain worker code path.
  • Action::FollowChain: continuously execute the blocks of a remote chain on top of a given runtime.
  • diff --git a/try_runtime_core/all.html b/try_runtime_core/all.html index f2e5ca2d304..abf875439f9 100644 --- a/try_runtime_core/all.html +++ b/try_runtime_core/all.html @@ -1 +1 @@ -List of all items in this crate
    \ No newline at end of file +List of all items in this crate
    \ No newline at end of file diff --git a/try_runtime_core/commands/enum.Action.html b/try_runtime_core/commands/enum.Action.html index c6d1faee0d5..b4c23633d3a 100644 --- a/try_runtime_core/commands/enum.Action.html +++ b/try_runtime_core/commands/enum.Action.html @@ -1,9 +1,10 @@ -Action in try_runtime_core::commands - Rust
    pub enum Action {
    +Action in try_runtime_core::commands - Rust
    pub enum Action {
         OnRuntimeUpgrade(Command),
         ExecuteBlock(Command),
         OffchainWorker(Command),
         FollowChain(Command),
         CreateSnapshot(Command),
    +    FastForward(Command),
     }
    Expand description

    Possible actions of try-runtime.

    Variants§

    §

    OnRuntimeUpgrade(Command)

    Execute the migrations of the given runtime

    This uses a custom runtime api call, namely “TryRuntime_on_runtime_upgrade”. The code path @@ -41,12 +42,16 @@

    1. Create a snapshot from a remote node:
    -

    try-runtime create-snapshot –uri my_state.snap

    +

    try-runtime create-snapshot –uri ws://remote-node-uri my_state.snap

    1. Utilize the snapshot with on-runtime-upgrade:

    try-runtime –runtime ./path/to/runtime.wasm on-runtime-upgrade snap –path my_state.snap

    -

    Implementations§

    source§

    impl Action

    source

    pub async fn run<Block, HostFns>(&self, shared: &SharedParams) -> Result<()>where +

    §

    FastForward(Command)

    Executes a runtime upgrade (optional), then mines a number of blocks while performing +try-state checks.

    +

    The try-state checks are performed using the TryRuntime_execute_block runtime api.

    +

    See TryRuntime and fast_forward::Command for more information.

    +

    Implementations§

    source§

    impl Action

    source

    pub async fn run<Block, HostFns>(&self, shared: &SharedParams) -> Result<()>where Block: BlockT<Hash = H256> + DeserializeOwned, Block::Header: DeserializeOwned, Block::Hash: FromStr, @@ -54,15 +59,15 @@ <NumberFor<Block> as FromStr>::Err: Debug, <NumberFor<Block> as TryInto<u64>>::Error: Debug, NumberFor<Block>: FromStr, - HostFns: HostFunctions,

    Trait Implementations§

    source§

    impl Clone for Action

    source§

    fn clone(&self) -> Action

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Action

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for Action

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( + HostFns: HostFunctions,

    Trait Implementations§

    source§

    impl Clone for Action

    source§

    fn clone(&self) -> Action

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for Action

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for Action

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut<'b>( +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Subcommand for Action

    source§

    fn augment_subcommands<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for Twhere +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Subcommand for Action

    source§

    fn augment_subcommands<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for Twhere T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> Any for Twhere T: Any,

    §

    fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

    §

    fn type_name(&self) -> &'static str

    §

    impl<T> AnySync for Twhere T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static>

    source§

    impl<T> Borrow<T> for Twhere diff --git a/try_runtime_core/commands/fast_forward/fn.run.html b/try_runtime_core/commands/fast_forward/fn.run.html new file mode 100644 index 00000000000..9535a8cbbab --- /dev/null +++ b/try_runtime_core/commands/fast_forward/fn.run.html @@ -0,0 +1,10 @@ +run in try_runtime_core::commands::fast_forward - Rust
    pub async fn run<Block, HostFns>(
    +    shared: SharedParams,
    +    command: Command
    +) -> Result<()>where
    +    Block: BlockT<Hash = H256> + DeserializeOwned,
    +    Block::Header: DeserializeOwned,
    +    <Block::Hash as FromStr>::Err: Debug,
    +    NumberFor<Block>: FromStr,
    +    <NumberFor<Block> as FromStr>::Err: Debug,
    +    HostFns: HostFunctions,
    \ No newline at end of file diff --git a/try_runtime_core/commands/fast_forward/index.html b/try_runtime_core/commands/fast_forward/index.html new file mode 100644 index 00000000000..688500e9297 --- /dev/null +++ b/try_runtime_core/commands/fast_forward/index.html @@ -0,0 +1 @@ +try_runtime_core::commands::fast_forward - Rust
    \ No newline at end of file diff --git a/try_runtime_core/commands/fast_forward/sidebar-items.js b/try_runtime_core/commands/fast_forward/sidebar-items.js new file mode 100644 index 00000000000..e1e3fc6b8d8 --- /dev/null +++ b/try_runtime_core/commands/fast_forward/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["run"],"struct":["Command"]}; \ No newline at end of file diff --git a/try_runtime_core/commands/fast_forward/struct.Command.html b/try_runtime_core/commands/fast_forward/struct.Command.html new file mode 100644 index 00000000000..50a210bc01f --- /dev/null +++ b/try_runtime_core/commands/fast_forward/struct.Command.html @@ -0,0 +1,80 @@ +Command in try_runtime_core::commands::fast_forward - Rust
    pub struct Command {
    +    pub n_blocks: u64,
    +    pub chain: Chain,
    +    pub block_ws_uri: Option<String>,
    +    pub try_state: TryStateSelect,
    +    pub run_migrations: bool,
    +    pub state: State,
    +}
    Expand description

    Configuration for run.

    +

    Fields§

    §n_blocks: u64

    How many empty blocks should be processed.

    +
    §chain: Chain

    Chain

    +
    §block_ws_uri: Option<String>

    The ws uri from which to fetch the block.

    +

    If state is Live, this is ignored. Otherwise, it must not be empty.

    +
    §try_state: TryStateSelect

    Which try-state targets to execute when running this command.

    +

    Expected values:

    +
      +
    • all
    • +
    • none
    • +
    • A comma separated list of pallets, as per pallet names in construct_runtime!() (e.g. +Staking, System).
    • +
    • rr-[x] where [x] is a number. Then, the given number of pallets are checked in a +round-robin fashion.
    • +
    +
    §run_migrations: bool

    Whether to run pending migrations before fast-forwarding.

    +
    §state: State

    The state type to use.

    +

    Trait Implementations§

    source§

    impl Args for Command

    source§

    fn group_id() -> Option<Id>

    Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
    source§

    fn augment_args<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    impl Clone for Command

    source§

    fn clone(&self) -> Command

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl CommandFactory for Command

    source§

    fn command<'b>() -> Command

    Build a [Command] that can instantiate Self. Read more
    source§

    fn command_for_update<'b>() -> Command

    Build a [Command] that can update self. Read more
    source§

    impl Debug for Command

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for Command

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( + __clap_arg_matches: &mut ArgMatches +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( + &mut self, + __clap_arg_matches: &ArgMatches +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut( + &mut self, + __clap_arg_matches: &mut ArgMatches +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Parser for Command

    §

    fn parse() -> Self

    Parse from std::env::args_os(), exit on error
    §

    fn try_parse() -> Result<Self, Error<RichFormatter>>

    Parse from std::env::args_os(), return Err on error.
    §

    fn parse_from<I, T>(itr: I) -> Selfwhere + I: IntoIterator<Item = T>, + T: Into<OsString> + Clone,

    Parse from iterator, exit on error
    §

    fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where + I: IntoIterator<Item = T>, + T: Into<OsString> + Clone,

    Parse from iterator, return Err on error.
    §

    fn update_from<I, T>(&mut self, itr: I)where + I: IntoIterator<Item = T>, + T: Into<OsString> + Clone,

    Update from iterator, exit on error
    §

    fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error<RichFormatter>>where + I: IntoIterator<Item = T>, + T: Into<OsString> + Clone,

    Update from iterator, return Err on error.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for Twhere + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> Any for Twhere + T: Any,

    §

    fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

    §

    fn type_name(&self) -> &'static str

    §

    impl<T> AnySync for Twhere + T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static>

    source§

    impl<T> Borrow<T> for Twhere + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for Twhere + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CheckedConversion for T

    §

    fn checked_from<T>(t: T) -> Option<Self>where + Self: TryFrom<T>,

    Convert from a value of T into an equivalent instance of Option<Self>. Read more
    §

    fn checked_into<T>(self) -> Option<T>where + Self: TryInto<T>,

    Consume self to return Some equivalent value of Option<T>. Read more
    source§

    impl<T> DynClone for Twhere + T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for Twhere + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +
    §

    impl<T> IsType<T> for T

    §

    fn from_ref(t: &T) -> &T

    Cast reference.
    §

    fn into_ref(&self) -> &T

    Cast reference.
    §

    fn from_mut(t: &mut T) -> &mut T

    Cast mutable reference.
    §

    fn into_mut(&mut self) -> &mut T

    Cast mutable reference.
    §

    impl<T, Outer> IsWrappedBy<Outer> for Twhere + Outer: AsRef<T> + AsMut<T> + From<T>, + T: From<Outer>,

    §

    fn from_ref(outer: &Outer) -> &T

    Get a reference to the inner from the outer.

    +
    §

    fn from_mut(outer: &mut Outer) -> &mut T

    Get a mutable reference to the inner from the outer.

    +
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = mem::align_of::<T>()

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same<T> for T

    §

    type Output = T

    Should always be Self
    §

    impl<T> SaturatedConversion for T

    §

    fn saturated_from<T>(t: T) -> Selfwhere + Self: UniqueSaturatedFrom<T>,

    Convert from a value of T into an equivalent instance of Self. Read more
    §

    fn saturated_into<T>(self) -> Twhere + Self: UniqueSaturatedInto<T>,

    Consume self to return an equivalent value of T. Read more
    source§

    impl<T> ToOwned for Twhere + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<S, T> UncheckedInto<T> for Swhere + T: UncheckedFrom<S>,

    §

    fn unchecked_into(self) -> T

    The counterpart to unchecked_from.
    §

    impl<T, S> UniqueSaturatedInto<T> for Swhere + T: Bounded, + S: TryInto<T>,

    §

    fn unique_saturated_into(self) -> T

    Consume self to return an equivalent value of T.
    §

    impl<V, T> VZip<V> for Twhere + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
    §

    impl<T> JsonSchemaMaybe for T

    §

    impl<T> MaybeDebug for Twhere + T: Debug,

    §

    impl<T> MaybeRefUnwindSafe for Twhere + T: RefUnwindSafe,

    §

    impl<T> MaybeSend for Twhere + T: Send,

    \ No newline at end of file diff --git a/try_runtime_core/commands/follow_chain/fn.run.html b/try_runtime_core/commands/follow_chain/fn.run.html index 6b95e872b91..cb662c9827b 100644 --- a/try_runtime_core/commands/follow_chain/fn.run.html +++ b/try_runtime_core/commands/follow_chain/fn.run.html @@ -1,4 +1,4 @@ -run in try_runtime_core::commands::follow_chain - Rust
    pub async fn run<Block, HostFns>(
    +run in try_runtime_core::commands::follow_chain - Rust
    pub async fn run<Block, HostFns>(
         shared: SharedParams,
         command: Command
     ) -> Result<()>where
    diff --git a/try_runtime_core/commands/follow_chain/index.html b/try_runtime_core/commands/follow_chain/index.html
    index d33656c6793..c7cfe5e692c 100644
    --- a/try_runtime_core/commands/follow_chain/index.html
    +++ b/try_runtime_core/commands/follow_chain/index.html
    @@ -1 +1 @@
    -try_runtime_core::commands::follow_chain - Rust
    \ No newline at end of file +try_runtime_core::commands::follow_chain - Rust
    \ No newline at end of file diff --git a/try_runtime_core/commands/index.html b/try_runtime_core/commands/index.html index 2d38bff0861..ad7f0e971fb 100644 --- a/try_runtime_core/commands/index.html +++ b/try_runtime_core/commands/index.html @@ -1 +1 @@ -try_runtime_core::commands - Rust

    Modules

    Structs

    • Ready to use, vanilla command combining common actions.

    Enums

    • Possible actions of try-runtime.
    \ No newline at end of file +try_runtime_core::commands - Rust

    Modules

    Structs

    • Ready to use, vanilla command combining common actions.

    Enums

    • Possible actions of try-runtime.
    \ No newline at end of file diff --git a/try_runtime_core/commands/on_runtime_upgrade/fn.run.html b/try_runtime_core/commands/on_runtime_upgrade/fn.run.html index 5c9382a0bbd..00985886445 100644 --- a/try_runtime_core/commands/on_runtime_upgrade/fn.run.html +++ b/try_runtime_core/commands/on_runtime_upgrade/fn.run.html @@ -1,4 +1,4 @@ -run in try_runtime_core::commands::on_runtime_upgrade - Rust
    pub async fn run<Block, HostFns>(
    +run in try_runtime_core::commands::on_runtime_upgrade - Rust
    pub async fn run<Block, HostFns>(
         shared: SharedParams,
         command: Command
     ) -> Result<()>where
    diff --git a/try_runtime_core/commands/on_runtime_upgrade/index.html b/try_runtime_core/commands/on_runtime_upgrade/index.html
    index 0984a142262..37814d9c3cd 100644
    --- a/try_runtime_core/commands/on_runtime_upgrade/index.html
    +++ b/try_runtime_core/commands/on_runtime_upgrade/index.html
    @@ -1 +1 @@
    -try_runtime_core::commands::on_runtime_upgrade - Rust
    \ No newline at end of file +try_runtime_core::commands::on_runtime_upgrade - Rust
    \ No newline at end of file diff --git a/try_runtime_core/commands/on_runtime_upgrade/struct.Command.html b/try_runtime_core/commands/on_runtime_upgrade/struct.Command.html index 30fa45aa65f..531680545c5 100644 --- a/try_runtime_core/commands/on_runtime_upgrade/struct.Command.html +++ b/try_runtime_core/commands/on_runtime_upgrade/struct.Command.html @@ -1,4 +1,4 @@ -Command in try_runtime_core::commands::on_runtime_upgrade - Rust
    pub struct Command {
    +Command in try_runtime_core::commands::on_runtime_upgrade - Rust
    pub struct Command {
         pub state: State,
         pub checks: UpgradeCheckSelect,
         pub no_weight_warnings: bool,
    @@ -15,15 +15,15 @@
     

    Performing any checks will potentially invalidate the measured PoV/Weight.

    §no_weight_warnings: bool

    Whether to assume that the runtime is a relay chain runtime.

    This is used to adjust the behavior of weight measurement warnings.

    -

    Trait Implementations§

    source§

    impl Args for Command

    source§

    fn group_id() -> Option<Id>

    Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
    source§

    fn augment_args<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    impl Clone for Command

    source§

    fn clone(&self) -> Command

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl CommandFactory for Command

    source§

    fn command<'b>() -> Command

    Build a [Command] that can instantiate Self. Read more
    source§

    fn command_for_update<'b>() -> Command

    Build a [Command] that can update self. Read more
    source§

    impl Debug for Command

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for Command

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( +

    Trait Implementations§

    source§

    impl Args for Command

    source§

    fn group_id() -> Option<Id>

    Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
    source§

    fn augment_args<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    impl Clone for Command

    source§

    fn clone(&self) -> Command

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl CommandFactory for Command

    source§

    fn command<'b>() -> Command

    Build a [Command] that can instantiate Self. Read more
    source§

    fn command_for_update<'b>() -> Command

    Build a [Command] that can update self. Read more
    source§

    impl Debug for Command

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for Command

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut( +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Parser for Command

    §

    fn parse() -> Self

    Parse from std::env::args_os(), exit on error
    §

    fn try_parse() -> Result<Self, Error<RichFormatter>>

    Parse from std::env::args_os(), return Err on error.
    §

    fn parse_from<I, T>(itr: I) -> Selfwhere +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Parser for Command

    §

    fn parse() -> Self

    Parse from std::env::args_os(), exit on error
    §

    fn try_parse() -> Result<Self, Error<RichFormatter>>

    Parse from std::env::args_os(), return Err on error.
    §

    fn parse_from<I, T>(itr: I) -> Selfwhere I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

    Parse from iterator, exit on error
    §

    fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where I: IntoIterator<Item = T>, diff --git a/try_runtime_core/commands/sidebar-items.js b/try_runtime_core/commands/sidebar-items.js index ed58ab4dbc7..4af2c27fea8 100644 --- a/try_runtime_core/commands/sidebar-items.js +++ b/try_runtime_core/commands/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["Action"],"mod":["create_snapshot","execute_block","follow_chain","offchain_worker","on_runtime_upgrade"],"struct":["TryRuntime"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["Action"],"mod":["create_snapshot","execute_block","fast_forward","follow_chain","offchain_worker","on_runtime_upgrade"],"struct":["TryRuntime"]}; \ No newline at end of file diff --git a/try_runtime_core/commands/struct.TryRuntime.html b/try_runtime_core/commands/struct.TryRuntime.html index c5ff8d81012..8ff6b5f9f99 100644 --- a/try_runtime_core/commands/struct.TryRuntime.html +++ b/try_runtime_core/commands/struct.TryRuntime.html @@ -1,8 +1,8 @@ -TryRuntime in try_runtime_core::commands - Rust
    pub struct TryRuntime {
    +TryRuntime in try_runtime_core::commands - Rust
    pub struct TryRuntime {
         pub shared: SharedParams,
         pub action: Action,
     }
    Expand description

    Ready to use, vanilla command combining common actions.

    -

    Fields§

    §shared: SharedParams§action: Action

    Implementations§

    source§

    impl TryRuntime

    source

    pub async fn run<Block, HostFns>(&self) -> Result<()>where +

    Fields§

    §shared: SharedParams§action: Action

    Implementations§

    source§

    impl TryRuntime

    source

    pub async fn run<Block, HostFns>(&self) -> Result<()>where Block: BlockT<Hash = H256> + DeserializeOwned, Block::Header: DeserializeOwned, Block::Hash: FromStr, @@ -10,15 +10,15 @@ <NumberFor<Block> as FromStr>::Err: Debug, <NumberFor<Block> as TryInto<u64>>::Error: Debug, NumberFor<Block>: FromStr, - HostFns: HostFunctions,

    Trait Implementations§

    source§

    impl Args for TryRuntime

    source§

    fn group_id() -> Option<Id>

    Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
    source§

    fn augment_args<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    impl Clone for TryRuntime

    source§

    fn clone(&self) -> TryRuntime

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl CommandFactory for TryRuntime

    source§

    fn command<'b>() -> Command

    Build a [Command] that can instantiate Self. Read more
    source§

    fn command_for_update<'b>() -> Command

    Build a [Command] that can update self. Read more
    source§

    impl Debug for TryRuntime

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for TryRuntime

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( + HostFns: HostFunctions,

    Trait Implementations§

    source§

    impl Args for TryRuntime

    source§

    fn group_id() -> Option<Id>

    Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
    source§

    fn augment_args<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    impl Clone for TryRuntime

    source§

    fn clone(&self) -> TryRuntime

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl CommandFactory for TryRuntime

    source§

    fn command<'b>() -> Command

    Build a [Command] that can instantiate Self. Read more
    source§

    fn command_for_update<'b>() -> Command

    Build a [Command] that can update self. Read more
    source§

    impl Debug for TryRuntime

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for TryRuntime

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut( +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Parser for TryRuntime

    §

    fn parse() -> Self

    Parse from std::env::args_os(), exit on error
    §

    fn try_parse() -> Result<Self, Error<RichFormatter>>

    Parse from std::env::args_os(), return Err on error.
    §

    fn parse_from<I, T>(itr: I) -> Selfwhere +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl Parser for TryRuntime

    §

    fn parse() -> Self

    Parse from std::env::args_os(), exit on error
    §

    fn try_parse() -> Result<Self, Error<RichFormatter>>

    Parse from std::env::args_os(), return Err on error.
    §

    fn parse_from<I, T>(itr: I) -> Selfwhere I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

    Parse from iterator, exit on error
    §

    fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where I: IntoIterator<Item = T>, diff --git a/try_runtime_core/index.html b/try_runtime_core/index.html index c3012af9697..e614a755de3 100644 --- a/try_runtime_core/index.html +++ b/try_runtime_core/index.html @@ -1 +1 @@ -try_runtime_core - Rust
    \ No newline at end of file +try_runtime_core - Rust
    \ No newline at end of file diff --git a/try_runtime_core/inherent_provider/enum.Chain.html b/try_runtime_core/inherent_provider/enum.Chain.html new file mode 100644 index 00000000000..150ba7cf3c1 --- /dev/null +++ b/try_runtime_core/inherent_provider/enum.Chain.html @@ -0,0 +1,73 @@ +Chain in try_runtime_core::inherent_provider - Rust
    pub enum Chain {
    +    Polkadot,
    +    Kusama,
    +    Rococo,
    +    Westend,
    +    AlephZero,
    +    SubstrateNodeTemplate,
    +    SubstrateKitchenSink,
    +}
    Expand description

    Chains that have InherentProvider implemented.

    +

    Variants§

    §

    Polkadot

    §

    Kusama

    §

    Rococo

    §

    Westend

    §

    AlephZero

    §

    SubstrateNodeTemplate

    §

    SubstrateKitchenSink

    Trait Implementations§

    source§

    impl Clone for Chain

    source§

    fn clone(&self) -> Chain

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl CommandFactory for Chain

    source§

    fn command<'b>() -> Command

    Build a [Command] that can instantiate Self. Read more
    source§

    fn command_for_update<'b>() -> Command

    Build a [Command] that can update self. Read more
    source§

    impl Debug for Chain

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for Chain

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    source§

    impl FromArgMatches for Chain

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( + __clap_arg_matches: &mut ArgMatches +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( + &mut self, + __clap_arg_matches: &ArgMatches +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut<'b>( + &mut self, + __clap_arg_matches: &mut ArgMatches +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    impl FromStr for Chain

    Implement FromStr so chain can be parsed as a CLI argument.

    +
    §

    type Err = String

    The associated error which can be returned from parsing.
    source§

    fn from_str(s: &str) -> Result<Self, Self::Err>

    Parses a string s to return a value of this type. Read more
    source§

    impl InherentProvider for Chain

    §

    type Err = String

    source§

    fn get_inherent_providers_and_pre_digest( + &self, + maybe_prev_info: Option<(InherentData, Digest)> +) -> Result<(Box<dyn InherentDataProvider>, Vec<DigestItem>), Self::Err>

    source§

    impl IntoEnumIterator for Chain

    source§

    impl Parser for Chain

    §

    fn parse() -> Self

    Parse from std::env::args_os(), exit on error
    §

    fn try_parse() -> Result<Self, Error<RichFormatter>>

    Parse from std::env::args_os(), return Err on error.
    §

    fn parse_from<I, T>(itr: I) -> Selfwhere + I: IntoIterator<Item = T>, + T: Into<OsString> + Clone,

    Parse from iterator, exit on error
    §

    fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where + I: IntoIterator<Item = T>, + T: Into<OsString> + Clone,

    Parse from iterator, return Err on error.
    §

    fn update_from<I, T>(&mut self, itr: I)where + I: IntoIterator<Item = T>, + T: Into<OsString> + Clone,

    Update from iterator, exit on error
    §

    fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error<RichFormatter>>where + I: IntoIterator<Item = T>, + T: Into<OsString> + Clone,

    Update from iterator, return Err on error.
    source§

    impl Subcommand for Chain

    source§

    fn augment_subcommands<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    fn has_subcommand(__clap_name: &str) -> bool

    Test whether Self can parse a specific subcommand

    Auto Trait Implementations§

    §

    impl RefUnwindSafe for Chain

    §

    impl Send for Chain

    §

    impl Sync for Chain

    §

    impl Unpin for Chain

    §

    impl UnwindSafe for Chain

    Blanket Implementations§

    source§

    impl<T> Any for Twhere + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> Any for Twhere + T: Any,

    §

    fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

    §

    fn type_name(&self) -> &'static str

    §

    impl<T> AnySync for Twhere + T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static>

    source§

    impl<T> Borrow<T> for Twhere + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for Twhere + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CheckedConversion for T

    §

    fn checked_from<T>(t: T) -> Option<Self>where + Self: TryFrom<T>,

    Convert from a value of T into an equivalent instance of Option<Self>. Read more
    §

    fn checked_into<T>(self) -> Option<T>where + Self: TryInto<T>,

    Consume self to return Some equivalent value of Option<T>. Read more
    source§

    impl<T> DynClone for Twhere + T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for Twhere + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +
    §

    impl<T> IsType<T> for T

    §

    fn from_ref(t: &T) -> &T

    Cast reference.
    §

    fn into_ref(&self) -> &T

    Cast reference.
    §

    fn from_mut(t: &mut T) -> &mut T

    Cast mutable reference.
    §

    fn into_mut(&mut self) -> &mut T

    Cast mutable reference.
    §

    impl<T, Outer> IsWrappedBy<Outer> for Twhere + Outer: AsRef<T> + AsMut<T> + From<T>, + T: From<Outer>,

    §

    fn from_ref(outer: &Outer) -> &T

    Get a reference to the inner from the outer.

    +
    §

    fn from_mut(outer: &mut Outer) -> &mut T

    Get a mutable reference to the inner from the outer.

    +
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = mem::align_of::<T>()

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same<T> for T

    §

    type Output = T

    Should always be Self
    §

    impl<T> SaturatedConversion for T

    §

    fn saturated_from<T>(t: T) -> Selfwhere + Self: UniqueSaturatedFrom<T>,

    Convert from a value of T into an equivalent instance of Self. Read more
    §

    fn saturated_into<T>(self) -> Twhere + Self: UniqueSaturatedInto<T>,

    Consume self to return an equivalent value of T. Read more
    source§

    impl<T> ToOwned for Twhere + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T> ToString for Twhere + T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<S, T> UncheckedInto<T> for Swhere + T: UncheckedFrom<S>,

    §

    fn unchecked_into(self) -> T

    The counterpart to unchecked_from.
    §

    impl<T, S> UniqueSaturatedInto<T> for Swhere + T: Bounded, + S: TryInto<T>,

    §

    fn unique_saturated_into(self) -> T

    Consume self to return an equivalent value of T.
    §

    impl<V, T> VZip<V> for Twhere + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
    §

    impl<T> Error for Twhere + T: 'static + Debug + Display + Send + Sync,

    §

    impl<T> JsonSchemaMaybe for T

    §

    impl<T> MaybeDebug for Twhere + T: Debug,

    §

    impl<T> MaybeDisplay for Twhere + T: Display,

    §

    impl<T> MaybeFromStr for Twhere + T: FromStr,

    §

    impl<T> MaybeRefUnwindSafe for Twhere + T: RefUnwindSafe,

    §

    impl<T> MaybeSend for Twhere + T: Send,

    \ No newline at end of file diff --git a/try_runtime_core/inherent_provider/index.html b/try_runtime_core/inherent_provider/index.html new file mode 100644 index 00000000000..79baabd838c --- /dev/null +++ b/try_runtime_core/inherent_provider/index.html @@ -0,0 +1,2 @@ +try_runtime_core::inherent_provider - Rust
    Expand description

    TODO: Docs

    +

    Structs

    Enums

    Traits

    • Trait for providing the inherent data and digest items for block construction.
    \ No newline at end of file diff --git a/try_runtime_core/inherent_provider/sidebar-items.js b/try_runtime_core/inherent_provider/sidebar-items.js new file mode 100644 index 00000000000..ffef361df2b --- /dev/null +++ b/try_runtime_core/inherent_provider/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"enum":["Chain"],"struct":["ChainIter"],"trait":["InherentProvider"]}; \ No newline at end of file diff --git a/try_runtime_core/inherent_provider/struct.ChainIter.html b/try_runtime_core/inherent_provider/struct.ChainIter.html new file mode 100644 index 00000000000..85b47012d3c --- /dev/null +++ b/try_runtime_core/inherent_provider/struct.ChainIter.html @@ -0,0 +1,1061 @@ +ChainIter in try_runtime_core::inherent_provider - Rust
    pub struct ChainIter { /* private fields */ }
    Expand description

    An iterator over the variants of Chain

    +

    Trait Implementations§

    source§

    impl Clone for ChainIter

    source§

    fn clone(&self) -> ChainIter

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for ChainIter

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl DoubleEndedIterator for ChainIter

    source§

    fn next_back(&mut self) -> Option<<Self as Iterator>::Item>

    Removes and returns an element from the end of the iterator. Read more
    source§

    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator from the back by n elements. Read more
    1.37.0 · source§

    fn nth_back(&mut self, n: usize) -> Option<Self::Item>

    Returns the nth element from the end of the iterator. Read more
    1.27.0 · source§

    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> Rwhere + Self: Sized, + F: FnMut(B, Self::Item) -> R, + R: Try<Output = B>,

    This is the reverse version of Iterator::try_fold(): it takes +elements starting from the back of the iterator. Read more
    1.27.0 · source§

    fn rfold<B, F>(self, init: B, f: F) -> Bwhere + Self: Sized, + F: FnMut(B, Self::Item) -> B,

    An iterator method that reduces the iterator’s elements to a single, +final value, starting from the back. Read more
    1.27.0 · source§

    fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator from the back that satisfies a predicate. Read more
    source§

    impl ExactSizeIterator for ChainIter

    source§

    fn len(&self) -> usize

    Returns the exact remaining length of the iterator. Read more
    source§

    fn is_empty(&self) -> bool

    🔬This is a nightly-only experimental API. (exact_size_is_empty)
    Returns true if the iterator is empty. Read more
    source§

    impl Iterator for ChainIter

    §

    type Item = Chain

    The type of the elements being iterated over.
    source§

    fn next(&mut self) -> Option<<Self as Iterator>::Item>

    Advances the iterator and returns the next value. Read more
    source§

    fn size_hint(&self) -> (usize, Option<usize>)

    Returns the bounds on the remaining length of the iterator. Read more
    source§

    fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item>

    Returns the nth element of the iterator. Read more
    source§

    fn next_chunk<const N: usize>( + &mut self +) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where + Self: Sized,

    🔬This is a nightly-only experimental API. (iter_next_chunk)
    Advances the iterator and returns an array containing the next N values. Read more
    1.0.0 · source§

    fn count(self) -> usizewhere + Self: Sized,

    Consumes the iterator, counting the number of iterations and returning it. Read more
    1.0.0 · source§

    fn last(self) -> Option<Self::Item>where + Self: Sized,

    Consumes the iterator, returning the last element. Read more
    source§

    fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>

    🔬This is a nightly-only experimental API. (iter_advance_by)
    Advances the iterator by n elements. Read more
    1.28.0 · source§

    fn step_by(self, step: usize) -> StepBy<Self>where + Self: Sized,

    Creates an iterator starting at the same point, but stepping by +the given amount at each iteration. Read more
    1.0.0 · source§

    fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>where + Self: Sized, + U: IntoIterator<Item = Self::Item>,

    Takes two iterators and creates a new iterator over both in sequence. Read more
    1.0.0 · source§

    fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where + Self: Sized, + U: IntoIterator,

    ‘Zips up’ two iterators into a single iterator of pairs. Read more
    source§

    fn intersperse(self, separator: Self::Item) -> Intersperse<Self>where + Self: Sized, + Self::Item: Clone,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places a copy of separator between adjacent +items of the original iterator. Read more
    source§

    fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>where + Self: Sized, + G: FnMut() -> Self::Item,

    🔬This is a nightly-only experimental API. (iter_intersperse)
    Creates a new iterator which places an item generated by separator +between adjacent items of the original iterator. Read more
    1.0.0 · source§

    fn map<B, F>(self, f: F) -> Map<Self, F>where + Self: Sized, + F: FnMut(Self::Item) -> B,

    Takes a closure and creates an iterator which calls that closure on each +element. Read more
    1.21.0 · source§

    fn for_each<F>(self, f: F)where + Self: Sized, + F: FnMut(Self::Item),

    Calls a closure on each element of an iterator. Read more
    1.0.0 · source§

    fn filter<P>(self, predicate: P) -> Filter<Self, P>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Creates an iterator which uses a closure to determine if an element +should be yielded. Read more
    1.0.0 · source§

    fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>where + Self: Sized, + F: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both filters and maps. Read more
    1.0.0 · source§

    fn enumerate(self) -> Enumerate<Self>where + Self: Sized,

    Creates an iterator which gives the current iteration count as well as +the next value. Read more
    1.0.0 · source§

    fn peekable(self) -> Peekable<Self>where + Self: Sized,

    Creates an iterator which can use the peek and peek_mut methods +to look at the next element of the iterator without consuming it. See +their documentation for more information. Read more
    1.0.0 · source§

    fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Creates an iterator that skips elements based on a predicate. Read more
    1.0.0 · source§

    fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Creates an iterator that yields elements based on a predicate. Read more
    1.57.0 · source§

    fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>where + Self: Sized, + P: FnMut(Self::Item) -> Option<B>,

    Creates an iterator that both yields elements based on a predicate and maps. Read more
    1.0.0 · source§

    fn skip(self, n: usize) -> Skip<Self>where + Self: Sized,

    Creates an iterator that skips the first n elements. Read more
    1.0.0 · source§

    fn take(self, n: usize) -> Take<Self>where + Self: Sized,

    Creates an iterator that yields the first n elements, or fewer +if the underlying iterator ends sooner. Read more
    1.0.0 · source§

    fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>where + Self: Sized, + F: FnMut(&mut St, Self::Item) -> Option<B>,

    An iterator adapter which, like fold, holds internal state, but +unlike fold, produces a new iterator. Read more
    1.0.0 · source§

    fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>where + Self: Sized, + U: IntoIterator, + F: FnMut(Self::Item) -> U,

    Creates an iterator that works like map, but flattens nested structure. Read more
    1.0.0 · source§

    fn fuse(self) -> Fuse<Self>where + Self: Sized,

    Creates an iterator which ends after the first None. Read more
    1.0.0 · source§

    fn inspect<F>(self, f: F) -> Inspect<Self, F>where + Self: Sized, + F: FnMut(&Self::Item),

    Does something with each element of an iterator, passing the value on. Read more
    1.0.0 · source§

    fn by_ref(&mut self) -> &mut Selfwhere + Self: Sized,

    Borrows an iterator, rather than consuming it. Read more
    1.0.0 · source§

    fn collect<B>(self) -> Bwhere + B: FromIterator<Self::Item>, + Self: Sized,

    Transforms an iterator into a collection. Read more
    source§

    fn collect_into<E>(self, collection: &mut E) -> &mut Ewhere + E: Extend<Self::Item>, + Self: Sized,

    🔬This is a nightly-only experimental API. (iter_collect_into)
    Collects all the items from an iterator into a collection. Read more
    1.0.0 · source§

    fn partition<B, F>(self, f: F) -> (B, B)where + Self: Sized, + B: Default + Extend<Self::Item>, + F: FnMut(&Self::Item) -> bool,

    Consumes an iterator, creating two collections from it. Read more
    source§

    fn partition_in_place<'a, T, P>(self, predicate: P) -> usizewhere + T: 'a, + Self: Sized + DoubleEndedIterator<Item = &'a mut T>, + P: FnMut(&T) -> bool,

    🔬This is a nightly-only experimental API. (iter_partition_in_place)
    Reorders the elements of this iterator in-place according to the given predicate, +such that all those that return true precede all those that return false. +Returns the number of true elements found. Read more
    source§

    fn is_partitioned<P>(self, predicate: P) -> boolwhere + Self: Sized, + P: FnMut(Self::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_is_partitioned)
    Checks if the elements of this iterator are partitioned according to the given predicate, +such that all those that return true precede all those that return false. Read more
    1.27.0 · source§

    fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere + Self: Sized, + F: FnMut(B, Self::Item) -> R, + R: Try<Output = B>,

    An iterator method that applies a function as long as it returns +successfully, producing a single, final value. Read more
    1.27.0 · source§

    fn try_for_each<F, R>(&mut self, f: F) -> Rwhere + Self: Sized, + F: FnMut(Self::Item) -> R, + R: Try<Output = ()>,

    An iterator method that applies a fallible function to each item in the +iterator, stopping at the first error and returning that error. Read more
    1.0.0 · source§

    fn fold<B, F>(self, init: B, f: F) -> Bwhere + Self: Sized, + F: FnMut(B, Self::Item) -> B,

    Folds every element into an accumulator by applying an operation, +returning the final result. Read more
    1.51.0 · source§

    fn reduce<F>(self, f: F) -> Option<Self::Item>where + Self: Sized, + F: FnMut(Self::Item, Self::Item) -> Self::Item,

    Reduces the elements to a single one, by repeatedly applying a reducing +operation. Read more
    source§

    fn try_reduce<F, R>( + &mut self, + f: F +) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere + Self: Sized, + F: FnMut(Self::Item, Self::Item) -> R, + R: Try<Output = Self::Item>, + <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (iterator_try_reduce)
    Reduces the elements to a single one by repeatedly applying a reducing operation. If the +closure returns a failure, the failure is propagated back to the caller immediately. Read more
    1.0.0 · source§

    fn all<F>(&mut self, f: F) -> boolwhere + Self: Sized, + F: FnMut(Self::Item) -> bool,

    Tests if every element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn any<F>(&mut self, f: F) -> boolwhere + Self: Sized, + F: FnMut(Self::Item) -> bool,

    Tests if any element of the iterator matches a predicate. Read more
    1.0.0 · source§

    fn find<P>(&mut self, predicate: P) -> Option<Self::Item>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Searches for an element of an iterator that satisfies a predicate. Read more
    1.30.0 · source§

    fn find_map<B, F>(&mut self, f: F) -> Option<B>where + Self: Sized, + F: FnMut(Self::Item) -> Option<B>,

    Applies function to the elements of iterator and returns +the first non-none result. Read more
    source§

    fn try_find<F, R>( + &mut self, + f: F +) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere + Self: Sized, + F: FnMut(&Self::Item) -> R, + R: Try<Output = bool>, + <R as Try>::Residual: Residual<Option<Self::Item>>,

    🔬This is a nightly-only experimental API. (try_find)
    Applies function to the elements of iterator and returns +the first true result or the first error. Read more
    1.0.0 · source§

    fn position<P>(&mut self, predicate: P) -> Option<usize>where + Self: Sized, + P: FnMut(Self::Item) -> bool,

    Searches for an element in an iterator, returning its index. Read more
    1.0.0 · source§

    fn rposition<P>(&mut self, predicate: P) -> Option<usize>where + P: FnMut(Self::Item) -> bool, + Self: Sized + ExactSizeIterator + DoubleEndedIterator,

    Searches for an element in an iterator from the right, returning its +index. Read more
    1.6.0 · source§

    fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where + B: Ord, + Self: Sized, + F: FnMut(&Self::Item) -> B,

    Returns the element that gives the maximum value from the +specified function. Read more
    1.15.0 · source§

    fn max_by<F>(self, compare: F) -> Option<Self::Item>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the maximum value with respect to the +specified comparison function. Read more
    1.6.0 · source§

    fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where + B: Ord, + Self: Sized, + F: FnMut(&Self::Item) -> B,

    Returns the element that gives the minimum value from the +specified function. Read more
    1.15.0 · source§

    fn min_by<F>(self, compare: F) -> Option<Self::Item>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Returns the element that gives the minimum value with respect to the +specified comparison function. Read more
    1.0.0 · source§

    fn rev(self) -> Rev<Self>where + Self: Sized + DoubleEndedIterator,

    Reverses an iterator’s direction. Read more
    1.0.0 · source§

    fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where + FromA: Default + Extend<A>, + FromB: Default + Extend<B>, + Self: Sized + Iterator<Item = (A, B)>,

    Converts an iterator of pairs into a pair of containers. Read more
    1.36.0 · source§

    fn copied<'a, T>(self) -> Copied<Self>where + T: 'a + Copy, + Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which copies all of its elements. Read more
    1.0.0 · source§

    fn cloned<'a, T>(self) -> Cloned<Self>where + T: 'a + Clone, + Self: Sized + Iterator<Item = &'a T>,

    Creates an iterator which clones all of its elements. Read more
    1.0.0 · source§

    fn cycle(self) -> Cycle<Self>where + Self: Sized + Clone,

    Repeats an iterator endlessly. Read more
    source§

    fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where + Self: Sized,

    🔬This is a nightly-only experimental API. (iter_array_chunks)
    Returns an iterator over N elements of the iterator at a time. Read more
    1.11.0 · source§

    fn sum<S>(self) -> Swhere + Self: Sized, + S: Sum<Self::Item>,

    Sums the elements of an iterator. Read more
    1.11.0 · source§

    fn product<P>(self) -> Pwhere + Self: Sized, + P: Product<Self::Item>,

    Iterates over the entire iterator, multiplying all the elements Read more
    source§

    fn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere + Self: Sized, + I: IntoIterator, + F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those +of another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn partial_cmp<I>(self, other: I) -> Option<Ordering>where + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

    Lexicographically compares the PartialOrd elements of +this Iterator with those of another. The comparison works like short-circuit +evaluation, returning a result without comparing the remaining elements. +As soon as an order can be determined, the evaluation stops and a result is returned. Read more
    source§

    fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where + Self: Sized, + I: IntoIterator, + F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Lexicographically compares the elements of this Iterator with those +of another with respect to the specified comparison function. Read more
    1.5.0 · source§

    fn eq<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialEq<<I as IntoIterator>::Item>, + Self: Sized,

    Determines if the elements of this Iterator are equal to those of +another. Read more
    source§

    fn eq_by<I, F>(self, other: I, eq: F) -> boolwhere + Self: Sized, + I: IntoIterator, + F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

    🔬This is a nightly-only experimental API. (iter_order_by)
    Determines if the elements of this Iterator are equal to those of +another with respect to the specified equality function. Read more
    1.5.0 · source§

    fn ne<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialEq<<I as IntoIterator>::Item>, + Self: Sized,

    Determines if the elements of this Iterator are not equal to those of +another. Read more
    1.5.0 · source§

    fn lt<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

    Determines if the elements of this Iterator are lexicographically +less than those of another. Read more
    1.5.0 · source§

    fn le<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

    Determines if the elements of this Iterator are lexicographically +less or equal to those of another. Read more
    1.5.0 · source§

    fn gt<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

    Determines if the elements of this Iterator are lexicographically +greater than those of another. Read more
    1.5.0 · source§

    fn ge<I>(self, other: I) -> boolwhere + I: IntoIterator, + Self::Item: PartialOrd<<I as IntoIterator>::Item>, + Self: Sized,

    Determines if the elements of this Iterator are lexicographically +greater than or equal to those of another. Read more
    source§

    fn is_sorted_by<F>(self, compare: F) -> boolwhere + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given comparator function. Read more
    source§

    fn is_sorted_by_key<F, K>(self, f: F) -> boolwhere + Self: Sized, + F: FnMut(Self::Item) -> K, + K: PartialOrd<K>,

    🔬This is a nightly-only experimental API. (is_sorted)
    Checks if the elements of this iterator are sorted using the given key extraction +function. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for Twhere + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> Any for Twhere + T: Any,

    §

    fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

    §

    fn type_name(&self) -> &'static str

    §

    impl<T> AnySync for Twhere + T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static>

    source§

    impl<T> Borrow<T> for Twhere + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for Twhere + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CheckedConversion for T

    §

    fn checked_from<T>(t: T) -> Option<Self>where + Self: TryFrom<T>,

    Convert from a value of T into an equivalent instance of Option<Self>. Read more
    §

    fn checked_into<T>(self) -> Option<T>where + Self: TryInto<T>,

    Consume self to return Some equivalent value of Option<T>. Read more
    source§

    impl<T> DynClone for Twhere + T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T> Instrument for T

    source§

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more
    source§

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for Twhere + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +
    source§

    impl<I> IntoIterator for Iwhere + I: Iterator,

    §

    type Item = <I as Iterator>::Item

    The type of the elements being iterated over.
    §

    type IntoIter = I

    Which kind of iterator are we turning this into?
    const: unstable · source§

    fn into_iter(self) -> I

    Creates an iterator from a value. Read more
    §

    impl<T> IsType<T> for T

    §

    fn from_ref(t: &T) -> &T

    Cast reference.
    §

    fn into_ref(&self) -> &T

    Cast reference.
    §

    fn from_mut(t: &mut T) -> &mut T

    Cast mutable reference.
    §

    fn into_mut(&mut self) -> &mut T

    Cast mutable reference.
    §

    impl<T, Outer> IsWrappedBy<Outer> for Twhere + Outer: AsRef<T> + AsMut<T> + From<T>, + T: From<Outer>,

    §

    fn from_ref(outer: &Outer) -> &T

    Get a reference to the inner from the outer.

    +
    §

    fn from_mut(outer: &mut Outer) -> &mut T

    Get a mutable reference to the inner from the outer.

    +
    source§

    impl<I> IteratorRandom for Iwhere + I: Iterator,

    source§

    fn choose<R>(self, rng: &mut R) -> Option<Self::Item>where + R: Rng + ?Sized,

    Choose one element at random from the iterator. Read more
    source§

    fn choose_stable<R>(self, rng: &mut R) -> Option<Self::Item>where + R: Rng + ?Sized,

    Choose one element at random from the iterator. Read more
    source§

    fn choose_multiple_fill<R>(self, rng: &mut R, buf: &mut [Self::Item]) -> usizewhere + R: Rng + ?Sized,

    Collects values at random from the iterator into a supplied buffer +until that buffer is filled. Read more
    source§

    fn choose_multiple<R>( + self, + rng: &mut R, + amount: usize +) -> Vec<Self::Item, Global>where + R: Rng + ?Sized,

    Collects amount values at random from the iterator into a vector. Read more
    source§

    impl<I> IteratorRandom for Iwhere + I: Iterator,

    source§

    fn choose<R>(self, rng: &mut R) -> Option<Self::Item>where + R: Rng + ?Sized,

    Choose one element at random from the iterator. Read more
    source§

    fn choose_multiple_fill<R>(self, rng: &mut R, buf: &mut [Self::Item]) -> usizewhere + R: Rng + ?Sized,

    Collects values at random from the iterator into a supplied buffer +until that buffer is filled. Read more
    source§

    fn choose_multiple<R>( + self, + rng: &mut R, + amount: usize +) -> Vec<Self::Item, Global>where + R: Rng + ?Sized,

    Collects amount values at random from the iterator into a vector. Read more
    source§

    impl<T> Itertools for Twhere + T: Iterator + ?Sized,

    source§

    fn interleave<J>( + self, + other: J +) -> Interleave<Self, <J as IntoIterator>::IntoIter>where + J: IntoIterator<Item = Self::Item>, + Self: Sized,

    Alternate elements from two iterators until both have run out. Read more
    source§

    fn interleave_shortest<J>( + self, + other: J +) -> InterleaveShortest<Self, <J as IntoIterator>::IntoIter>where + J: IntoIterator<Item = Self::Item>, + Self: Sized,

    Alternate elements from two iterators until at least one of them has run +out. Read more
    source§

    fn intersperse( + self, + element: Self::Item +) -> IntersperseWith<Self, IntersperseElementSimple<Self::Item>>where + Self: Sized, + Self::Item: Clone,

    An iterator adaptor to insert a particular value +between each element of the adapted iterator. Read more
    source§

    fn intersperse_with<F>(self, element: F) -> IntersperseWith<Self, F>where + Self: Sized, + F: FnMut() -> Self::Item,

    An iterator adaptor to insert a particular value created by a function +between each element of the adapted iterator. Read more
    source§

    fn zip_longest<J>( + self, + other: J +) -> ZipLongest<Self, <J as IntoIterator>::IntoIter>where + J: IntoIterator, + Self: Sized,

    Create an iterator which iterates over both this and the specified +iterator simultaneously, yielding pairs of two optional elements. Read more
    source§

    fn zip_eq<J>(self, other: J) -> ZipEq<Self, <J as IntoIterator>::IntoIter>where + J: IntoIterator, + Self: Sized,

    Create an iterator which iterates over both this and the specified +iterator simultaneously, yielding pairs of elements. Read more
    source§

    fn batching<B, F>(self, f: F) -> Batching<Self, F>where + F: FnMut(&mut Self) -> Option<B>, + Self: Sized,

    A “meta iterator adaptor”. Its closure receives a reference to the +iterator and may pick off as many elements as it likes, to produce the +next iterator element. Read more
    source§

    fn group_by<K, F>(self, key: F) -> GroupBy<K, Self, F>where + Self: Sized, + F: FnMut(&Self::Item) -> K, + K: PartialEq<K>,

    Return an iterable that can group iterator elements. +Consecutive elements that map to the same key (“runs”), are assigned +to the same group. Read more
    source§

    fn chunks(self, size: usize) -> IntoChunks<Self>where + Self: Sized,

    Return an iterable that can chunk the iterator. Read more
    source§

    fn tuple_windows<T>(self) -> TupleWindows<Self, T>where + Self: Sized + Iterator<Item = <T as TupleCollect>::Item>, + T: HomogeneousTuple, + <T as TupleCollect>::Item: Clone,

    Return an iterator over all contiguous windows producing tuples of +a specific size (up to 12). Read more
    source§

    fn circular_tuple_windows<T>(self) -> CircularTupleWindows<Self, T>where + Self: Sized + Clone + Iterator<Item = <T as TupleCollect>::Item> + ExactSizeIterator, + T: TupleCollect + Clone, + <T as TupleCollect>::Item: Clone,

    Return an iterator over all windows, wrapping back to the first +elements when the window would otherwise exceed the length of the +iterator, producing tuples of a specific size (up to 12). Read more
    source§

    fn tuples<T>(self) -> Tuples<Self, T>where + Self: Sized + Iterator<Item = <T as TupleCollect>::Item>, + T: HomogeneousTuple,

    Return an iterator that groups the items in tuples of a specific size +(up to 12). Read more
    source§

    fn tee(self) -> (Tee<Self>, Tee<Self>)where + Self: Sized, + Self::Item: Clone,

    Split into an iterator pair that both yield all elements from +the original iterator. Read more
    source§

    fn step(self, n: usize) -> Step<Self>where + Self: Sized,

    👎Deprecated since 0.8.0: Use std .step_by() instead
    Return an iterator adaptor that steps n elements in the base iterator +for each iteration. Read more
    source§

    fn map_into<R>(self) -> MapSpecialCase<Self, MapSpecialCaseFnInto<R>>where + Self: Sized, + Self::Item: Into<R>,

    Convert each item of the iterator using the Into trait. Read more
    source§

    fn map_results<F, T, U, E>( + self, + f: F +) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnMut(T) -> U,

    👎Deprecated since 0.10.0: Use .map_ok() instead
    source§

    fn map_ok<F, T, U, E>(self, f: F) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnMut(T) -> U,

    Return an iterator adaptor that applies the provided closure +to every Result::Ok value. Result::Err values are +unchanged. Read more
    source§

    fn filter_ok<F, T, E>(self, f: F) -> FilterOk<Self, F>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnMut(&T) -> bool,

    Return an iterator adaptor that filters every Result::Ok +value with the provided closure. Result::Err values are +unchanged. Read more
    source§

    fn filter_map_ok<F, T, U, E>(self, f: F) -> FilterMapOk<Self, F>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnMut(T) -> Option<U>,

    Return an iterator adaptor that filters and transforms every +Result::Ok value with the provided closure. Result::Err +values are unchanged. Read more
    source§

    fn flatten_ok<T, E>(self) -> FlattenOk<Self, T, E>where + Self: Iterator<Item = Result<T, E>> + Sized, + T: IntoIterator,

    Return an iterator adaptor that flattens every Result::Ok value into +a series of Result::Ok values. Result::Err values are unchanged. Read more
    source§

    fn merge<J>( + self, + other: J +) -> MergeBy<Self, <J as IntoIterator>::IntoIter, MergeLte>where + Self: Sized, + Self::Item: PartialOrd<Self::Item>, + J: IntoIterator<Item = Self::Item>,

    Return an iterator adaptor that merges the two base iterators in +ascending order. If both base iterators are sorted (ascending), the +result is sorted. Read more
    source§

    fn merge_by<J, F>( + self, + other: J, + is_first: F +) -> MergeBy<Self, <J as IntoIterator>::IntoIter, F>where + Self: Sized, + J: IntoIterator<Item = Self::Item>, + F: FnMut(&Self::Item, &Self::Item) -> bool,

    Return an iterator adaptor that merges the two base iterators in order. +This is much like .merge() but allows for a custom ordering. Read more
    source§

    fn merge_join_by<J, F>( + self, + other: J, + cmp_fn: F +) -> MergeJoinBy<Self, <J as IntoIterator>::IntoIter, F>where + J: IntoIterator, + F: FnMut(&Self::Item, &<J as IntoIterator>::Item) -> Ordering, + Self: Sized,

    Create an iterator that merges items from both this and the specified +iterator in ascending order. Read more
    source§

    fn kmerge(self) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, KMergeByLt>where + Self: Sized, + Self::Item: IntoIterator, + <Self::Item as IntoIterator>::Item: PartialOrd<<Self::Item as IntoIterator>::Item>,

    Return an iterator adaptor that flattens an iterator of iterators by +merging them in ascending order. Read more
    source§

    fn kmerge_by<F>( + self, + first: F +) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, F>where + Self: Sized, + Self::Item: IntoIterator, + F: FnMut(&<Self::Item as IntoIterator>::Item, &<Self::Item as IntoIterator>::Item) -> bool,

    Return an iterator adaptor that flattens an iterator of iterators by +merging them according to the given closure. Read more
    source§

    fn cartesian_product<J>( + self, + other: J +) -> Product<Self, <J as IntoIterator>::IntoIter>where + Self: Sized, + Self::Item: Clone, + J: IntoIterator, + <J as IntoIterator>::IntoIter: Clone,

    Return an iterator adaptor that iterates over the cartesian product of +the element sets of two iterators self and J. Read more
    source§

    fn multi_cartesian_product( + self +) -> MultiProduct<<Self::Item as IntoIterator>::IntoIter>where + Self: Sized, + Self::Item: IntoIterator, + <Self::Item as IntoIterator>::IntoIter: Clone, + <Self::Item as IntoIterator>::Item: Clone,

    Return an iterator adaptor that iterates over the cartesian product of +all subiterators returned by meta-iterator self. Read more
    source§

    fn coalesce<F>(self, f: F) -> CoalesceBy<Self, F, Self::Item>where + Self: Sized, + F: FnMut(Self::Item, Self::Item) -> Result<Self::Item, (Self::Item, Self::Item)>,

    Return an iterator adaptor that uses the passed-in closure to +optionally merge together consecutive elements. Read more
    source§

    fn dedup(self) -> CoalesceBy<Self, DedupPred2CoalescePred<DedupEq>, Self::Item>where + Self: Sized, + Self::Item: PartialEq<Self::Item>,

    Remove duplicates from sections of consecutive identical elements. +If the iterator is sorted, all elements will be unique. Read more
    source§

    fn dedup_by<Cmp>( + self, + cmp: Cmp +) -> CoalesceBy<Self, DedupPred2CoalescePred<Cmp>, Self::Item>where + Self: Sized, + Cmp: FnMut(&Self::Item, &Self::Item) -> bool,

    Remove duplicates from sections of consecutive identical elements, +determining equality using a comparison function. +If the iterator is sorted, all elements will be unique. Read more
    source§

    fn dedup_with_count( + self +) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<DedupEq>, (usize, Self::Item)>where + Self: Sized,

    Remove duplicates from sections of consecutive identical elements, while keeping a count of +how many repeated elements were present. +If the iterator is sorted, all elements will be unique. Read more
    source§

    fn dedup_by_with_count<Cmp>( + self, + cmp: Cmp +) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<Cmp>, (usize, Self::Item)>where + Self: Sized, + Cmp: FnMut(&Self::Item, &Self::Item) -> bool,

    Remove duplicates from sections of consecutive identical elements, while keeping a count of +how many repeated elements were present. +This will determine equality using a comparison function. +If the iterator is sorted, all elements will be unique. Read more
    source§

    fn duplicates(self) -> DuplicatesBy<Self, Self::Item, ById>where + Self: Sized, + Self::Item: Eq + Hash,

    Return an iterator adaptor that produces elements that appear more than once during the +iteration. Duplicates are detected using hash and equality. Read more
    source§

    fn duplicates_by<V, F>(self, f: F) -> DuplicatesBy<Self, V, ByFn<F>>where + Self: Sized, + V: Eq + Hash, + F: FnMut(&Self::Item) -> V,

    Return an iterator adaptor that produces elements that appear more than once during the +iteration. Duplicates are detected using hash and equality. Read more
    source§

    fn unique(self) -> Unique<Self>where + Self: Sized, + Self::Item: Clone + Eq + Hash,

    Return an iterator adaptor that filters out elements that have +already been produced once during the iteration. Duplicates +are detected using hash and equality. Read more
    source§

    fn unique_by<V, F>(self, f: F) -> UniqueBy<Self, V, F>where + Self: Sized, + V: Eq + Hash, + F: FnMut(&Self::Item) -> V,

    Return an iterator adaptor that filters out elements that have +already been produced once during the iteration. Read more
    source§

    fn peeking_take_while<F>(&mut self, accept: F) -> PeekingTakeWhile<'_, Self, F>where + Self: Sized + PeekingNext, + F: FnMut(&Self::Item) -> bool,

    Return an iterator adaptor that borrows from this iterator and +takes items while the closure accept returns true. Read more
    source§

    fn take_while_ref<F>(&mut self, accept: F) -> TakeWhileRef<'_, Self, F>where + Self: Clone, + F: FnMut(&Self::Item) -> bool,

    Return an iterator adaptor that borrows from a Clone-able iterator +to only pick off elements while the predicate accept returns true. Read more
    source§

    fn while_some<A>(self) -> WhileSome<Self>where + Self: Sized + Iterator<Item = Option<A>>,

    Return an iterator adaptor that filters Option<A> iterator elements +and produces A. Stops on the first None encountered. Read more
    source§

    fn tuple_combinations<T>(self) -> TupleCombinations<Self, T>where + Self: Sized + Clone, + Self::Item: Clone, + T: HasCombination<Self>,

    Return an iterator adaptor that iterates over the combinations of the +elements from an iterator. Read more
    source§

    fn combinations(self, k: usize) -> Combinations<Self>where + Self: Sized, + Self::Item: Clone,

    Return an iterator adaptor that iterates over the k-length combinations of +the elements from an iterator. Read more
    source§

    fn combinations_with_replacement( + self, + k: usize +) -> CombinationsWithReplacement<Self>where + Self: Sized, + Self::Item: Clone,

    Return an iterator that iterates over the k-length combinations of +the elements from an iterator, with replacement. Read more
    source§

    fn permutations(self, k: usize) -> Permutations<Self>where + Self: Sized, + Self::Item: Clone,

    Return an iterator adaptor that iterates over all k-permutations of the +elements from an iterator. Read more
    source§

    fn powerset(self) -> Powerset<Self>where + Self: Sized, + Self::Item: Clone,

    Return an iterator that iterates through the powerset of the elements from an +iterator. Read more
    source§

    fn pad_using<F>(self, min: usize, f: F) -> PadUsing<Self, F>where + Self: Sized, + F: FnMut(usize) -> Self::Item,

    Return an iterator adaptor that pads the sequence to a minimum length of +min by filling missing elements using a closure f. Read more
    source§

    fn with_position(self) -> WithPosition<Self>where + Self: Sized,

    Return an iterator adaptor that wraps each element in a Position to +ease special-case handling of the first or last elements. Read more
    source§

    fn positions<P>(self, predicate: P) -> Positions<Self, P>where + Self: Sized, + P: FnMut(Self::Item) -> bool,

    Return an iterator adaptor that yields the indices of all elements +satisfying a predicate, counted from the start of the iterator. Read more
    source§

    fn update<F>(self, updater: F) -> Update<Self, F>where + Self: Sized, + F: FnMut(&mut Self::Item),

    Return an iterator adaptor that applies a mutating function +to each element before yielding it. Read more
    source§

    fn next_tuple<T>(&mut self) -> Option<T>where + Self: Sized + Iterator<Item = <T as TupleCollect>::Item>, + T: HomogeneousTuple,

    Advances the iterator and returns the next items grouped in a tuple of +a specific size (up to 12). Read more
    source§

    fn collect_tuple<T>(self) -> Option<T>where + Self: Sized + Iterator<Item = <T as TupleCollect>::Item>, + T: HomogeneousTuple,

    Collects all items from the iterator into a tuple of a specific size +(up to 12). Read more
    source§

    fn find_position<P>(&mut self, pred: P) -> Option<(usize, Self::Item)>where + P: FnMut(&Self::Item) -> bool,

    Find the position and value of the first element satisfying a predicate. Read more
    source§

    fn find_or_last<P>(self, predicate: P) -> Option<Self::Item>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Find the value of the first element satisfying a predicate or return the last element, if any. Read more
    source§

    fn find_or_first<P>(self, predicate: P) -> Option<Self::Item>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Find the value of the first element satisfying a predicate or return the first element, if any. Read more
    source§

    fn contains<Q>(&mut self, query: &Q) -> boolwhere + Self: Sized, + Self::Item: Borrow<Q>, + Q: PartialEq<Q>,

    Returns true if the given item is present in this iterator. Read more
    source§

    fn all_equal(&mut self) -> boolwhere + Self: Sized, + Self::Item: PartialEq<Self::Item>,

    Check whether all elements compare equal. Read more
    source§

    fn all_unique(&mut self) -> boolwhere + Self: Sized, + Self::Item: Eq + Hash,

    Check whether all elements are unique (non equal). Read more
    source§

    fn dropping(self, n: usize) -> Selfwhere + Self: Sized,

    Consume the first n elements from the iterator eagerly, +and return the same iterator again. Read more
    source§

    fn dropping_back(self, n: usize) -> Selfwhere + Self: Sized + DoubleEndedIterator,

    Consume the last n elements from the iterator eagerly, +and return the same iterator again. Read more
    source§

    fn foreach<F>(self, f: F)where + F: FnMut(Self::Item), + Self: Sized,

    👎Deprecated since 0.8.0: Use .for_each() instead
    Run the closure f eagerly on each element of the iterator. Read more
    source§

    fn concat(self) -> Self::Itemwhere + Self: Sized, + Self::Item: Extend<<Self::Item as IntoIterator>::Item> + IntoIterator + Default,

    Combine all an iterator’s elements into one element by using Extend. Read more
    source§

    fn collect_vec(self) -> Vec<Self::Item, Global>where + Self: Sized,

    .collect_vec() is simply a type specialization of Iterator::collect, +for convenience.
    source§

    fn try_collect<T, U, E>(self) -> Result<U, E>where + Self: Sized + Iterator<Item = Result<T, E>>, + Result<U, E>: FromIterator<Result<T, E>>,

    .try_collect() is more convenient way of writing +.collect::<Result<_, _>>() Read more
    source§

    fn set_from<'a, A, J>(&mut self, from: J) -> usizewhere + A: 'a, + Self: Iterator<Item = &'a mut A>, + J: IntoIterator<Item = A>,

    Assign to each reference in self from the from iterator, +stopping at the shortest of the two iterators. Read more
    source§

    fn join(&mut self, sep: &str) -> Stringwhere + Self::Item: Display,

    Combine all iterator elements into one String, separated by sep. Read more
    source§

    fn format(self, sep: &str) -> Format<'_, Self>where + Self: Sized,

    Format all iterator elements, separated by sep. Read more
    source§

    fn format_with<F>(self, sep: &str, format: F) -> FormatWith<'_, Self, F>where + Self: Sized, + F: FnMut(Self::Item, &mut dyn FnMut(&dyn Display) -> Result<(), Error>) -> Result<(), Error>,

    Format all iterator elements, separated by sep. Read more
    source§

    fn fold_results<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>where + Self: Iterator<Item = Result<A, E>>, + F: FnMut(B, A) -> B,

    👎Deprecated since 0.10.0: Use .fold_ok() instead
    source§

    fn fold_ok<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>where + Self: Iterator<Item = Result<A, E>>, + F: FnMut(B, A) -> B,

    Fold Result values from an iterator. Read more
    source§

    fn fold_options<A, B, F>(&mut self, start: B, f: F) -> Option<B>where + Self: Iterator<Item = Option<A>>, + F: FnMut(B, A) -> B,

    Fold Option values from an iterator. Read more
    source§

    fn fold1<F>(self, f: F) -> Option<Self::Item>where + F: FnMut(Self::Item, Self::Item) -> Self::Item, + Self: Sized,

    👎Deprecated since 0.10.2: Use Iterator::reduce instead
    Accumulator of the elements in the iterator. Read more
    source§

    fn tree_fold1<F>(self, f: F) -> Option<Self::Item>where + F: FnMut(Self::Item, Self::Item) -> Self::Item, + Self: Sized,

    Accumulate the elements in the iterator in a tree-like manner. Read more
    source§

    fn fold_while<B, F>(&mut self, init: B, f: F) -> FoldWhile<B>where + Self: Sized, + F: FnMut(B, Self::Item) -> FoldWhile<B>,

    An iterator method that applies a function, producing a single, final value. Read more
    source§

    fn sum1<S>(self) -> Option<S>where + Self: Sized, + S: Sum<Self::Item>,

    Iterate over the entire iterator and add all the elements. Read more
    source§

    fn product1<P>(self) -> Option<P>where + Self: Sized, + P: Product<Self::Item>,

    Iterate over the entire iterator and multiply all the elements. Read more
    source§

    fn sorted_unstable(self) -> IntoIter<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_unstable_by<F>(self, cmp: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_unstable_by_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted(self) -> IntoIter<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_by<F>(self, cmp: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_by_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_by_cached_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Sort all iterator elements into a new iterator in ascending order. The key function is +called exactly once per key. Read more
    source§

    fn k_smallest(self, k: usize) -> IntoIter<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Sort the k smallest elements into a new iterator, in ascending order. Read more
    source§

    fn partition_map<A, B, F, L, R>(self, predicate: F) -> (A, B)where + Self: Sized, + F: FnMut(Self::Item) -> Either<L, R>, + A: Default + Extend<L>, + B: Default + Extend<R>,

    Collect all iterator elements into one of two +partitions. Unlike Iterator::partition, each partition may +have a distinct type. Read more
    source§

    fn partition_result<A, B, T, E>(self) -> (A, B)where + Self: Iterator<Item = Result<T, E>> + Sized, + A: Default + Extend<T>, + B: Default + Extend<E>,

    Partition a sequence of Results into one list of all the Ok elements +and another list of all the Err elements. Read more
    source§

    fn into_group_map<K, V>(self) -> HashMap<K, Vec<V, Global>, RandomState>where + Self: Iterator<Item = (K, V)> + Sized, + K: Hash + Eq,

    Return a HashMap of keys mapped to Vecs of values. Keys and values +are taken from (Key, Value) tuple pairs yielded by the input iterator. Read more
    source§

    fn into_group_map_by<K, V, F>( + self, + f: F +) -> HashMap<K, Vec<V, Global>, RandomState>where + Self: Iterator<Item = V> + Sized, + K: Hash + Eq, + F: Fn(&V) -> K,

    Return an Iterator on a HashMap. Keys mapped to Vecs of values. The key is specified +in the closure. Read more
    source§

    fn into_grouping_map<K, V>(self) -> GroupingMap<Self>where + Self: Iterator<Item = (K, V)> + Sized, + K: Hash + Eq,

    Constructs a GroupingMap to be used later with one of the efficient +group-and-fold operations it allows to perform. Read more
    source§

    fn into_grouping_map_by<K, V, F>( + self, + key_mapper: F +) -> GroupingMap<MapForGrouping<Self, F>>where + Self: Iterator<Item = V> + Sized, + K: Hash + Eq, + F: FnMut(&V) -> K,

    Constructs a GroupingMap to be used later with one of the efficient +group-and-fold operations it allows to perform. Read more
    source§

    fn min_set(self) -> Vec<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Return all minimum elements of an iterator. Read more
    source§

    fn min_set_by<F>(self, compare: F) -> Vec<Self::Item, Global>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return all minimum elements of an iterator, as determined by +the specified function. Read more
    source§

    fn min_set_by_key<K, F>(self, key: F) -> Vec<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Return all minimum elements of an iterator, as determined by +the specified function. Read more
    source§

    fn max_set(self) -> Vec<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Return all maximum elements of an iterator. Read more
    source§

    fn max_set_by<F>(self, compare: F) -> Vec<Self::Item, Global>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return all maximum elements of an iterator, as determined by +the specified function. Read more
    source§

    fn max_set_by_key<K, F>(self, key: F) -> Vec<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Return all minimum elements of an iterator, as determined by +the specified function. Read more
    source§

    fn minmax(self) -> MinMaxResult<Self::Item>where + Self: Sized, + Self::Item: PartialOrd<Self::Item>,

    Return the minimum and maximum elements in the iterator. Read more
    source§

    fn minmax_by_key<K, F>(self, key: F) -> MinMaxResult<Self::Item>where + Self: Sized, + K: PartialOrd<K>, + F: FnMut(&Self::Item) -> K,

    Return the minimum and maximum element of an iterator, as determined by +the specified function. Read more
    source§

    fn minmax_by<F>(self, compare: F) -> MinMaxResult<Self::Item>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return the minimum and maximum element of an iterator, as determined by +the specified comparison function. Read more
    source§

    fn position_max(self) -> Option<usize>where + Self: Sized, + Self::Item: Ord,

    Return the position of the maximum element in the iterator. Read more
    source§

    fn position_max_by_key<K, F>(self, key: F) -> Option<usize>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Return the position of the maximum element in the iterator, as +determined by the specified function. Read more
    source§

    fn position_max_by<F>(self, compare: F) -> Option<usize>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return the position of the maximum element in the iterator, as +determined by the specified comparison function. Read more
    source§

    fn position_min(self) -> Option<usize>where + Self: Sized, + Self::Item: Ord,

    Return the position of the minimum element in the iterator. Read more
    source§

    fn position_min_by_key<K, F>(self, key: F) -> Option<usize>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Return the position of the minimum element in the iterator, as +determined by the specified function. Read more
    source§

    fn position_min_by<F>(self, compare: F) -> Option<usize>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return the position of the minimum element in the iterator, as +determined by the specified comparison function. Read more
    source§

    fn position_minmax(self) -> MinMaxResult<usize>where + Self: Sized, + Self::Item: PartialOrd<Self::Item>,

    Return the positions of the minimum and maximum elements in +the iterator. Read more
    source§

    fn position_minmax_by_key<K, F>(self, key: F) -> MinMaxResult<usize>where + Self: Sized, + K: PartialOrd<K>, + F: FnMut(&Self::Item) -> K,

    Return the postions of the minimum and maximum elements of an +iterator, as determined by the specified function. Read more
    source§

    fn position_minmax_by<F>(self, compare: F) -> MinMaxResult<usize>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return the postions of the minimum and maximum elements of an +iterator, as determined by the specified comparison function. Read more
    source§

    fn exactly_one(self) -> Result<Self::Item, ExactlyOneError<Self>>where + Self: Sized,

    If the iterator yields exactly one element, that element will be returned, otherwise +an error will be returned containing an iterator that has the same output as the input +iterator. Read more
    source§

    fn at_most_one(self) -> Result<Option<Self::Item>, ExactlyOneError<Self>>where + Self: Sized,

    If the iterator yields no elements, Ok(None) will be returned. If the iterator yields +exactly one element, that element will be returned, otherwise an error will be returned +containing an iterator that has the same output as the input iterator. Read more
    source§

    fn multipeek(self) -> MultiPeek<Self>where + Self: Sized,

    An iterator adaptor that allows the user to peek at multiple .next() +values without advancing the base iterator. Read more
    source§

    fn counts(self) -> HashMap<Self::Item, usize, RandomState>where + Self: Sized, + Self::Item: Eq + Hash,

    Collect the items in this iterator and return a HashMap which +contains each item that appears in the iterator and the number +of times it appears. Read more
    source§

    fn counts_by<K, F>(self, f: F) -> HashMap<K, usize, RandomState>where + Self: Sized, + K: Eq + Hash, + F: FnMut(Self::Item) -> K,

    Collect the items in this iterator and return a HashMap which +contains each item that appears in the iterator and the number +of times it appears, +determining identity using a keying function. Read more
    source§

    fn multiunzip<FromI>(self) -> FromIwhere + Self: Sized + MultiUnzip<FromI>,

    Converts an iterator of tuples into a tuple of containers. Read more
    source§

    impl<T> Itertools for Twhere + T: Iterator + ?Sized,

    source§

    fn interleave<J>( + self, + other: J +) -> Interleave<Self, <J as IntoIterator>::IntoIter>where + J: IntoIterator<Item = Self::Item>, + Self: Sized,

    Alternate elements from two iterators until both have run out. Read more
    source§

    fn interleave_shortest<J>( + self, + other: J +) -> InterleaveShortest<Self, <J as IntoIterator>::IntoIter>where + J: IntoIterator<Item = Self::Item>, + Self: Sized,

    Alternate elements from two iterators until at least one of them has run +out. Read more
    source§

    fn intersperse( + self, + element: Self::Item +) -> IntersperseWith<Self, IntersperseElementSimple<Self::Item>>where + Self: Sized, + Self::Item: Clone,

    An iterator adaptor to insert a particular value +between each element of the adapted iterator. Read more
    source§

    fn intersperse_with<F>(self, element: F) -> IntersperseWith<Self, F>where + Self: Sized, + F: FnMut() -> Self::Item,

    An iterator adaptor to insert a particular value created by a function +between each element of the adapted iterator. Read more
    source§

    fn zip_longest<J>( + self, + other: J +) -> ZipLongest<Self, <J as IntoIterator>::IntoIter>where + J: IntoIterator, + Self: Sized,

    Create an iterator which iterates over both this and the specified +iterator simultaneously, yielding pairs of two optional elements. Read more
    source§

    fn zip_eq<J>(self, other: J) -> ZipEq<Self, <J as IntoIterator>::IntoIter>where + J: IntoIterator, + Self: Sized,

    Create an iterator which iterates over both this and the specified +iterator simultaneously, yielding pairs of elements. Read more
    source§

    fn batching<B, F>(self, f: F) -> Batching<Self, F>where + F: FnMut(&mut Self) -> Option<B>, + Self: Sized,

    A “meta iterator adaptor”. Its closure receives a reference to the +iterator and may pick off as many elements as it likes, to produce the +next iterator element. Read more
    source§

    fn group_by<K, F>(self, key: F) -> GroupBy<K, Self, F>where + Self: Sized, + F: FnMut(&Self::Item) -> K, + K: PartialEq<K>,

    Return an iterable that can group iterator elements. +Consecutive elements that map to the same key (“runs”), are assigned +to the same group. Read more
    source§

    fn chunks(self, size: usize) -> IntoChunks<Self>where + Self: Sized,

    Return an iterable that can chunk the iterator. Read more
    source§

    fn tuple_windows<T>(self) -> TupleWindows<Self, T>where + Self: Sized + Iterator<Item = <T as TupleCollect>::Item>, + T: HomogeneousTuple, + <T as TupleCollect>::Item: Clone,

    Return an iterator over all contiguous windows producing tuples of +a specific size (up to 12). Read more
    source§

    fn circular_tuple_windows<T>(self) -> CircularTupleWindows<Self, T>where + Self: Sized + Clone + Iterator<Item = <T as TupleCollect>::Item> + ExactSizeIterator, + T: TupleCollect + Clone, + <T as TupleCollect>::Item: Clone,

    Return an iterator over all windows, wrapping back to the first +elements when the window would otherwise exceed the length of the +iterator, producing tuples of a specific size (up to 12). Read more
    source§

    fn tuples<T>(self) -> Tuples<Self, T>where + Self: Sized + Iterator<Item = <T as TupleCollect>::Item>, + T: HomogeneousTuple,

    Return an iterator that groups the items in tuples of a specific size +(up to 12). Read more
    source§

    fn tee(self) -> (Tee<Self>, Tee<Self>)where + Self: Sized, + Self::Item: Clone,

    Split into an iterator pair that both yield all elements from +the original iterator. Read more
    source§

    fn step(self, n: usize) -> Step<Self>where + Self: Sized,

    👎Deprecated since 0.8.0: Use std .step_by() instead
    Return an iterator adaptor that steps n elements in the base iterator +for each iteration. Read more
    source§

    fn map_into<R>(self) -> MapSpecialCase<Self, MapSpecialCaseFnInto<R>>where + Self: Sized, + Self::Item: Into<R>,

    Convert each item of the iterator using the Into trait. Read more
    source§

    fn map_results<F, T, U, E>( + self, + f: F +) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnMut(T) -> U,

    👎Deprecated since 0.10.0: Use .map_ok() instead
    source§

    fn map_ok<F, T, U, E>(self, f: F) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnMut(T) -> U,

    Return an iterator adaptor that applies the provided closure +to every Result::Ok value. Result::Err values are +unchanged. Read more
    source§

    fn filter_ok<F, T, E>(self, f: F) -> FilterOk<Self, F>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnMut(&T) -> bool,

    Return an iterator adaptor that filters every Result::Ok +value with the provided closure. Result::Err values are +unchanged. Read more
    source§

    fn filter_map_ok<F, T, U, E>(self, f: F) -> FilterMapOk<Self, F>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnMut(T) -> Option<U>,

    Return an iterator adaptor that filters and transforms every +Result::Ok value with the provided closure. Result::Err +values are unchanged. Read more
    source§

    fn flatten_ok<T, E>(self) -> FlattenOk<Self, T, E>where + Self: Iterator<Item = Result<T, E>> + Sized, + T: IntoIterator,

    Return an iterator adaptor that flattens every Result::Ok value into +a series of Result::Ok values. Result::Err values are unchanged. Read more
    source§

    fn process_results<F, T, E, R>(self, processor: F) -> Result<R, E>where + Self: Iterator<Item = Result<T, E>> + Sized, + F: FnOnce(ProcessResults<'_, Self, E>) -> R,

    “Lift” a function of the values of the current iterator so as to process +an iterator of Result values instead. Read more
    source§

    fn merge<J>( + self, + other: J +) -> MergeBy<Self, <J as IntoIterator>::IntoIter, MergeLte>where + Self: Sized, + Self::Item: PartialOrd<Self::Item>, + J: IntoIterator<Item = Self::Item>,

    Return an iterator adaptor that merges the two base iterators in +ascending order. If both base iterators are sorted (ascending), the +result is sorted. Read more
    source§

    fn merge_by<J, F>( + self, + other: J, + is_first: F +) -> MergeBy<Self, <J as IntoIterator>::IntoIter, F>where + Self: Sized, + J: IntoIterator<Item = Self::Item>, + F: FnMut(&Self::Item, &Self::Item) -> bool,

    Return an iterator adaptor that merges the two base iterators in order. +This is much like .merge() but allows for a custom ordering. Read more
    source§

    fn merge_join_by<J, F, T>( + self, + other: J, + cmp_fn: F +) -> MergeJoinBy<Self, <J as IntoIterator>::IntoIter, F>where + J: IntoIterator, + F: FnMut(&Self::Item, &<J as IntoIterator>::Item) -> T, + T: OrderingOrBool<Self::Item, <J as IntoIterator>::Item>, + Self: Sized,

    Create an iterator that merges items from both this and the specified +iterator in ascending order. Read more
    source§

    fn kmerge(self) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, KMergeByLt>where + Self: Sized, + Self::Item: IntoIterator, + <Self::Item as IntoIterator>::Item: PartialOrd<<Self::Item as IntoIterator>::Item>,

    Return an iterator adaptor that flattens an iterator of iterators by +merging them in ascending order. Read more
    source§

    fn kmerge_by<F>( + self, + first: F +) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, F>where + Self: Sized, + Self::Item: IntoIterator, + F: FnMut(&<Self::Item as IntoIterator>::Item, &<Self::Item as IntoIterator>::Item) -> bool,

    Return an iterator adaptor that flattens an iterator of iterators by +merging them according to the given closure. Read more
    source§

    fn cartesian_product<J>( + self, + other: J +) -> Product<Self, <J as IntoIterator>::IntoIter>where + Self: Sized, + Self::Item: Clone, + J: IntoIterator, + <J as IntoIterator>::IntoIter: Clone,

    Return an iterator adaptor that iterates over the cartesian product of +the element sets of two iterators self and J. Read more
    source§

    fn multi_cartesian_product( + self +) -> MultiProduct<<Self::Item as IntoIterator>::IntoIter>where + Self: Sized, + Self::Item: IntoIterator, + <Self::Item as IntoIterator>::IntoIter: Clone, + <Self::Item as IntoIterator>::Item: Clone,

    Return an iterator adaptor that iterates over the cartesian product of +all subiterators returned by meta-iterator self. Read more
    source§

    fn coalesce<F>(self, f: F) -> CoalesceBy<Self, F, Self::Item>where + Self: Sized, + F: FnMut(Self::Item, Self::Item) -> Result<Self::Item, (Self::Item, Self::Item)>,

    Return an iterator adaptor that uses the passed-in closure to +optionally merge together consecutive elements. Read more
    source§

    fn dedup(self) -> CoalesceBy<Self, DedupPred2CoalescePred<DedupEq>, Self::Item>where + Self: Sized, + Self::Item: PartialEq<Self::Item>,

    Remove duplicates from sections of consecutive identical elements. +If the iterator is sorted, all elements will be unique. Read more
    source§

    fn dedup_by<Cmp>( + self, + cmp: Cmp +) -> CoalesceBy<Self, DedupPred2CoalescePred<Cmp>, Self::Item>where + Self: Sized, + Cmp: FnMut(&Self::Item, &Self::Item) -> bool,

    Remove duplicates from sections of consecutive identical elements, +determining equality using a comparison function. +If the iterator is sorted, all elements will be unique. Read more
    source§

    fn dedup_with_count( + self +) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<DedupEq>, (usize, Self::Item)>where + Self: Sized,

    Remove duplicates from sections of consecutive identical elements, while keeping a count of +how many repeated elements were present. +If the iterator is sorted, all elements will be unique. Read more
    source§

    fn dedup_by_with_count<Cmp>( + self, + cmp: Cmp +) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<Cmp>, (usize, Self::Item)>where + Self: Sized, + Cmp: FnMut(&Self::Item, &Self::Item) -> bool,

    Remove duplicates from sections of consecutive identical elements, while keeping a count of +how many repeated elements were present. +This will determine equality using a comparison function. +If the iterator is sorted, all elements will be unique. Read more
    source§

    fn duplicates(self) -> DuplicatesBy<Self, Self::Item, ById>where + Self: Sized, + Self::Item: Eq + Hash,

    Return an iterator adaptor that produces elements that appear more than once during the +iteration. Duplicates are detected using hash and equality. Read more
    source§

    fn duplicates_by<V, F>(self, f: F) -> DuplicatesBy<Self, V, ByFn<F>>where + Self: Sized, + V: Eq + Hash, + F: FnMut(&Self::Item) -> V,

    Return an iterator adaptor that produces elements that appear more than once during the +iteration. Duplicates are detected using hash and equality. Read more
    source§

    fn unique(self) -> Unique<Self>where + Self: Sized, + Self::Item: Clone + Eq + Hash,

    Return an iterator adaptor that filters out elements that have +already been produced once during the iteration. Duplicates +are detected using hash and equality. Read more
    source§

    fn unique_by<V, F>(self, f: F) -> UniqueBy<Self, V, F>where + Self: Sized, + V: Eq + Hash, + F: FnMut(&Self::Item) -> V,

    Return an iterator adaptor that filters out elements that have +already been produced once during the iteration. Read more
    source§

    fn peeking_take_while<F>(&mut self, accept: F) -> PeekingTakeWhile<'_, Self, F>where + Self: Sized + PeekingNext, + F: FnMut(&Self::Item) -> bool,

    Return an iterator adaptor that borrows from this iterator and +takes items while the closure accept returns true. Read more
    source§

    fn take_while_ref<F>(&mut self, accept: F) -> TakeWhileRef<'_, Self, F>where + Self: Clone, + F: FnMut(&Self::Item) -> bool,

    Return an iterator adaptor that borrows from a Clone-able iterator +to only pick off elements while the predicate accept returns true. Read more
    source§

    fn take_while_inclusive<F>( + &mut self, + accept: F +) -> TakeWhileInclusive<'_, Self, F>where + Self: Sized, + F: FnMut(&Self::Item) -> bool,

    Returns an iterator adaptor that consumes elements while the given +predicate is true, including the element for which the predicate +first returned false. Read more
    source§

    fn while_some<A>(self) -> WhileSome<Self>where + Self: Sized + Iterator<Item = Option<A>>,

    Return an iterator adaptor that filters Option<A> iterator elements +and produces A. Stops on the first None encountered. Read more
    source§

    fn tuple_combinations<T>(self) -> TupleCombinations<Self, T>where + Self: Sized + Clone, + Self::Item: Clone, + T: HasCombination<Self>,

    Return an iterator adaptor that iterates over the combinations of the +elements from an iterator. Read more
    source§

    fn combinations(self, k: usize) -> Combinations<Self>where + Self: Sized, + Self::Item: Clone,

    Return an iterator adaptor that iterates over the k-length combinations of +the elements from an iterator. Read more
    source§

    fn combinations_with_replacement( + self, + k: usize +) -> CombinationsWithReplacement<Self>where + Self: Sized, + Self::Item: Clone,

    Return an iterator that iterates over the k-length combinations of +the elements from an iterator, with replacement. Read more
    source§

    fn permutations(self, k: usize) -> Permutations<Self>where + Self: Sized, + Self::Item: Clone,

    Return an iterator adaptor that iterates over all k-permutations of the +elements from an iterator. Read more
    source§

    fn powerset(self) -> Powerset<Self>where + Self: Sized, + Self::Item: Clone,

    Return an iterator that iterates through the powerset of the elements from an +iterator. Read more
    source§

    fn pad_using<F>(self, min: usize, f: F) -> PadUsing<Self, F>where + Self: Sized, + F: FnMut(usize) -> Self::Item,

    Return an iterator adaptor that pads the sequence to a minimum length of +min by filling missing elements using a closure f. Read more
    source§

    fn with_position(self) -> WithPosition<Self>where + Self: Sized,

    Return an iterator adaptor that combines each element with a Position to +ease special-case handling of the first or last elements. Read more
    source§

    fn positions<P>(self, predicate: P) -> Positions<Self, P>where + Self: Sized, + P: FnMut(Self::Item) -> bool,

    Return an iterator adaptor that yields the indices of all elements +satisfying a predicate, counted from the start of the iterator. Read more
    source§

    fn update<F>(self, updater: F) -> Update<Self, F>where + Self: Sized, + F: FnMut(&mut Self::Item),

    Return an iterator adaptor that applies a mutating function +to each element before yielding it. Read more
    source§

    fn next_tuple<T>(&mut self) -> Option<T>where + Self: Sized + Iterator<Item = <T as TupleCollect>::Item>, + T: HomogeneousTuple,

    Advances the iterator and returns the next items grouped in a tuple of +a specific size (up to 12). Read more
    source§

    fn collect_tuple<T>(self) -> Option<T>where + Self: Sized + Iterator<Item = <T as TupleCollect>::Item>, + T: HomogeneousTuple,

    Collects all items from the iterator into a tuple of a specific size +(up to 12). Read more
    source§

    fn find_position<P>(&mut self, pred: P) -> Option<(usize, Self::Item)>where + P: FnMut(&Self::Item) -> bool,

    Find the position and value of the first element satisfying a predicate. Read more
    source§

    fn find_or_last<P>(self, predicate: P) -> Option<Self::Item>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Find the value of the first element satisfying a predicate or return the last element, if any. Read more
    source§

    fn find_or_first<P>(self, predicate: P) -> Option<Self::Item>where + Self: Sized, + P: FnMut(&Self::Item) -> bool,

    Find the value of the first element satisfying a predicate or return the first element, if any. Read more
    source§

    fn contains<Q>(&mut self, query: &Q) -> boolwhere + Self: Sized, + Self::Item: Borrow<Q>, + Q: PartialEq<Q>,

    Returns true if the given item is present in this iterator. Read more
    source§

    fn all_equal(&mut self) -> boolwhere + Self: Sized, + Self::Item: PartialEq<Self::Item>,

    Check whether all elements compare equal. Read more
    source§

    fn all_equal_value( + &mut self +) -> Result<Self::Item, Option<(Self::Item, Self::Item)>>where + Self: Sized, + Self::Item: PartialEq<Self::Item>,

    If there are elements and they are all equal, return a single copy of that element. +If there are no elements, return an Error containing None. +If there are elements and they are not all equal, return a tuple containing the first +two non-equal elements found. Read more
    source§

    fn all_unique(&mut self) -> boolwhere + Self: Sized, + Self::Item: Eq + Hash,

    Check whether all elements are unique (non equal). Read more
    source§

    fn dropping(self, n: usize) -> Selfwhere + Self: Sized,

    Consume the first n elements from the iterator eagerly, +and return the same iterator again. Read more
    source§

    fn dropping_back(self, n: usize) -> Selfwhere + Self: Sized + DoubleEndedIterator,

    Consume the last n elements from the iterator eagerly, +and return the same iterator again. Read more
    source§

    fn foreach<F>(self, f: F)where + F: FnMut(Self::Item), + Self: Sized,

    👎Deprecated since 0.8.0: Use .for_each() instead
    Run the closure f eagerly on each element of the iterator. Read more
    source§

    fn concat(self) -> Self::Itemwhere + Self: Sized, + Self::Item: Extend<<Self::Item as IntoIterator>::Item> + IntoIterator + Default,

    Combine all an iterator’s elements into one element by using Extend. Read more
    source§

    fn collect_vec(self) -> Vec<Self::Item, Global>where + Self: Sized,

    .collect_vec() is simply a type specialization of Iterator::collect, +for convenience.
    source§

    fn try_collect<T, U, E>(self) -> Result<U, E>where + Self: Sized + Iterator<Item = Result<T, E>>, + Result<U, E>: FromIterator<Result<T, E>>,

    .try_collect() is more convenient way of writing +.collect::<Result<_, _>>() Read more
    source§

    fn set_from<'a, A, J>(&mut self, from: J) -> usizewhere + A: 'a, + Self: Iterator<Item = &'a mut A>, + J: IntoIterator<Item = A>,

    Assign to each reference in self from the from iterator, +stopping at the shortest of the two iterators. Read more
    source§

    fn join(&mut self, sep: &str) -> Stringwhere + Self::Item: Display,

    Combine all iterator elements into one String, separated by sep. Read more
    source§

    fn format(self, sep: &str) -> Format<'_, Self>where + Self: Sized,

    Format all iterator elements, separated by sep. Read more
    source§

    fn format_with<F>(self, sep: &str, format: F) -> FormatWith<'_, Self, F>where + Self: Sized, + F: FnMut(Self::Item, &mut dyn FnMut(&dyn Display) -> Result<(), Error>) -> Result<(), Error>,

    Format all iterator elements, separated by sep. Read more
    source§

    fn fold_results<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>where + Self: Iterator<Item = Result<A, E>>, + F: FnMut(B, A) -> B,

    👎Deprecated since 0.10.0: Use .fold_ok() instead
    source§

    fn fold_ok<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>where + Self: Iterator<Item = Result<A, E>>, + F: FnMut(B, A) -> B,

    Fold Result values from an iterator. Read more
    source§

    fn fold_options<A, B, F>(&mut self, start: B, f: F) -> Option<B>where + Self: Iterator<Item = Option<A>>, + F: FnMut(B, A) -> B,

    Fold Option values from an iterator. Read more
    source§

    fn fold1<F>(self, f: F) -> Option<Self::Item>where + F: FnMut(Self::Item, Self::Item) -> Self::Item, + Self: Sized,

    👎Deprecated since 0.10.2: Use Iterator::reduce instead
    Accumulator of the elements in the iterator. Read more
    source§

    fn tree_fold1<F>(self, f: F) -> Option<Self::Item>where + F: FnMut(Self::Item, Self::Item) -> Self::Item, + Self: Sized,

    Accumulate the elements in the iterator in a tree-like manner. Read more
    source§

    fn fold_while<B, F>(&mut self, init: B, f: F) -> FoldWhile<B>where + Self: Sized, + F: FnMut(B, Self::Item) -> FoldWhile<B>,

    An iterator method that applies a function, producing a single, final value. Read more
    source§

    fn sum1<S>(self) -> Option<S>where + Self: Sized, + S: Sum<Self::Item>,

    Iterate over the entire iterator and add all the elements. Read more
    source§

    fn product1<P>(self) -> Option<P>where + Self: Sized, + P: Product<Self::Item>,

    Iterate over the entire iterator and multiply all the elements. Read more
    source§

    fn sorted_unstable(self) -> IntoIter<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_unstable_by<F>(self, cmp: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_unstable_by_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted(self) -> IntoIter<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_by<F>(self, cmp: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_by_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Sort all iterator elements into a new iterator in ascending order. Read more
    source§

    fn sorted_by_cached_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Sort all iterator elements into a new iterator in ascending order. The key function is +called exactly once per key. Read more
    source§

    fn k_smallest(self, k: usize) -> IntoIter<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Sort the k smallest elements into a new iterator, in ascending order. Read more
    source§

    fn partition_map<A, B, F, L, R>(self, predicate: F) -> (A, B)where + Self: Sized, + F: FnMut(Self::Item) -> Either<L, R>, + A: Default + Extend<L>, + B: Default + Extend<R>,

    Collect all iterator elements into one of two +partitions. Unlike Iterator::partition, each partition may +have a distinct type. Read more
    source§

    fn partition_result<A, B, T, E>(self) -> (A, B)where + Self: Iterator<Item = Result<T, E>> + Sized, + A: Default + Extend<T>, + B: Default + Extend<E>,

    Partition a sequence of Results into one list of all the Ok elements +and another list of all the Err elements. Read more
    source§

    fn into_group_map<K, V>(self) -> HashMap<K, Vec<V, Global>, RandomState>where + Self: Iterator<Item = (K, V)> + Sized, + K: Hash + Eq,

    Return a HashMap of keys mapped to Vecs of values. Keys and values +are taken from (Key, Value) tuple pairs yielded by the input iterator. Read more
    source§

    fn into_group_map_by<K, V, F>( + self, + f: F +) -> HashMap<K, Vec<V, Global>, RandomState>where + Self: Iterator<Item = V> + Sized, + K: Hash + Eq, + F: Fn(&V) -> K,

    Return an Iterator on a HashMap. Keys mapped to Vecs of values. The key is specified +in the closure. Read more
    source§

    fn into_grouping_map<K, V>(self) -> GroupingMap<Self>where + Self: Iterator<Item = (K, V)> + Sized, + K: Hash + Eq,

    Constructs a GroupingMap to be used later with one of the efficient +group-and-fold operations it allows to perform. Read more
    source§

    fn into_grouping_map_by<K, V, F>( + self, + key_mapper: F +) -> GroupingMap<MapForGrouping<Self, F>>where + Self: Iterator<Item = V> + Sized, + K: Hash + Eq, + F: FnMut(&V) -> K,

    Constructs a GroupingMap to be used later with one of the efficient +group-and-fold operations it allows to perform. Read more
    source§

    fn min_set(self) -> Vec<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Return all minimum elements of an iterator. Read more
    source§

    fn min_set_by<F>(self, compare: F) -> Vec<Self::Item, Global>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return all minimum elements of an iterator, as determined by +the specified function. Read more
    source§

    fn min_set_by_key<K, F>(self, key: F) -> Vec<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Return all minimum elements of an iterator, as determined by +the specified function. Read more
    source§

    fn max_set(self) -> Vec<Self::Item, Global>where + Self: Sized, + Self::Item: Ord,

    Return all maximum elements of an iterator. Read more
    source§

    fn max_set_by<F>(self, compare: F) -> Vec<Self::Item, Global>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return all maximum elements of an iterator, as determined by +the specified function. Read more
    source§

    fn max_set_by_key<K, F>(self, key: F) -> Vec<Self::Item, Global>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Return all maximum elements of an iterator, as determined by +the specified function. Read more
    source§

    fn minmax(self) -> MinMaxResult<Self::Item>where + Self: Sized, + Self::Item: PartialOrd<Self::Item>,

    Return the minimum and maximum elements in the iterator. Read more
    source§

    fn minmax_by_key<K, F>(self, key: F) -> MinMaxResult<Self::Item>where + Self: Sized, + K: PartialOrd<K>, + F: FnMut(&Self::Item) -> K,

    Return the minimum and maximum element of an iterator, as determined by +the specified function. Read more
    source§

    fn minmax_by<F>(self, compare: F) -> MinMaxResult<Self::Item>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return the minimum and maximum element of an iterator, as determined by +the specified comparison function. Read more
    source§

    fn position_max(self) -> Option<usize>where + Self: Sized, + Self::Item: Ord,

    Return the position of the maximum element in the iterator. Read more
    source§

    fn position_max_by_key<K, F>(self, key: F) -> Option<usize>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Return the position of the maximum element in the iterator, as +determined by the specified function. Read more
    source§

    fn position_max_by<F>(self, compare: F) -> Option<usize>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return the position of the maximum element in the iterator, as +determined by the specified comparison function. Read more
    source§

    fn position_min(self) -> Option<usize>where + Self: Sized, + Self::Item: Ord,

    Return the position of the minimum element in the iterator. Read more
    source§

    fn position_min_by_key<K, F>(self, key: F) -> Option<usize>where + Self: Sized, + K: Ord, + F: FnMut(&Self::Item) -> K,

    Return the position of the minimum element in the iterator, as +determined by the specified function. Read more
    source§

    fn position_min_by<F>(self, compare: F) -> Option<usize>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return the position of the minimum element in the iterator, as +determined by the specified comparison function. Read more
    source§

    fn position_minmax(self) -> MinMaxResult<usize>where + Self: Sized, + Self::Item: PartialOrd<Self::Item>,

    Return the positions of the minimum and maximum elements in +the iterator. Read more
    source§

    fn position_minmax_by_key<K, F>(self, key: F) -> MinMaxResult<usize>where + Self: Sized, + K: PartialOrd<K>, + F: FnMut(&Self::Item) -> K,

    Return the postions of the minimum and maximum elements of an +iterator, as determined by the specified function. Read more
    source§

    fn position_minmax_by<F>(self, compare: F) -> MinMaxResult<usize>where + Self: Sized, + F: FnMut(&Self::Item, &Self::Item) -> Ordering,

    Return the postions of the minimum and maximum elements of an +iterator, as determined by the specified comparison function. Read more
    source§

    fn exactly_one(self) -> Result<Self::Item, ExactlyOneError<Self>>where + Self: Sized,

    If the iterator yields exactly one element, that element will be returned, otherwise +an error will be returned containing an iterator that has the same output as the input +iterator. Read more
    source§

    fn at_most_one(self) -> Result<Option<Self::Item>, ExactlyOneError<Self>>where + Self: Sized,

    If the iterator yields no elements, Ok(None) will be returned. If the iterator yields +exactly one element, that element will be returned, otherwise an error will be returned +containing an iterator that has the same output as the input iterator. Read more
    source§

    fn multipeek(self) -> MultiPeek<Self>where + Self: Sized,

    An iterator adaptor that allows the user to peek at multiple .next() +values without advancing the base iterator. Read more
    source§

    fn counts(self) -> HashMap<Self::Item, usize, RandomState>where + Self: Sized, + Self::Item: Eq + Hash,

    Collect the items in this iterator and return a HashMap which +contains each item that appears in the iterator and the number +of times it appears. Read more
    source§

    fn counts_by<K, F>(self, f: F) -> HashMap<K, usize, RandomState>where + Self: Sized, + K: Eq + Hash, + F: FnMut(Self::Item) -> K,

    Collect the items in this iterator and return a HashMap which +contains each item that appears in the iterator and the number +of times it appears, +determining identity using a keying function. Read more
    source§

    fn multiunzip<FromI>(self) -> FromIwhere + Self: Sized + MultiUnzip<FromI>,

    Converts an iterator of tuples into a tuple of containers. Read more
    §

    impl<T> Len for Twhere + T: IntoIterator + Clone, + <T as IntoIterator>::IntoIter: ExactSizeIterator,

    §

    fn len(&self) -> usize

    Return the length of data type.
    §

    impl<T> ParallelBridge for Twhere + T: Iterator + Send, + <T as Iterator>::Item: Send,

    §

    fn par_bridge(self) -> IterBridge<T>

    Creates a bridge from this type to a ParallelIterator.
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = mem::align_of::<T>()

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    §

    impl<S, T> ProgressIterator for Twhere + T: Iterator<Item = S>,

    §

    fn progress_with(self, progress: ProgressBar) -> ProgressBarIter<T>

    Wrap an iterator with a custom progress bar.
    §

    fn try_progress(self) -> Option<ProgressBarIter<Self>>

    Wrap an iterator with default styling. Uses Iterator::size_hint to get length. +Returns Some(..) only if size_hint.1 is Some. If you want to create a progress bar +even if size_hint.1 returns None use progress_count or progress_with instead.
    §

    fn progress(self) -> ProgressBarIter<Self>where + Self: ExactSizeIterator,

    Wrap an iterator with default styling.
    §

    fn progress_count(self, len: u64) -> ProgressBarIter<Self>

    Wrap an iterator with an explicit element count.
    §

    fn progress_with_style(self, style: ProgressStyle) -> ProgressBarIter<Self>where + Self: ExactSizeIterator,

    Wrap an iterator with a progress bar and style it.
    source§

    impl<T> Same<T> for T

    §

    type Output = T

    Should always be Self
    §

    impl<T> SaturatedConversion for T

    §

    fn saturated_from<T>(t: T) -> Selfwhere + Self: UniqueSaturatedFrom<T>,

    Convert from a value of T into an equivalent instance of Self. Read more
    §

    fn saturated_into<T>(self) -> Twhere + Self: UniqueSaturatedInto<T>,

    Consume self to return an equivalent value of T. Read more
    source§

    impl<T> ToOwned for Twhere + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    §

    impl<I, T, Bound> TryCollect<BoundedVec<T, Bound>> for Iwhere + I: ExactSizeIterator<Item = T> + Iterator, + Bound: Get<u32>,

    §

    type Error = &'static str

    The error type that gets returned when a collection can’t be made from self.
    §

    fn try_collect( + self +) -> Result<BoundedVec<T, Bound>, <I as TryCollect<BoundedVec<T, Bound>>>::Error>

    Consume self and try to collect the results into C. Read more
    source§

    impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<S, T> UncheckedInto<T> for Swhere + T: UncheckedFrom<S>,

    §

    fn unchecked_into(self) -> T

    The counterpart to unchecked_from.
    §

    impl<T, S> UniqueSaturatedInto<T> for Swhere + T: Bounded, + S: TryInto<T>,

    §

    fn unique_saturated_into(self) -> T

    Consume self to return an equivalent value of T.
    §

    impl<V, T> VZip<V> for Twhere + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    impl<T> WithSubscriber for T

    source§

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more
    source§

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
    §

    impl<T> JsonSchemaMaybe for T

    §

    impl<T> MaybeDebug for Twhere + T: Debug,

    §

    impl<T> MaybeRefUnwindSafe for Twhere + T: RefUnwindSafe,

    §

    impl<T> MaybeSend for Twhere + T: Send,

    \ No newline at end of file diff --git a/try_runtime_core/inherent_provider/trait.InherentProvider.html b/try_runtime_core/inherent_provider/trait.InherentProvider.html new file mode 100644 index 00000000000..8c8dd4acf00 --- /dev/null +++ b/try_runtime_core/inherent_provider/trait.InherentProvider.html @@ -0,0 +1,13 @@ +InherentProvider in try_runtime_core::inherent_provider - Rust
    pub trait InherentProvider {
    +    type Err;
    +
    +    // Required method
    +    fn get_inherent_providers_and_pre_digest(
    +        &self,
    +        maybe_prev_info: Option<(InherentData, Digest)>
    +    ) -> Result<(Box<dyn InherentDataProvider>, Vec<DigestItem>), Self::Err>;
    +}
    Expand description

    Trait for providing the inherent data and digest items for block construction.

    +

    Required Associated Types§

    Required Methods§

    source

    fn get_inherent_providers_and_pre_digest( + &self, + maybe_prev_info: Option<(InherentData, Digest)> +) -> Result<(Box<dyn InherentDataProvider>, Vec<DigestItem>), Self::Err>

    Implementors§

    \ No newline at end of file diff --git a/try_runtime_core/sidebar-items.js b/try_runtime_core/sidebar-items.js index 8efc20625c9..611d006e37f 100644 --- a/try_runtime_core/sidebar-items.js +++ b/try_runtime_core/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"mod":["commands","shared_parameters","state"],"struct":["RefTimeInfo"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["commands","inherent_provider","shared_parameters","state"],"struct":["RefTimeInfo"]}; \ No newline at end of file diff --git a/try_runtime_core/struct.RefTimeInfo.html b/try_runtime_core/struct.RefTimeInfo.html index acf227baa73..81685f62144 100644 --- a/try_runtime_core/struct.RefTimeInfo.html +++ b/try_runtime_core/struct.RefTimeInfo.html @@ -1,4 +1,4 @@ -RefTimeInfo in try_runtime_core - Rust