From fe99704a6402cf1c9c8d6dce31681d05827c6470 Mon Sep 17 00:00:00 2001 From: liamaharon Date: Tue, 27 Feb 2024 06:24:12 +0000 Subject: [PATCH] deploy: 8762d742160254f6ffdb4824dd79a4a843afa65e --- help.html | 3 +- search-index.js | 12 +- settings.html | 3 +- src-files.js | 8 +- src/try_runtime/main.rs.html | 39 +- .../commands/create_snapshot.rs.html | 15 +- .../commands/execute_block.rs.html | 19 +- .../commands/fast_forward.rs.html | 45 +- .../commands/follow_chain.rs.html | 37 +- src/try_runtime_core/commands/mod.rs.html | 15 +- .../commands/offchain_worker.rs.html | 19 +- .../commands/on_runtime_upgrade.rs.html | 201 +- .../inherent_provider.rs.html | 17 +- src/try_runtime_core/lib.rs.html | 41 +- src/try_runtime_core/parse.rs.html | 21 +- .../shared_parameters.rs.html | 23 +- src/try_runtime_core/state.rs.html | 45 +- static.files/main-305769736d49e732.js | 11 + static.files/main-9dd44ab47b99a0fb.js | 12 - static.files/noscript-5d8b3c7633ad77ba.css | 1 - static.files/noscript-feafe1bb7466e4bd.css | 1 + static.files/rustdoc-9ee3a5e31a2afa3e.css | 10 - static.files/rustdoc-ac92e1bbe349e143.css | 18 + static.files/search-2b6ce74ff89ae146.js | 5 + static.files/search-8fbf244ebcf71464.js | 5 - static.files/settings-4313503d2e1961c2.js | 17 + static.files/settings-74424d7eec62a23e.js | 17 - static.files/src-script-3280b574d94e47b4.js | 1 - static.files/src-script-39ed315d46fb705f.js | 1 + static.files/storage-f2adc0d6ca4d09fb.js | 1 + static.files/storage-fec3eaa3851e447d.js | 1 - trait.impl/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 +- trait.impl/core/clone/trait.Clone.js | 2 +- trait.impl/core/convert/trait.TryFrom.js | 2 +- trait.impl/core/fmt/trait.Debug.js | 2 +- trait.impl/core/fmt/trait.Display.js | 2 +- .../double_ended/trait.DoubleEndedIterator.js | 2 +- .../exact_size/trait.ExactSizeIterator.js | 2 +- .../iter/traits/iterator/trait.Iterator.js | 2 +- trait.impl/core/marker/trait.Send.js | 2 +- trait.impl/core/marker/trait.Sync.js | 2 +- trait.impl/core/marker/trait.Unpin.js | 2 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 2 +- .../panic/unwind_safe/trait.UnwindSafe.js | 2 +- trait.impl/core/str/traits/trait.FromStr.js | 2 +- try_runtime/all.html | 3 +- try_runtime/fn.init_env.html | 3 +- try_runtime/fn.main.html | 3 +- try_runtime/index.html | 15 +- try_runtime_core/all.html | 3 +- .../commands/create_snapshot/fn.run.html | 13 +- .../commands/create_snapshot/index.html | 3 +- .../create_snapshot/struct.Command.html | 95 +- try_runtime_core/commands/enum.Action.html | 87 +- .../commands/execute_block/fn.run.html | 11 +- .../commands/execute_block/index.html | 3 +- .../execute_block/struct.Command.html | 97 +- .../commands/fast_forward/fn.run.html | 13 +- .../commands/fast_forward/index.html | 3 +- .../commands/fast_forward/struct.Command.html | 107 +- .../commands/follow_chain/fn.run.html | 13 +- .../commands/follow_chain/index.html | 3 +- .../commands/follow_chain/struct.Command.html | 103 +- try_runtime_core/commands/index.html | 3 +- .../commands/offchain_worker/fn.run.html | 13 +- .../commands/offchain_worker/index.html | 3 +- .../offchain_worker/struct.Command.html | 95 +- .../commands/on_runtime_upgrade/fn.run.html | 13 +- .../commands/on_runtime_upgrade/index.html | 3 +- .../on_runtime_upgrade/struct.Command.html | 108 +- .../commands/struct.TryRuntime.html | 101 +- try_runtime_core/index.html | 5 +- .../inherent_provider/enum.Chain.html | 103 +- try_runtime_core/inherent_provider/index.html | 5 +- .../inherent_provider/struct.ChainIter.html | 1803 +++++++++-------- .../trait.InherentProvider.html | 13 +- .../shared_parameters/enum.Runtime.html | 73 +- try_runtime_core/shared_parameters/index.html | 3 +- .../struct.SharedParams.html | 111 +- try_runtime_core/state/enum.State.html | 85 +- try_runtime_core/state/index.html | 3 +- try_runtime_core/state/struct.LiveState.html | 101 +- .../state/struct.RuntimeChecks.html | 75 +- try_runtime_core/struct.RefTimeInfo.html | 67 +- 88 files changed, 2099 insertions(+), 1965 deletions(-) create mode 100644 static.files/main-305769736d49e732.js delete mode 100644 static.files/main-9dd44ab47b99a0fb.js delete mode 100644 static.files/noscript-5d8b3c7633ad77ba.css create mode 100644 static.files/noscript-feafe1bb7466e4bd.css delete mode 100644 static.files/rustdoc-9ee3a5e31a2afa3e.css create mode 100644 static.files/rustdoc-ac92e1bbe349e143.css create mode 100644 static.files/search-2b6ce74ff89ae146.js delete mode 100644 static.files/search-8fbf244ebcf71464.js create mode 100644 static.files/settings-4313503d2e1961c2.js delete mode 100644 static.files/settings-74424d7eec62a23e.js delete mode 100644 static.files/src-script-3280b574d94e47b4.js create mode 100644 static.files/src-script-39ed315d46fb705f.js create mode 100644 static.files/storage-f2adc0d6ca4d09fb.js delete mode 100644 static.files/storage-fec3eaa3851e447d.js diff --git a/help.html b/help.html index f0c17eb0b75..358e088f11d 100644 --- a/help.html +++ b/help.html @@ -1 +1,2 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help +

Rustdoc help

Back
\ No newline at end of file diff --git a/search-index.js b/search-index.js index 7d293a76f52..4618d280e35 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":[[[],1],[[],1]],"c":[],"p":[[15,"tuple"]],"b":[]},\ -"try_runtime_core":{"doc":"","t":"DLLALLLLLLLLALLLLLLLMAALLLLLLLMLENNNNNNDLLMLLLLLLLLLLLLLLALLLLLLAALLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAALLMLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLMLLLLLLLLLLLLLLFMLLLLLLLLLLDLLLMLLLLLLLLLLLLLLLLLLLLLLLLLFMLLLMLLLLLLLDLLLMLLMLLLLLLLLLLLLLLLLLLLLLLLMFMMLLLMLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFMLLLMLLLLLLMLDLLLLLLLLLLLLLLLLLLLLLMLLLLLLLFMLLLLLLLLLLDLLLLLMLLLLLLMMLLLLLLLLLLLLLLLLLMFMLLLLLLLLLLNEDQINNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNEDLLLLLLLLLLLLLLLLLLMLLMLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLMMNDDNELLLMLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLMLLLLLLLLLLLLLLLLMMLLLM","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_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","disable_idempotency_checks","disable_spec_version_check","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","disable_spec_name_check","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","RuntimeChecks","Snap","State","__clone_box","__clone_box","at","at","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","child_tree","clone","clone","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","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_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","group_id","has_subcommand","hashed_prefixes","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_mut","into_mut","into_mut","into_ref","into_ref","into_ref","name_matches","pallet","to_ext","to_owned","to_owned","to_prev_block_live_state","try_from","try_from","try_from","try_into","try_into","try_into","try_runtime_feature_enabled","type_id","type_id","type_id","type_name","type_name","type_name","unchecked_into","unchecked_into","unchecked_into","unique_saturated_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","version_increases","vzip","vzip","vzip","path"],"q":[[0,"try_runtime_core"],[32,"try_runtime_core::commands"],[124,"try_runtime_core::commands::create_snapshot"],[166,"try_runtime_core::commands::execute_block"],[209,"try_runtime_core::commands::fast_forward"],[255,"try_runtime_core::commands::follow_chain"],[299,"try_runtime_core::commands::offchain_worker"],[341,"try_runtime_core::commands::on_runtime_upgrade"],[386,"try_runtime_core::inherent_provider"],[480,"try_runtime_core::shared_parameters"],[559,"try_runtime_core::state"],[672,"try_runtime_core::state::State"],[673,"alloc::boxed"],[674,"core::any"],[675,"alloc::sync"],[676,"alloc::rc"],[677,"core::result"],[678,"alloc::vec"],[679,"core::any"],[680,"clap_builder::builder::command"],[681,"core::fmt"],[682,"core::fmt"],[683,"clap_builder"],[684,"clap_builder::util::id"],[685,"core::option"],[686,"sc_cli::error"],[687,"core::fmt"],[688,"sp_runtime::generic::digest"],[689,"sp_inherents::client_side"],[690,"sp_runtime::generic::digest"],[691,"indicatif::progress_bar"],[692,"indicatif::iter"],[693,"alloc::string"],[694,"bounded_collections::bounded_vec"],[695,"sc_executor::executor"],[696,"frame_remote_externalities"],[697,"frame_remote_externalities"],[698,"sp_runtime::traits"],[699,"serde::de"]],"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).","","","","","","","","","","try_from Vec encoded as (Weight, Weight) tuple","","","","","","","","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 …","","","","","","","Whether to disable migration idempotency checks","Whether to skip enforcing that the new runtime spec_version…","","","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 disable weight warnings, useful if the runtime …","","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","","","","","","","","","","","","","","","","","","","Whether to disable enforcing the new runtime spec_name …","","","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","Checks to perform on the given runtime, compared to the …","Use a state snapshot as the source of runtime state.","The source of runtime state to use.","","","Return the at block hash as a Hash, if it exists.","The block hash at which to fetch the state.","","","","","","","","","","","Fetch the child-keys as well.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","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 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.","","Get a reference to the inner from the outer.","","","Storage entry key prefixes to scrape and inject into the …","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","Enforce the spec_names match","A pallet to scrape. Can be provided multiple times. If …","Create the RemoteExternalities.","","","Converts this LiveState into a LiveState for the previous …","","","","","","","Enforce that the given runtime is compiled with the …","","","","","","","","","","","","","","","","","The url to connect to.","Enforce the spec_version of the given is greater or equal …","","","",""],"i":[0,10,10,0,10,10,10,10,10,10,10,10,0,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,0,16,16,16,16,16,16,0,15,16,15,15,15,16,16,15,16,15,16,15,16,15,16,15,15,0,15,16,15,16,15,16,0,0,15,16,0,15,16,15,16,15,16,15,15,16,16,15,15,16,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,0,0,15,16,15,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,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,0,27,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,28,0,28,28,28,28,28,28,28,28,28,28,28,28,28,0,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,0,29,29,29,29,29,29,29,29,29,29,29,29,29,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,30,30,30,30,30,30,30,30,30,30,30,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,0,31,31,31,31,31,31,31,31,31,31,31,32,0,0,54,0,32,32,32,32,32,32,32,33,32,32,32,33,32,33,32,33,32,33,32,32,32,33,32,33,32,33,32,32,33,32,33,32,32,32,32,33,33,32,32,33,33,32,54,32,32,32,33,32,33,32,33,32,33,32,33,33,32,33,32,33,32,33,33,33,33,33,33,33,33,32,33,32,33,32,33,32,33,32,33,32,33,32,33,32,33,32,32,32,33,44,44,0,0,25,44,25,25,25,44,25,44,25,44,25,44,25,25,25,44,25,44,25,25,44,25,25,44,25,44,25,25,25,25,44,44,25,25,44,44,44,25,25,25,44,25,44,25,44,25,44,25,44,25,44,25,44,25,25,25,44,25,44,25,44,25,44,25,44,25,44,25,44,25,25,25,44,25,25,46,0,0,46,0,45,46,45,45,45,45,46,46,45,46,47,45,46,47,45,45,46,45,46,45,46,47,45,46,47,45,46,47,45,46,47,45,46,47,45,46,45,46,45,45,46,46,47,47,45,45,46,46,47,47,45,46,45,45,46,47,45,46,47,45,46,47,45,46,47,45,46,47,45,46,47,45,46,47,47,45,46,45,46,45,45,46,47,45,46,47,47,45,46,47,45,46,47,45,46,47,45,46,47,45,46,45,46,45,47,45,46,47,55],"f":[0,[-1,-2,[],[]],[-1,-2,[],[]],0,[1,-1,[]],[1,-1,[]],[1,2],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],0,[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,[[7,[-2]]],[],[]],[[[9,[8]]],[[7,[10]]]],[-1,[[7,[-2]]],[],[]],[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],0,0,0,0,0,0,0,0,[[-1,13],2,[]],[[-1,13],2,[]],0,[14,14],[14,14],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[15,15],[16,16],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],14],[[],14],0,[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,2],[1,2],0,0,[[15,17],18],[[16,17],18],0,[-1,-1,[]],[-1,-1,[]],[19,[[7,[15,20]]]],[19,[[7,[16,20]]]],[19,[[7,[15,20]]]],[19,[[7,[16,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[12,23],[[],1],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[15,[[24,[2]]]],[[16,25],[[24,[2]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,11,[]],[-1,11,[]],[-1,12,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[15,19],[[7,[2,20]]]],[[16,19],[[7,[2,20]]]],[[15,19],[[7,[2,20]]]],[[16,19],[[7,[2,20]]]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[26,17],18],[-1,-1,[]],0,[19,[[7,[26,20]]]],[19,[[7,[26,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[25,26],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[26,19],[[7,[2,20]]]],[[26,19],[[7,[2,20]]]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],0,[-1,-2,[],[]],[-1,-2,[],[]],[27,27],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[27,17],18],[-1,-1,[]],[19,[[7,[27,20]]]],[19,[[7,[27,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[25,27],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],0,[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[27,19],[[7,[2,20]]]],[[27,19],[[7,[2,20]]]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],0,[-1,-2,[],[]],[-1,-2,[],[]],0,[28,28],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[28,17],18],[-1,-1,[]],[19,[[7,[28,20]]]],[19,[[7,[28,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[25,28],[[24,[2]]]],0,0,[-1,-2,[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],0,[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[28,19],[[7,[2,20]]]],[[28,19],[[7,[2,20]]]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[29,29],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[29,17],18],[-1,-1,[]],[19,[[7,[29,20]]]],[19,[[7,[29,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[25,29],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],0,[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[29,19],[[7,[2,20]]]],[[29,19],[[7,[2,20]]]],0,[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[30,30],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[30,17],18],[-1,-1,[]],[19,[[7,[30,20]]]],[19,[[7,[30,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[[],[[22,[21]]]],0,[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[25,30],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[30,19],[[7,[2,20]]]],[[30,19],[[7,[2,20]]]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],0,[31,31],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],0,0,[1,2],[[31,17],18],[-1,-1,[]],[19,[[7,[31,20]]]],[19,[[7,[31,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[25,31],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[31,19],[[7,[2,20]]]],[[31,19],[[7,[2,20]]]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,[[-1,13],2,[]],[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[32,32],[33,33],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,2],[1,2],[[32,17],18],[[32,17],[[7,[2,34]]]],[[33,17],18],[-1,-1,[]],[-1,-1,[]],[19,[[7,[32,20]]]],[19,[[7,[32,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[12,[[7,[32]]]],[[-1,[22,[[2,[35,36]]]]],[[7,[[2,[[3,[37]],[9,[38]]]]]]],[]],[[32,[22,[[2,[35,36]]]]],[[7,[[2,[[3,[37]],[9,[38]]]]]]]],[12,23],[[],1],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],33],[33,1],[-1,1,[]],[33,22],[33,22],[[33,1],22],[-1,[[39,[-2]]],[],[]],[[-1,40],[[41,[-2]]],[],[]],[33,[[2,[1,[22,[1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,42,[]],[-1,[[7,[[43,[-2,-3]]]]],[],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,11,[]],[-1,11,[]],[-1,12,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[32,19],[[7,[2,20]]]],[[32,19],[[7,[2,20]]]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[[-1,13],2,[]],[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[44,44],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],0,[1,2],[1,2],0,[[25,17],18],[[44,17],18],[-1,-1,[]],[-1,-1,[]],[19,[[7,[25,20]]]],[19,[[7,[25,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[12,[[7,[44]]]],[[],[[22,[21]]]],0,[[],1],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,11,[]],[-1,11,[]],[-1,12,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[25,19],[[7,[2,20]]]],[[25,19],[[7,[2,20]]]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,13],2,[]],[[-1,13],2,[]],[45,[[24,[22]]]],0,[14,14],[14,14],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[45,45],[46,46],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,2],[1,2],[1,2],[[45,17],18],[[46,17],18],[[47,17],18],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[19,[[7,[45,20]]]],[19,[[7,[46,20]]]],[19,[[7,[45,20]]]],[19,[[7,[46,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[[],[[22,[21]]]],[12,23],0,[[],1],[[],1],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[46,25,[48,[-1]],[22,[49]],47],[[24,[[50,[-2]]]]],51,[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[45,[[24,[45]]]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],[-1,[[7,[-2]]],[],[]],0,[-1,11,[]],[-1,11,[]],[-1,11,[]],[-1,12,[]],[-1,12,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[45,19],[[7,[2,20]]]],[[46,19],[[7,[2,20]]]],[[45,19],[[7,[2,20]]]],[[46,19],[[7,[2,20]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0],"c":[],"p":[[15,"usize"],[15,"tuple"],[3,"Box",673],[8,"Any",674],[3,"Arc",675],[3,"Rc",676],[4,"Result",677],[15,"u8"],[3,"Vec",678],[3,"RefTimeInfo",0],[3,"TypeId",674],[15,"str"],[3,"Private",679],[3,"Command",680],[3,"TryRuntime",32],[4,"Action",32],[3,"Formatter",681],[6,"Result",681],[3,"ArgMatches",682],[6,"Error",683],[3,"Id",684],[4,"Option",685],[15,"bool"],[6,"Result",686],[3,"SharedParams",480],[3,"Command",124],[3,"Command",166],[3,"Command",209],[3,"Command",255],[3,"Command",299],[3,"Command",341],[4,"Chain",386],[3,"ChainIter",386],[3,"Error",681],[3,"InherentData",687],[3,"Digest",688],[8,"InherentDataProvider",689],[4,"DigestItem",688],[3,"IterBridge",690],[3,"ProgressBar",691],[3,"ProgressBarIter",692],[3,"String",693],[3,"BoundedVec",694],[4,"Runtime",480],[3,"LiveState",559],[4,"State",559],[3,"RuntimeChecks",559],[3,"WasmExecutor",695],[3,"SnapshotConfig",696],[3,"RemoteExternalities",696],[8,"HostFunctions",697],[8,"Block",698],[8,"DeserializeOwned",699],[8,"InherentProvider",386],[13,"Snap",672]],"b":[[417,"impl-Debug-for-Chain"],[418,"impl-Display-for-Chain"]]}\ -}'); -if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; -if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; +var searchIndex = new Map(JSON.parse('[\ +["try_runtime",{"doc":"Try-runtime","t":"HH","n":["init_env","main"],"q":[[0,"try_runtime"]],"d":["",""],"i":[0,0],"f":[[[],1],[[],1]],"c":[],"p":[[1,"tuple"]],"b":[]}],\ +["try_runtime_core",{"doc":"","t":"FNNCNNNNNNNNCNNNNNNNOCCNNNNNNNONGPPPPPPFNNONNNNNNNNNNNNNNCNNNNNNCCNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNONNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNONNNNNNNNNNNNNNHONNNNNNNNNNFNNNONNNNNNNNNNNNNNNNNNNNNNNNNHONNNONNNNNNNFNNNONNONNNNNNNNNNNNNNNNNNNNNNNOHOONNNONNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHONNNONNNNNNONFNNNNNNNNNNNNNNNNNNNNNONNNNNNNHONNNNNNNNNNFNNNNNONNNNNNOONNNNNNNNNNNNNNNNNOOHONNNNNNNNNNPGFRKPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGFNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNONNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNOOPFFPGNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNONNNNNNNNNNNNNNNNOONNNO","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_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","disable_idempotency_checks","disable_spec_version_check","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","print_storage_diff","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","disable_spec_name_check","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","RuntimeChecks","Snap","State","__clone_box","__clone_box","at","at","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","child_tree","clone","clone","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","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_mut","from_mut","from_ref","from_ref","from_ref","from_ref","from_ref","from_ref","group_id","has_subcommand","hashed_prefixes","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_mut","into_mut","into_mut","into_ref","into_ref","into_ref","name_matches","pallet","to_ext","to_owned","to_owned","to_prev_block_live_state","try_from","try_from","try_from","try_into","try_into","try_into","try_runtime_feature_enabled","type_id","type_id","type_id","type_name","type_name","type_name","unchecked_into","unchecked_into","unchecked_into","unique_saturated_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","version_increases","vzip","vzip","vzip","path"],"q":[[0,"try_runtime_core"],[32,"try_runtime_core::commands"],[124,"try_runtime_core::commands::create_snapshot"],[166,"try_runtime_core::commands::execute_block"],[209,"try_runtime_core::commands::fast_forward"],[255,"try_runtime_core::commands::follow_chain"],[299,"try_runtime_core::commands::offchain_worker"],[341,"try_runtime_core::commands::on_runtime_upgrade"],[387,"try_runtime_core::inherent_provider"],[481,"try_runtime_core::shared_parameters"],[560,"try_runtime_core::state"],[673,"try_runtime_core::state::State"],[674,"alloc::boxed"],[675,"core::any"],[676,"alloc::sync"],[677,"alloc::rc"],[678,"alloc::vec"],[679,"core::result"],[680,"core::any"],[681,"clap_builder::builder::command"],[682,"core::fmt"],[683,"core::fmt"],[684,"clap_builder"],[685,"clap_builder::util::id"],[686,"core::option"],[687,"sc_cli::error"],[688,"core::fmt"],[689,"sp_runtime::generic::digest"],[690,"sp_inherents::client_side"],[691,"sp_runtime::generic::digest"],[692,"indicatif::progress_bar"],[693,"indicatif::iter"],[694,"alloc::string"],[695,"bounded_collections::bounded_vec"],[696,"sc_executor::executor"],[697,"frame_remote_externalities"],[698,"frame_remote_externalities"],[699,"sp_runtime::traits"],[700,"serde::de"]],"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).","","","","","","","","","try_from Vec encoded as (Weight, Weight) tuple","","","","","","","","","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 …","","","","","","","Whether to disable migration idempotency checks","Whether to skip enforcing that the new runtime spec_version…","","","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 disable weight warnings, useful if the runtime …","When migrations are detected as not idempotent, enabling …","","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","","","","","","","","","","","","","","","","","","","Whether to disable enforcing the new runtime spec_name …","","","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","Checks to perform on the given runtime, compared to the …","Use a state snapshot as the source of runtime state.","The source of runtime state to use.","","","Return the at block hash as a Hash, if it exists.","The block hash at which to fetch the state.","","","","","","","","","","","Fetch the child-keys as well.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","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 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.","","Get a reference to the inner from the outer.","","","Storage entry key prefixes to scrape and inject into the …","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","Enforce the spec_names match","A pallet to scrape. Can be provided multiple times. If …","Create the RemoteExternalities.","","","Converts this LiveState into a LiveState for the previous …","","","","","","","Enforce that the given runtime is compiled with the …","","","","","","","","","","","","","","","","","The url to connect to.","Enforce the spec_version of the given is greater or equal …","","","",""],"i":[0,9,9,0,9,9,9,9,9,9,9,9,0,9,9,9,9,9,9,9,9,0,0,9,9,9,9,9,9,9,9,9,0,16,16,16,16,16,16,0,15,16,15,15,15,16,16,15,16,15,16,15,16,15,16,15,15,0,15,16,15,16,15,16,0,0,15,16,0,15,16,15,16,15,16,15,15,16,16,15,15,16,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,0,0,15,16,15,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,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,0,27,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,28,0,28,28,28,28,28,28,28,28,28,28,28,28,28,0,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,0,29,29,29,29,29,29,29,29,29,29,29,29,29,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,30,30,30,30,30,30,30,30,30,30,30,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,0,31,31,31,31,31,31,31,31,31,31,31,32,0,0,36,0,32,32,32,32,32,32,32,33,32,32,32,33,32,33,32,33,32,33,32,32,32,33,32,33,32,33,32,32,33,32,33,32,32,32,32,33,33,32,32,33,33,32,36,32,32,32,33,32,33,32,33,32,33,32,33,33,32,33,32,33,32,33,33,33,33,33,33,33,33,32,33,32,33,32,33,32,33,32,33,32,33,32,33,32,33,32,32,32,33,46,46,0,0,25,46,25,25,25,46,25,46,25,46,25,46,25,25,25,46,25,46,25,25,46,25,25,46,25,46,25,25,25,25,46,46,25,25,46,46,46,25,25,25,46,25,46,25,46,25,46,25,46,25,46,25,46,25,25,25,46,25,46,25,46,25,46,25,46,25,46,25,46,25,25,25,46,25,25,48,0,0,48,0,47,48,47,47,47,47,48,48,47,48,49,47,48,49,47,47,48,47,48,47,48,49,47,48,49,47,48,49,47,48,49,47,48,49,47,48,47,48,47,47,48,48,49,49,47,47,48,48,49,49,47,48,47,47,48,49,47,48,49,47,48,49,47,48,49,47,48,49,47,48,49,47,48,49,49,47,48,47,48,47,47,48,49,47,48,49,49,47,48,49,47,48,49,47,48,49,47,48,49,47,48,47,48,47,49,47,48,49,56],"f":[0,[-1,-2,[],[]],[-1,-2,[],[]],0,[1,-1,[]],[1,-1,[]],[1,2],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],0,[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[[8,[7]]],[[10,[9,-1]]],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],0,0,0,0,0,0,0,0,[[-1,13],2,[]],[[-1,13],2,[]],0,[14,14],[14,14],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[15,15],[16,16],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],14],[[],14],0,[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,2],[1,2],0,0,[[15,17],18],[[16,17],18],0,[-1,-1,[]],[-1,-1,[]],[19,[[10,[15,20]]]],[19,[[10,[16,20]]]],[19,[[10,[15,20]]]],[19,[[10,[16,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[12,23],[[],1],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[15,[[24,[2]]]],[[16,25],[[24,[2]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,11,[]],[-1,11,[]],[-1,12,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[15,19],[[10,[2,20]]]],[[16,19],[[10,[2,20]]]],[[15,19],[[10,[2,20]]]],[[16,19],[[10,[2,20]]]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[26,17],18],[-1,-1,[]],0,[19,[[10,[26,20]]]],[19,[[10,[26,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[25,26],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[26,19],[[10,[2,20]]]],[[26,19],[[10,[2,20]]]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],0,[-1,-2,[],[]],[-1,-2,[],[]],[27,27],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[27,17],18],[-1,-1,[]],[19,[[10,[27,20]]]],[19,[[10,[27,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[25,27],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],0,[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[27,19],[[10,[2,20]]]],[[27,19],[[10,[2,20]]]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],0,[-1,-2,[],[]],[-1,-2,[],[]],0,[28,28],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[28,17],18],[-1,-1,[]],[19,[[10,[28,20]]]],[19,[[10,[28,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[25,28],[[24,[2]]]],0,0,[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],0,[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[28,19],[[10,[2,20]]]],[[28,19],[[10,[2,20]]]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[29,29],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[29,17],18],[-1,-1,[]],[19,[[10,[29,20]]]],[19,[[10,[29,20]]]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[25,29],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],0,[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[29,19],[[10,[2,20]]]],[[29,19],[[10,[2,20]]]],0,[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[30,30],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,2],[[30,17],18],[-1,-1,[]],[19,[[10,[30,20]]]],[19,[[10,[30,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],0,[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[25,30],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[30,19],[[10,[2,20]]]],[[30,19],[[10,[2,20]]]],[-1,-2,[],[]],0,[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],0,[31,31],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],0,0,[1,2],[[31,17],18],[-1,-1,[]],[19,[[10,[31,20]]]],[19,[[10,[31,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[[],[[22,[21]]]],[[],1],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[25,31],[[24,[2]]]],0,[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,11,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[31,19],[[10,[2,20]]]],[[31,19],[[10,[2,20]]]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,[[-1,13],2,[]],[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[32,32],[33,33],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,2],[1,2],[[32,17],[[10,[2,34]]]],[[32,17],18],[[33,17],18],[-1,-1,[]],[-1,-1,[]],[19,[[10,[32,20]]]],[19,[[10,[32,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[12,[[10,[32,-1]]],[]],[[[36,[],[[35,[-1]]]],[22,[[2,[37,38]]]]],[[10,[[2,[[3,[39]],[8,[40]]]],-1]]],[]],[[32,[22,[[2,[37,38]]]]],[[10,[[2,[[3,[39]],[8,[40]]]],-1]]],[]],[12,23],[[],1],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],33],[-1,1,[]],[33,1],[33,[[22,[-1]]],[]],[33,[[22,[-1]]],[]],[[33,1],[[22,[-1]]],[]],[-1,[[41,[-2]]],[],[]],[[-1,42],[[43,[-2]]],[],[]],[33,[[2,[1,[22,[1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,44,[]],[-1,[[10,[[45,[-2,-3]]]]],[],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,11,[]],[-1,11,[]],[-1,12,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[32,19],[[10,[2,20]]]],[[32,19],[[10,[2,20]]]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[[-1,13],2,[]],[[-1,13],2,[]],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[46,46],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],14],[[],14],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],0,[1,2],[1,2],0,[[25,17],18],[[46,17],18],[-1,-1,[]],[-1,-1,[]],[19,[[10,[25,20]]]],[19,[[10,[25,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[12,[[10,[46,-1]]],[]],[[],[[22,[21]]]],0,[[],1],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,11,[]],[-1,11,[]],[-1,12,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[25,19],[[10,[2,20]]]],[[25,19],[[10,[2,20]]]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,13],2,[]],[[-1,13],2,[]],[47,[[24,[22]]]],0,[14,14],[14,14],[14,14],[14,14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[47,47],[48,48],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,-1,[]],[1,2],[1,2],[1,2],[[47,17],18],[[48,17],18],[[49,17],18],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[19,[[10,[47,20]]]],[19,[[10,[48,20]]]],[19,[[10,[47,20]]]],[19,[[10,[48,20]]]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[[],[[22,[21]]]],[12,23],0,[[],1],[[],1],[[],1],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[3,[-1]]],[[3,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[5,[-1]]],[[5,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[[[6,[-1]]],[[6,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[48,25,[50,[-1]],[22,[51]],49],[[24,[[52,[-2]]]]],53,[54,55]],[-1,-2,[],[]],[-1,-2,[],[]],[47,[[24,[47]]]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],0,[-1,11,[]],[-1,11,[]],[-1,11,[]],[-1,12,[]],[-1,12,[]],[-1,12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[47,19],[[10,[2,20]]]],[[48,19],[[10,[2,20]]]],[[47,19],[[10,[2,20]]]],[[48,19],[[10,[2,20]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0],"c":[],"p":[[1,"usize"],[1,"tuple"],[5,"Box",674],[10,"Any",675],[5,"Arc",676],[5,"Rc",677],[1,"u8"],[5,"Vec",678],[5,"RefTimeInfo",0],[6,"Result",679],[5,"TypeId",675],[1,"str"],[5,"Private",680],[5,"Command",681],[5,"TryRuntime",32],[6,"Action",32],[5,"Formatter",682],[8,"Result",682],[5,"ArgMatches",683],[8,"Error",684],[5,"Id",685],[6,"Option",686],[1,"bool"],[8,"Result",687],[5,"SharedParams",481],[5,"Command",124],[5,"Command",166],[5,"Command",209],[5,"Command",255],[5,"Command",299],[5,"Command",341],[6,"Chain",387],[5,"ChainIter",387],[5,"Error",682],[17,"Err"],[10,"InherentProvider",387],[5,"InherentData",688],[5,"Digest",689],[10,"InherentDataProvider",690],[6,"DigestItem",689],[5,"IterBridge",691],[5,"ProgressBar",692],[5,"ProgressBarIter",693],[5,"String",694],[5,"BoundedVec",695],[6,"Runtime",481],[5,"LiveState",560],[6,"State",560],[5,"RuntimeChecks",560],[5,"WasmExecutor",696],[5,"SnapshotConfig",697],[5,"RemoteExternalities",697],[10,"HostFunctions",698],[10,"Block",699],[10,"DeserializeOwned",700],[15,"Snap",673]],"b":[[418,"impl-Display-for-Chain"],[419,"impl-Debug-for-Chain"]]}]\ +]')); +if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; +else if (window.initSearch) window.initSearch(searchIndex); diff --git a/settings.html b/settings.html index 2bb328be2a1..c9bc01cf318 100644 --- a/settings.html +++ b/settings.html @@ -1 +1,2 @@ -Settings

Rustdoc settings

Back
\ No newline at end of file +Settings +

Rustdoc settings

Back
\ No newline at end of file diff --git a/src-files.js b/src-files.js index 9564b7eb475..75be676d3d5 100644 --- a/src-files.js +++ b/src-files.js @@ -1,5 +1,5 @@ -var srcIndex = JSON.parse('{\ -"try_runtime":["",[],["main.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"]]\ -}'); +var srcIndex = new Map(JSON.parse('[\ +["try_runtime",["",[],["main.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"]]]\ +]')); createSrcSidebar(); diff --git a/src/try_runtime/main.rs.html b/src/try_runtime/main.rs.html index e004d30100b..4cc3ac75050 100644 --- a/src/try_runtime/main.rs.html +++ b/src/try_runtime/main.rs.html @@ -1,4 +1,5 @@ -main.rs - source
1
+main.rs - source
+    
1
 2
 3
 4
@@ -324,24 +325,24 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
 
 //! # Try-runtime
 //!
-//! Substrate's programmatic testing framework.
+//! Substrate's programmatic testing framework.
 //!
 //! > As the name suggests, `try-runtime` is a detailed testing framework that gives you a lot of
-//! control over what is being executed in which environment. It is recommended that user's first
+//! control over what is being executed in which environment. It is recommended that user's first
 //! familiarize themselves with substrate in depth, particularly the execution model. It is critical
 //! to deeply understand how the wasm/client/runtime interactions, and the runtime apis work in the
 //! substrate runtime, before commencing to working with `try-runtime`.
@@ -364,7 +365,7 @@
 //!
 //! Alternatively, the state could come from a snapshot file.
 //!
-//! All of the variables in the above statement are made *italic*. Let's look at each of them:
+//! All of the variables in the above statement are made *italic*. Let's look at each of them:
 //!
 //! 1. **State** is the key-value pairs of data that comprise the canonical information that any
 //!    blockchain is keeping. A state can be full (all key-value pairs), or be partial (only pairs
@@ -404,7 +405,7 @@
 //! <https://forum.polkadot.network/t/state-trie-migration/852> for more info).
 //!
 //! Then, the specific command has to be specified. See [`Action`] for more information about each
-//! command's specific customization flags, and assumptions regarding the runtime being used.
+//! command's specific customization flags, and assumptions regarding the runtime being used.
 //!
 //! Briefly, this CLI is capable of executing:
 //!
@@ -412,7 +413,7 @@
 //! * [`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::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.
 //! * [`Action::CreateSnapshot`]: Create a snapshot file from a remote node.
@@ -456,10 +457,10 @@
 //! both cases, these methods can be added:
 //!
 //! ```ignore
-//! #[cfg(feature = "try-runtime")]
+//! #[cfg(feature = "try-runtime")]
 //! fn pre_upgrade() -> Result<Vec<u8>, TryRuntimeError> {}
 //!
-//! #[cfg(feature = "try-runtime")]
+//! #[cfg(feature = "try-runtime")]
 //! fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError> {}
 //! ```
 //!
@@ -480,7 +481,7 @@
 //! Similarly, each pallet can expose a function in `#[pallet::hooks]` section as follows:
 //!
 //! ```ignore
-//! #[cfg(feature = "try-runtime")]
+//! #[cfg(feature = "try-runtime")]
 //! fn try_state(_: BlockNumber) -> Result<(), TryRuntimeError> {}
 //! ```
 //!
@@ -507,21 +508,21 @@
 //! cargo build --features try-runtime --release && cp target/release/substrate .
 //! ```
 //!
-//! > The above example is with `substrate`'s `kitchensink-runtime`, but is applicable to any
+//! > The above example is with `substrate`'s `kitchensink-runtime`, but is applicable to any
 //! > substrate-based chain.
 //!
 //! * Run the migrations of a given runtime on top of a live state.
 //!
 //! ```bash
-//! # assuming there's `./substrate --dev --tmp --ws-port 9999` or similar running.
+//! # assuming there's `./substrate --dev --tmp --ws-port 9999` or similar running.
 //! try-runtime \
 //!     --runtime /path-to-substrate/target/release/wbuild/my-runtime.wasm \
 //!     on-runtime-upgrade \
 //!     live --uri ws://localhost:9999
 //! ```
 //!
-//! * Same as the previous example, but run it at specific block number's state and using the live
-//! polkadot network. This means that this block hash's state should not yet have been pruned by the
+//! * Same as the previous example, but run it at specific block number's state and using the live
+//! polkadot network. This means that this block hash's state should not yet have been pruned by the
 //! node running at `rpc.polkadot.io`.
 //!
 //! ```bash
@@ -533,13 +534,13 @@
 //!     --at 0xa1b16c1efd889a9f17375ec4dd5c1b4351a2be17fa069564fced10d23b9b3836
 //! ```
 //!
-//! * Now, let's use a snapshot file. First, we create the snapshot:
+//! * Now, let's use a snapshot file. First, we create the snapshot:
 //!
 //! ```bash
 //! try-runtime --runtime existing create-snapshot --uri ws://localhost:9999 my-snapshot.snap
 //! 2022-12-13 10:28:17.516  INFO                 main remote-ext: since no at is provided, setting it to latest finalized head, 0xe7d0b614dfe89af65b33577aae46a6f958c974bf52f8a5e865a0f4faeb578d22
 //! 2022-12-13 10:28:17.516  INFO                 main remote-ext: since no prefix is filtered, the data for all pallets will be downloaded
-//! 2022-12-13 10:28:17.550  INFO                 main remote-ext: writing snapshot of 1611464 bytes to "node-268@latest.snap"
+//! 2022-12-13 10:28:17.550  INFO                 main remote-ext: writing snapshot of 1611464 bytes to "node-268@latest.snap"
 //! 2022-12-13 10:28:17.551  INFO                 main remote-ext: initialized state externalities with storage root 0x925e4e95de4c08474fb7f976c4472fa9b8a1091619cd7820a793bf796ee6d932 and state_version V1
 //! ```
 //!
@@ -588,7 +589,7 @@
 //!
 //! See [`TryStateSelect`] for more information.
 //!
-//! * Follow our live chain's blocks using `follow-chain`, whilst running the try-state of 3 pallets
+//! * Follow our live chain's blocks using `follow-chain`, whilst running the try-state of 3 pallets
 //!   in a round robin fashion
 //!
 //! ```bash
@@ -626,7 +627,7 @@
 
 fn init_env() {
     if env::var(env_logger::DEFAULT_FILTER_ENV).is_err() {
-        env::set_var(env_logger::DEFAULT_FILTER_ENV, "info");
+        env::set_var(env_logger::DEFAULT_FILTER_ENV, "info");
     }
     env_logger::init();
 }
diff --git a/src/try_runtime_core/commands/create_snapshot.rs.html b/src/try_runtime_core/commands/create_snapshot.rs.html
index 1c1b156f69b..9ce16b35ed0 100644
--- a/src/try_runtime_core/commands/create_snapshot.rs.html
+++ b/src/try_runtime_core/commands/create_snapshot.rs.html
@@ -1,4 +1,5 @@
-create_snapshot.rs - source
1
+create_snapshot.rs - source
+    
1
 2
 3
 4
@@ -91,14 +92,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -141,7 +142,7 @@
 {
     let snapshot_path = command.snapshot_path;
     if !matches!(shared.runtime, crate::shared_parameters::Runtime::Existing) {
-        return Err("creating a snapshot is only possible with --runtime existing.".into());
+        return Err("creating a snapshot is only possible with --runtime existing.".into());
     }
 
     let path = match snapshot_path {
@@ -152,12 +153,12 @@
                 .await
                 .unwrap();
             let path_str = format!(
-                "{}-{}@{}.snap",
+                "{}-{}@{}.snap",
                 remote_spec.spec_name.to_lowercase(),
                 remote_spec.spec_version,
-                command.from.at.clone().unwrap_or("latest".to_owned())
+                command.from.at.clone().unwrap_or("latest".to_owned())
             );
-            log::info!(target: LOG_TARGET, "snapshot path not provided (-s), using '{}'", path_str);
+            log::info!(target: LOG_TARGET, "snapshot path not provided (-s), using '{}'", path_str);
             path_str
         }
     };
diff --git a/src/try_runtime_core/commands/execute_block.rs.html b/src/try_runtime_core/commands/execute_block.rs.html
index a813757a814..17d39234229 100644
--- a/src/try_runtime_core/commands/execute_block.rs.html
+++ b/src/try_runtime_core/commands/execute_block.rs.html
@@ -1,4 +1,5 @@
-execute_block.rs - source
1
+execute_block.rs - source
+    
1
 2
 3
 4
@@ -161,14 +162,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -204,7 +205,7 @@
     ///   `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")]
+    #[arg(long, default_value = "all")]
     pub try_state: frame_try_runtime::TryStateSelect,
 
     /// The ws uri from which to fetch the block.
@@ -230,12 +231,12 @@
         match (&self.block_ws_uri, &self.state) {
             (Some(block_ws_uri), State::Snap { .. }) => block_ws_uri.to_owned(),
             (Some(block_ws_uri), State::Live { .. }) => {
-                log::error!(target: LOG_TARGET, "--block-uri is provided while state type is live, Are you sure you know what you are doing?");
+                log::error!(target: LOG_TARGET, "--block-uri is provided while state type is live, Are you sure you know what you are doing?");
                 block_ws_uri.to_owned()
             }
             (None, State::Live(LiveState { uri, .. })) => uri.clone(),
             (None, State::Snap { .. }) => {
-                panic!("either `--block-uri` must be provided, or state must be `live`");
+                panic!("either `--block-uri` must be provided, or state must be `live`");
             }
         }
     }
@@ -258,7 +259,7 @@
     let live_state = match command.state {
         State::Live(live_state) => live_state,
         _ => {
-            unreachable!("execute block currently only supports Live state")
+            unreachable!("execute block currently only supports Live state")
         }
     };
 
@@ -282,7 +283,7 @@
         ChainApi::<(), Block::Hash, Block::Header, SignedBlock<Block>>::block(&rpc, execute_at)
             .await
             .map_err(rpc_err_handler)?
-            .expect("header exists, block should also exist; qed")
+            .expect("header exists, block should also exist; qed")
             .block;
 
     // A digest item gets added when the runtime is processing the block, so we need to pop
@@ -306,7 +307,7 @@
         &ext,
         &mut Default::default(),
         &executor,
-        "TryRuntime_execute_block",
+        "TryRuntime_execute_block",
         &payload,
         full_extensions(executor.clone()),
         shared.export_proof,
diff --git a/src/try_runtime_core/commands/fast_forward.rs.html b/src/try_runtime_core/commands/fast_forward.rs.html
index 43b0310c462..650167890d0 100644
--- a/src/try_runtime_core/commands/fast_forward.rs.html
+++ b/src/try_runtime_core/commands/fast_forward.rs.html
@@ -1,4 +1,5 @@
-fast_forward.rs - source
1
+fast_forward.rs - source
+    
1
 2
 3
 4
@@ -311,14 +312,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -372,11 +373,11 @@
     ///   `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")]
+    #[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")]
+    #[arg(long, default_value = "true")]
     pub run_migrations: bool,
 
     /// The state type to use.
@@ -391,7 +392,7 @@
             _ => self
                 .block_ws_uri
                 .as_ref()
-                .expect("Either `--block-uri` must be provided, or state must be `live`"),
+                .expect("Either `--block-uri` must be provided, or state must be `live`"),
         }
     }
 }
@@ -409,7 +410,7 @@
         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()))?,
+            .and_then(|maybe_header| maybe_header.ok_or("header_not_found").map(|h| *h.number()))?,
     )
 }
 
@@ -417,7 +418,7 @@
 fn dry_call<T: Decode, Block: BlockT, HostFns: HostFunctions>(
     externalities: &TestExternalities<HashingFor<Block>>,
     executor: &WasmExecutor<HostFns>,
-    method: &'static str,
+    method: &'static str,
     data: &[u8],
 ) -> Result<T> {
     let (_, result) = state_machine_call::<Block, HostFns>(
@@ -435,7 +436,7 @@
 async fn call<Block: BlockT, HostFns: HostFunctions>(
     externalities: &mut TestExternalities<HashingFor<Block>>,
     executor: &WasmExecutor<HostFns>,
-    method: &'static str,
+    method: &'static str,
     data: &[u8],
 ) -> Result<()> {
     let (mut changes, _) = state_machine_call::<Block, HostFns>(
@@ -486,7 +487,7 @@
     call::<Block, _>(
         externalities,
         executor,
-        "Core_initialize_block",
+        "Core_initialize_block",
         &header.encode(),
     )
     .await?;
@@ -494,7 +495,7 @@
     let extrinsics = dry_call::<Vec<Block::Extrinsic>, Block, _>(
         externalities,
         executor,
-        "BlockBuilder_inherent_extrinsics",
+        "BlockBuilder_inherent_extrinsics",
         &inherent_data.encode(),
     )?;
 
@@ -502,7 +503,7 @@
         call::<Block, _>(
             externalities,
             executor,
-            "BlockBuilder_apply_extrinsic",
+            "BlockBuilder_apply_extrinsic",
             &xt.encode(),
         )
         .await?;
@@ -511,14 +512,14 @@
     let header = dry_call::<Block::Header, Block, _>(
         externalities,
         executor,
-        "BlockBuilder_finalize_block",
+        "BlockBuilder_finalize_block",
         &[0u8; 0],
     )?;
 
     call::<Block, _>(
         externalities,
         executor,
-        "BlockBuilder_finalize_block",
+        "BlockBuilder_finalize_block",
         &[0u8; 0],
     )
     .await?;
@@ -550,19 +551,19 @@
         .await?;
 
     if command.run_migrations {
-        log::info!("Running migrations...");
+        log::info!("Running migrations...");
         state_machine_call_with_proof::<Block, HostFns>(
             &ext,
             &mut Default::default(),
             &executor,
-            "TryRuntime_on_runtime_upgrade",
+            "TryRuntime_on_runtime_upgrade",
             command.try_state.encode().as_ref(),
-            Default::default(), // we don't really need any extensions here.
+            Default::default(), // we don't really need any extensions here.
             None,
         )?;
     }
 
-    log::info!("Fast forwarding {} blocks...", command.n_blocks);
+    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?;
@@ -575,7 +576,7 @@
         let backend = ext.as_backend();
 
         log::info!(
-            "Producing new empty block at height {:?}",
+            "Producing new empty block at height {:?}",
             last_block_number + One::one()
         );
 
@@ -589,7 +590,7 @@
         )
         .await?;
 
-        log::info!("Produced a new block: {:?}", next_block.header());
+        log::info!("Produced a new block: {:?}", next_block.header());
 
         // And now we restore previous state.
         ext.backend = backend;
@@ -603,9 +604,9 @@
             command.try_state.clone(),
         )
             .encode();
-        call::<Block, _>(&mut ext, &executor, "TryRuntime_execute_block", &payload).await?;
+        call::<Block, _>(&mut ext, &executor, "TryRuntime_execute_block", &payload).await?;
 
-        log::info!("Executed the new block");
+        log::info!("Executed the new block");
 
         prev_block_building_info = new_block_building_info;
         last_block_hash = next_block.hash();
diff --git a/src/try_runtime_core/commands/follow_chain.rs.html b/src/try_runtime_core/commands/follow_chain.rs.html
index 3fb4158232b..206f265d6cd 100644
--- a/src/try_runtime_core/commands/follow_chain.rs.html
+++ b/src/try_runtime_core/commands/follow_chain.rs.html
@@ -1,4 +1,5 @@
-follow_chain.rs - source
1
+follow_chain.rs - source
+    
1
 2
 3
 4
@@ -219,14 +220,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -249,8 +250,8 @@
     state_machine_call_with_proof, SharedParams, LOG_TARGET,
 };
 
-const SUB: &str = "chain_subscribeFinalizedHeads";
-const UN_SUB: &str = "chain_unsubscribeFinalizedHeads";
+const SUB: &str = "chain_subscribeFinalizedHeads";
+const UN_SUB: &str = "chain_unsubscribeFinalizedHeads";
 
 /// Configurations for [`run`].
 #[derive(Debug, Clone, clap::Parser)]
@@ -272,7 +273,7 @@
     ///   `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")]
+    #[arg(long, default_value = "all")]
     pub try_state: frame_try_runtime::TryStateSelect,
 
     /// If present, a single connection to a node will be kept and reused for fetching blocks.
@@ -284,14 +285,14 @@
 ///
 /// Returns a pair `(client, subscription)` - `subscription` alone will be useless, because it
 /// relies on the related alive `client`.
-async fn start_subscribing<Header: DeserializeOwned + Serialize + Send + Sync + 'static>(
+async fn start_subscribing<Header: DeserializeOwned + Serialize + Send + Sync + 'static>(
     url: &str,
 ) -> sc_cli::Result<(WsClient, Subscription<Header>)> {
     let client = ws_client(url)
         .await
         .map_err(|e| sc_cli::Error::Application(e.into()))?;
 
-    log::info!(target: LOG_TARGET, "subscribing to {:?} / {:?}", SUB, UN_SUB);
+    log::info!(target: LOG_TARGET, "subscribing to {:?} / {:?}", SUB, UN_SUB);
 
     let sub = ChainApi::<(), (), Header, ()>::subscribe_finalized_heads(&client)
         .await
@@ -327,21 +328,21 @@
                     if matches!(e, substrate_rpc_client::Error::ParseError(_)) {
                         log::error!(
                             target: LOG_TARGET,
-                            "failed to parse the block format of remote against the local \
+                            "failed to parse the block format of remote against the local \
                             codebase. The block format has changed, and follow-chain cannot run in \
 							this case. Try running this command in a branch of your codebase that
 							has the same block format as the remote chain. For now, we replace the \
-                            block with an empty one."
+                            block with an empty one."
                         );
                     }
                     rpc_err_handler(e)
                 })?
-                .expect("if header exists, block should also exist.")
+                .expect("if header exists, block should also exist.")
                 .block;
 
         log::debug!(
             target: LOG_TARGET,
-            "new block event: {:?} => {:?}, extrinsics: {}",
+            "new block event: {:?} => {:?}, extrinsics: {}",
             hash,
             number,
             block.extrinsics().len()
@@ -371,14 +372,14 @@
 
         let state_ext = maybe_state_ext
             .as_mut()
-            .expect("state_ext either existed or was just created");
+            .expect("state_ext either existed or was just created");
 
         let mut overlayed_changes = Default::default();
         let result = state_machine_call_with_proof::<Block, HostFns>(
             state_ext,
             &mut overlayed_changes,
             &executor,
-            "TryRuntime_execute_block",
+            "TryRuntime_execute_block",
             (
                 block,
                 command.state_root_check,
@@ -391,13 +392,13 @@
             shared
                 .export_proof
                 .as_ref()
-                .map(|path| path.as_path().join(format!("{}.json", number))),
+                .map(|path| path.as_path().join(format!("{}.json", number))),
         );
 
         if let Err(why) = result {
             log::error!(
                 target: LOG_TARGET,
-                "failed to execute block {:?} due to {:?}",
+                "failed to execute block {:?} due to {:?}",
                 number,
                 why
             );
@@ -421,13 +422,13 @@
 
         log::info!(
             target: LOG_TARGET,
-            "executed block {}, new storage root {:?}",
+            "executed block {}, new storage root {:?}",
             number,
             state_ext.as_backend().root(),
         );
     }
 
-    log::error!(target: LOG_TARGET, "ws subscription must have terminated.");
+    log::error!(target: LOG_TARGET, "ws subscription must have terminated.");
     Ok(())
 }
 
\ No newline at end of file diff --git a/src/try_runtime_core/commands/mod.rs.html b/src/try_runtime_core/commands/mod.rs.html index 39b3108a868..3dbb0d08ab0 100644 --- a/src/try_runtime_core/commands/mod.rs.html +++ b/src/try_runtime_core/commands/mod.rs.html @@ -1,4 +1,5 @@ -mod.rs - source
1
+mod.rs - source
+    
1
 2
 3
 4
@@ -175,14 +176,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -237,7 +238,7 @@
 pub enum Action {
     /// Execute the migrations of the given runtime
     ///
-    /// This uses a custom runtime api call, namely "TryRuntime_on_runtime_upgrade". The code path
+    /// This uses a custom runtime api call, namely "TryRuntime_on_runtime_upgrade". The code path
     /// only triggers all of the `on_runtime_upgrade` hooks in the runtime, and optionally
     /// `try_state`.
     ///
@@ -246,7 +247,7 @@
 
     /// Executes the given block against some state.
     ///
-    /// This uses a custom runtime api call, namely "TryRuntime_execute_block". Some checks, such
+    /// This uses a custom runtime api call, namely "TryRuntime_execute_block". Some checks, such
     /// as state-root and signature checks are always disabled, and additional checks like
     /// `try-state` can be enabled.
     ///
@@ -262,7 +263,7 @@
     /// for more information.
     OffchainWorker(offchain_worker::Command),
 
-    /// Follow the given chain's finalized blocks and apply all of its extrinsics.
+    /// Follow the given chain's finalized blocks and apply all of its extrinsics.
     ///
     /// This is essentially repeated calls to [`Action::ExecuteBlock`].
     ///
@@ -283,7 +284,7 @@
 
     /// Create snapshot files.
     ///
-    /// The `create-snapshot` subcommand facilitates the creation of a snapshot from a node's
+    /// The `create-snapshot` subcommand facilitates the creation of a snapshot from a node's
     /// state. This snapshot can be loaded rapidly into memory from disk, providing an
     /// efficient alternative to downloading state from the node for every new command
     /// execution.
diff --git a/src/try_runtime_core/commands/offchain_worker.rs.html b/src/try_runtime_core/commands/offchain_worker.rs.html
index e556b1d60ea..a60b470c9aa 100644
--- a/src/try_runtime_core/commands/offchain_worker.rs.html
+++ b/src/try_runtime_core/commands/offchain_worker.rs.html
@@ -1,4 +1,5 @@
-offchain_worker.rs - source
1
+offchain_worker.rs - source
+    
1
 2
 3
 4
@@ -119,14 +120,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -167,12 +168,12 @@
         match (&self.header_ws_uri, &self.state) {
             (Some(header_ws_uri), State::Snap { .. }) => header_ws_uri.to_owned(),
             (Some(header_ws_uri), State::Live { .. }) => {
-                log::error!(target: LOG_TARGET, "--header-uri is provided while state type is live, this will most likely lead to a nonsensical result.");
+                log::error!(target: LOG_TARGET, "--header-uri is provided while state type is live, this will most likely lead to a nonsensical result.");
                 header_ws_uri.to_owned()
             }
             (None, State::Live(LiveState { uri, .. })) => uri.clone(),
             (None, State::Snap { .. }) => {
-                panic!("either `--header-uri` must be provided, or state must be `live`");
+                panic!("either `--header-uri` must be provided, or state must be `live`");
             }
         }
     }
@@ -195,7 +196,7 @@
     let live_state = match command.state {
         State::Live(live_state) => live_state,
         _ => {
-            unreachable!("execute block currently only supports Live state")
+            unreachable!("execute block currently only supports Live state")
         }
     };
 
@@ -216,18 +217,18 @@
     let header = ChainApi::<(), Block::Hash, Block::Header, ()>::header(&rpc, execute_at)
         .await
         .map_err(rpc_err_handler)
-        .map(|maybe_header| maybe_header.ok_or("Header does not exist"))??;
+        .map(|maybe_header| maybe_header.ok_or("Header does not exist"))??;
     let payload = header.encode();
 
     let _ = state_machine_call::<Block, HostFns>(
         &ext,
         &executor,
-        "OffchainWorkerApi_offchain_worker",
+        "OffchainWorkerApi_offchain_worker",
         &payload,
         full_extensions(executor.clone()),
     )?;
 
-    log::info!(target: LOG_TARGET, "finished execution");
+    log::info!(target: LOG_TARGET, "finished execution");
     Ok(())
 }
 
\ No newline at end of file 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 13d69e7f182..2b4d6d03349 100644 --- a/src/try_runtime_core/commands/on_runtime_upgrade.rs.html +++ b/src/try_runtime_core/commands/on_runtime_upgrade.rs.html @@ -1,4 +1,5 @@ -on_runtime_upgrade.rs - source
1
+on_runtime_upgrade.rs - source
+    
1
 2
 3
 4
@@ -366,24 +367,59 @@
 366
 367
 368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
 
// This file is part of try-runtime-cli.
 
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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 std::{collections::BTreeMap, fmt::Debug, str::FromStr};
 
 use bytesize::ByteSize;
 use frame_try_runtime::UpgradeCheckSelect;
@@ -392,7 +428,7 @@
 use sc_executor::sp_wasm_interface::HostFunctions;
 use sp_core::{hexdisplay::HexDisplay, Hasher};
 use sp_runtime::traits::{Block as BlockT, HashingFor, NumberFor};
-use sp_state_machine::{CompactProof, StorageProof};
+use sp_state_machine::{CompactProof, OverlayedChanges, StorageProof};
 
 use crate::{
     build_executor,
@@ -418,25 +454,30 @@
     /// Performing any checks will potentially invalidate the measured PoV/Weight.
     // NOTE: The clap attributes make it backwards compatible with the previous `--checks` flag.
     #[clap(long,
-		default_value = "pre-and-post",
-		default_missing_value = "all",
+		default_value = "pre-and-post",
+		default_missing_value = "all",
 		num_args = 0..=1,
 		verbatim_doc_comment
     )]
     pub checks: UpgradeCheckSelect,
 
     /// Whether to disable weight warnings, useful if the runtime is for a relay chain.
-    #[clap(long, default_value = "false", default_missing_value = "true")]
+    #[clap(long, default_value = "false", default_missing_value = "true")]
     pub no_weight_warnings: bool,
 
     /// Whether to skip enforcing that the new runtime `spec_version` is greater or equal to the
     /// existing `spec_version`.
-    #[clap(long, default_value = "false", default_missing_value = "true")]
+    #[clap(long, default_value = "false", default_missing_value = "true")]
     pub disable_spec_version_check: bool,
 
     /// Whether to disable migration idempotency checks
-    #[clap(long, default_value = "false", default_missing_value = "true")]
+    #[clap(long, default_value = "false", default_missing_value = "true")]
     pub disable_idempotency_checks: bool,
+
+    /// When migrations are detected as not idempotent, enabling this will output a diff of the
+    /// storage before and after running the same set of migrations the second time.
+    #[clap(long, default_value = "false", default_missing_value = "true")]
+    pub print_storage_diff: bool,
 }
 
 // Runs the `on-runtime-upgrade` command.
@@ -463,29 +504,29 @@
     if let State::Live(_) = command.state {
         log::info!(
             target: LOG_TARGET,
-            "🚀 Speed up your workflow by using snapshots instead of live state. \
-            See `try-runtime create-snapshot --help`."
+            "🚀 Speed up your workflow by using snapshots instead of live state. \
+            See `try-runtime create-snapshot --help`."
         );
     }
 
     // Run `TryRuntime_on_runtime_upgrade` with the given checks.
     log::info!(
-        "{}",
+        "{}",
         colorize_string(
-            "<bold><blue>-------------------------------------------------------------------\n\n"
+            "<bold><blue>-------------------------------------------------------------------\n\n"
         )
     );
     log::info!(
-        "{}",
+        "{}",
         colorize_string(format!(
-            "🔬 <bold><blue>Running TryRuntime_on_runtime_upgrade with checks: {:?}\n\n",
+            "🔬 <bold><blue>Running TryRuntime_on_runtime_upgrade with checks: {:?}\n\n",
             command.checks
         ))
     );
     log::info!(
-        "{}",
+        "{}",
         colorize_string(
-            "<bold><blue>-------------------------------------------------------------------"
+            "<bold><blue>-------------------------------------------------------------------"
         )
     );
     // Save the overlayed changes from the first run, so we can use them later for idempotency
@@ -495,9 +536,9 @@
         &ext,
         &mut overlayed_changes,
         &executor,
-        "TryRuntime_on_runtime_upgrade",
+        "TryRuntime_on_runtime_upgrade",
         command.checks.encode().as_ref(),
-        Default::default(), // we don't really need any extensions here.
+        Default::default(), // we don't really need any extensions here.
         shared.export_proof.clone(),
     )?;
     let ref_time_results = encoded_result.try_into()?;
@@ -510,24 +551,24 @@
         UpgradeCheckSelect::None => (proof, ref_time_results),
         _ => {
             log::info!(
-                "{}",
-                colorize_string("<bold><blue>-------------------------------------------------------------------\n\n")
+                "{}",
+                colorize_string("<bold><blue>-------------------------------------------------------------------\n\n")
             );
             log::info!(
-                "{}",
-                colorize_string("🔬 <bold><blue>TryRuntime_on_runtime_upgrade succeeded! Running it again without checks for weight measurements.\n\n"),
+                "{}",
+                colorize_string("🔬 <bold><blue>TryRuntime_on_runtime_upgrade succeeded! Running it again without checks for weight measurements.\n\n"),
             );
             log::info!(
-                "{}",
-                colorize_string("<bold><blue>-------------------------------------------------------------------")
+                "{}",
+                colorize_string("<bold><blue>-------------------------------------------------------------------")
             );
             let (proof, encoded_result) = state_machine_call_with_proof::<Block, HostFns>(
                 &ext,
                 &mut Default::default(),
                 &executor,
-                "TryRuntime_on_runtime_upgrade",
+                "TryRuntime_on_runtime_upgrade",
                 UpgradeCheckSelect::None.encode().as_ref(),
-                Default::default(), // we don't really need any extensions here.
+                Default::default(), // we don't really need any extensions here.
                 shared.export_proof.clone(),
             )?;
             let ref_time_results = encoded_result.try_into()?;
@@ -538,30 +579,31 @@
     // Check idempotency
     let idempotency_ok = match command.disable_idempotency_checks {
         true => {
-            log::info!("ℹ Skipping idempotency check");
+            log::info!("ℹ Skipping idempotency check");
             true
         }
         false => {
             log::info!(
-                "{}",
-                colorize_string("<bold><blue>-------------------------------------------------------------------\n\n")
+                "{}",
+                colorize_string("<bold><blue>-------------------------------------------------------------------\n\n")
             );
             log::info!(
-                "{}",
-                colorize_string(format!("🔬 <bold><blue>Running TryRuntime_on_runtime_upgrade again to check idempotency: {:?}\n\n", command.checks)),
+                "{}",
+                colorize_string(format!("🔬 <bold><blue>Running TryRuntime_on_runtime_upgrade again to check idempotency: {:?}\n\n", command.checks)),
             );
             log::info!(
-                "{}",
-                colorize_string("<bold><blue>-------------------------------------------------------------------")
+                "{}",
+                colorize_string("<bold><blue>-------------------------------------------------------------------")
             );
             let (oc_pre_root, _) = overlayed_changes.storage_root(&ext.backend, ext.state_version);
+            overlayed_changes.start_transaction();
             match state_machine_call_with_proof::<Block, HostFns>(
                 &ext,
                 &mut overlayed_changes,
                 &executor,
-                "TryRuntime_on_runtime_upgrade",
+                "TryRuntime_on_runtime_upgrade",
                 command.checks.encode().as_ref(),
-                Default::default(), // we don't really need any extensions here.
+                Default::default(), // we don't really need any extensions here.
                 shared.export_proof.clone(),
             ) {
                 Ok(_) => {
@@ -569,18 +611,33 @@
                     let (oc_post_root, _) =
                         overlayed_changes.storage_root(&ext.backend, ext.state_version);
                     if oc_pre_root != oc_post_root {
-                        log::error!("❌ Migrations are not idempotent. Selectively remove migrations from Executive until you find the culprit.");
+                        log::error!("❌ Migrations are not idempotent. Selectively remove migrations from Executive until you find the culprit.");
+                        if command.print_storage_diff {
+                            log::info!("Changed storage keys:");
+                            let changes_after =
+                                collect_storage_changes_as_hex::<Block>(&overlayed_changes);
+                            overlayed_changes.rollback_transaction().expect(
+                                "Migrations must not rollback transactions that they did not open",
+                            );
+                            let changes_before =
+                                collect_storage_changes_as_hex::<Block>(&overlayed_changes);
+
+                            similar_asserts::assert_eq!(changes_before, changes_after);
+                        } else {
+                            log::error!("Run with --print-storage-diff to see list of changed storage keys.");
+                        }
+
                         false
                     } else {
-                        // Exeuction was OK and state root didn't change
+                        // Exeuction was OK and state root didn't change
                         true
                     }
                 }
                 Err(e) => {
                     log::error!(
-                        "❌ Migrations are not idempotent, they failed during the second execution.",
+                        "❌ Migrations are not idempotent, they failed during the second execution.",
                     );
-                    log::debug!("{:?}", e);
+                    log::debug!("{:?}", e);
                     false
                 }
             }
@@ -593,39 +650,39 @@
     let ref_time_safety = analyse_ref_time(ref_time_results, command.no_weight_warnings);
     let weight_ok = match (pov_safety, ref_time_safety, command.no_weight_warnings) {
         (_, _, true) => {
-            log::info!("ℹ Skipped checking weight safety");
+            log::info!("ℹ Skipped checking weight safety");
             true
         }
         (WeightSafety::ProbablySafe, WeightSafety::ProbablySafe, _) => {
             log::info!(
                 target: LOG_TARGET,
-                "✅ No weight safety issues detected. \
+                "✅ No weight safety issues detected. \
                 Please note this does not guarantee a successful runtime upgrade. \
                 Always test your runtime upgrade with recent state, and ensure that the weight usage \
                 of your migrations will not drastically differ between testing and actual on-chain \
-                execution."
+                execution."
             );
             true
         }
         _ => {
-            log::error!(target: LOG_TARGET, "❌ Weight safety issues detected.");
+            log::error!(target: LOG_TARGET, "❌ Weight safety issues detected.");
             false
         }
     };
 
     if !weight_ok || !idempotency_ok {
         log::error!(
-            "{}",
-            colorize_string("<bold><red>-------------------------------------------------------------------\n\n")
+            "{}",
+            colorize_string("<bold><red>-------------------------------------------------------------------\n\n")
         );
         log::error!(
-            "{}",
-            colorize_string("❌ <bold><red>Issues detected, exiting non-zero. See logs.\n\n"),
+            "{}",
+            colorize_string("❌ <bold><red>Issues detected, exiting non-zero. See logs.\n\n"),
         );
         log::error!(
-            "{}",
+            "{}",
             colorize_string(
-                "<bold><red>-------------------------------------------------------------------"
+                "<bold><red>-------------------------------------------------------------------"
             )
         );
         std::process::exit(1);
@@ -651,7 +708,7 @@
     H: Hasher,
 {
     if proof.is_empty() {
-        log::info!(target: LOG_TARGET, "Empty PoV detected");
+        log::info!(target: LOG_TARGET, "Empty PoV detected");
         return WeightSafety::ProbablySafe;
     }
 
@@ -660,7 +717,7 @@
         .clone()
         .into_compact_proof::<H>(pre_root)
         .map_err(|e| {
-            log::error!(target: LOG_TARGET, "failed to generate compact proof: {:?}", e);
+            log::error!(target: LOG_TARGET, "failed to generate compact proof: {:?}", e);
             e
         })
         .unwrap_or(CompactProof {
@@ -672,26 +729,26 @@
         .map_err(|e| {
             log::error!(
                 target: LOG_TARGET,
-                "failed to generate compressed proof: {:?}",
+                "failed to generate compressed proof: {:?}",
                 e
             );
             e
         })
-        .expect("generating compressed proof should never fail if proof is valid");
+        .expect("generating compressed proof should never fail if proof is valid");
 
     let proof_nodes = proof.into_nodes();
     log::debug!(
         target: LOG_TARGET,
-        "Proof: 0x{}... / {} nodes",
+        "Proof: 0x{}... / {} nodes",
         HexDisplay::from(&proof_nodes.iter().flatten().cloned().take(10).collect::<Vec<_>>()),
         proof_nodes.len()
     );
-    log::debug!(target: LOG_TARGET, "Encoded proof size: {}", ByteSize(encoded_proof_size as u64));
-    log::debug!(target: LOG_TARGET, "Compact proof size: {}", ByteSize(compact_proof_size as u64),);
+    log::debug!(target: LOG_TARGET, "Encoded proof size: {}", ByteSize(encoded_proof_size as u64));
+    log::debug!(target: LOG_TARGET, "Compact proof size: {}", ByteSize(compact_proof_size as u64),);
     log::info!(
         target: LOG_TARGET,
-        "PoV size (zstd-compressed compact proof): {}. For parachains, it's your responsibility \
-        to verify that a PoV of this size fits within any relaychain constraints.",
+        "PoV size (zstd-compressed compact proof): {}. For parachains, it's your responsibility \
+        to verify that a PoV of this size fits within any relaychain constraints.",
         ByteSize(compressed_compact_proof.len() as u64),
     );
     if !no_weight_warnings
@@ -700,8 +757,8 @@
     {
         log::warn!(
             target: LOG_TARGET,
-            "A PoV size of {} is significant. Most relay chains usually accept PoVs up to {}. \
-            Proceed with caution.",
+            "A PoV size of {} is significant. Most relay chains usually accept PoVs up to {}. \
+            Proceed with caution.",
             ByteSize(compressed_compact_proof.len() as u64),
             DEFAULT_MAX_POV_SIZE,
         );
@@ -717,7 +774,7 @@
     let (used, max) = (used.as_secs_f32(), max.as_secs_f32());
     log::info!(
         target: LOG_TARGET,
-        "Consumed ref_time: {}s ({:.2}% of max {}s)",
+        "Consumed ref_time: {}s ({:.2}% of max {}s)",
         used,
         used / max * 100.0,
         max,
@@ -725,8 +782,8 @@
     if !no_weight_warnings && used >= max * DEFAULT_WARNING_THRESHOLD {
         log::warn!(
             target: LOG_TARGET,
-            "Consumed ref_time is >= {}% of the max allowed ref_time. Please ensure the \
-            migration is not be too computationally expensive to be fit in a single block.",
+            "Consumed ref_time is >= {}% of the max allowed ref_time. Please ensure the \
+            migration is not be too computationally expensive to be fit in a single block.",
             DEFAULT_WARNING_THRESHOLD * 100.0,
         );
         WeightSafety::PotentiallyUnsafe
@@ -734,4 +791,18 @@
         WeightSafety::ProbablySafe
     }
 }
+
+fn collect_storage_changes_as_hex<Block: BlockT>(
+    overlayed_changes: &OverlayedChanges<HashingFor<Block>>,
+) -> BTreeMap<String, String> {
+    overlayed_changes
+        .changes()
+        .filter_map(|(key, entry)| {
+            Some((
+                HexDisplay::from(key).to_string(),
+                HexDisplay::from(entry.value_ref().as_ref()?).to_string(),
+            ))
+        })
+        .collect()
+}
 
\ No newline at end of file diff --git a/src/try_runtime_core/inherent_provider.rs.html b/src/try_runtime_core/inherent_provider.rs.html index 67c3ba31706..7ebf0f838f9 100644 --- a/src/try_runtime_core/inherent_provider.rs.html +++ b/src/try_runtime_core/inherent_provider.rs.html @@ -1,4 +1,5 @@ -inherent_provider.rs - source
1
+inherent_provider.rs - source
+    
1
 2
 3
 4
@@ -229,14 +230,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -268,7 +269,7 @@
     ) -> InherentProviderResult<Self::Err>;
 }
 
-// Clippy asks that we abstract the return type because it's so long
+// 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>;
 
@@ -300,12 +301,12 @@
             }
         }
 
-        // Clap error message already includes "Invalid value {s} for --chain <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"
+            "\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"
         ))
     }
 }
diff --git a/src/try_runtime_core/lib.rs.html b/src/try_runtime_core/lib.rs.html
index 7e636a0d815..076dd81e84e 100644
--- a/src/try_runtime_core/lib.rs.html
+++ b/src/try_runtime_core/lib.rs.html
@@ -1,4 +1,5 @@
-lib.rs - source
1
+lib.rs - source
+    
1
 2
 3
 4
@@ -256,14 +257,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -299,7 +300,7 @@
 pub mod shared_parameters;
 pub mod state;
 
-pub(crate) const LOG_TARGET: &str = "try-runtime::cli";
+pub(crate) const LOG_TARGET: &str = "try-runtime::cli";
 
 /// Get the hash type of the generic `Block` from a `hash_str`.
 pub(crate) fn hash_of<Block: BlockT>(hash_str: &str) -> sc_cli::Result<Block::Hash>
@@ -308,7 +309,7 @@
 {
     hash_str
         .parse::<<Block as BlockT>::Hash>()
-        .map_err(|e| format!("Could not parse block hash: {:?}", e).into())
+        .map_err(|e| format!("Could not parse block hash: {:?}", e).into())
 }
 
 /// Build wasm executor by default config.
@@ -341,7 +342,7 @@
     use sp_api::RuntimeApiInfo;
     let final_code = ext
         .execute_with(|| sp_io::storage::get(well_known_keys::CODE))
-        .expect("':CODE:' is always downloaded in try-runtime-cli; qed");
+        .expect("':CODE:' is always downloaded in try-runtime-cli; qed");
     let final_version = <RuntimeVersion as Decode>::decode(
         &mut &*executor
             .read_runtime_version(&final_code, &mut ext.ext())
@@ -358,7 +359,7 @@
 pub(crate) fn state_machine_call<Block: BlockT, HostFns: HostFunctions>(
     ext: &TestExternalities<HashingFor<Block>>,
     executor: &WasmExecutor<HostFns>,
-    method: &'static str,
+    method: &'static str,
     data: &[u8],
     mut extensions: Extensions,
 ) -> sc_cli::Result<(OverlayedChanges<HashingFor<Block>>, Vec<u8>)> {
@@ -374,7 +375,7 @@
         CallContext::Offchain,
     )
     .execute()
-    .map_err(|e| format!("failed to execute '{}': {}", method, e))
+    .map_err(|e| format!("failed to execute '{}': {}", method, e))
     .map_err::<sc_cli::Error, _>(Into::into)?;
 
     Ok((changes, encoded_result))
@@ -391,7 +392,7 @@
     /// try_from Vec encoded as (Weight, Weight) tuple
     fn try_from(value: Vec<u8>) -> Result<Self, Self::Error> {
         let (weight_used, weight_max) = <(Weight, Weight)>::decode_all(&mut &*value)
-            .map_err(|e| format!("failed to decode weight: {:?}", e))?;
+            .map_err(|e| format!("failed to decode weight: {:?}", e))?;
 
         Ok(RefTimeInfo {
             // 1000 picoseconds == 1 nanosecond
@@ -409,7 +410,7 @@
     ext: &TestExternalities<HashingFor<Block>>,
     storage_overlay: &mut OverlayedChanges<HashingFor<Block>>,
     executor: &WasmExecutor<HostFns>,
-    method: &'static str,
+    method: &'static str,
     data: &[u8],
     mut extensions: Extensions,
     maybe_export_proof: Option<PathBuf>,
@@ -431,32 +432,32 @@
         CallContext::Offchain,
     )
     .execute()
-    .map_err(|e| format!("failed to execute {}: {}", method, e))
+    .map_err(|e| format!("failed to execute {}: {}", method, e))
     .map_err::<sc_cli::Error, _>(Into::into)?;
 
     let proof = proving_backend
         .extract_proof()
-        .expect("A recorder was set and thus, a storage proof can be extracted; qed");
+        .expect("A recorder was set and thus, a storage proof can be extracted; qed");
 
     if let Some(path) = maybe_export_proof {
         let mut file = std::fs::File::create(&path).map_err(|e| {
             log::error!(
                 target: LOG_TARGET,
-                "Failed to create file {}: {:?}",
+                "Failed to create file {}: {:?}",
                 path.to_string_lossy(),
                 e
             );
             e
         })?;
 
-        log::info!(target: LOG_TARGET, "Writing storage proof to {}", path.to_string_lossy());
+        log::info!(target: LOG_TARGET, "Writing storage proof to {}", path.to_string_lossy());
 
         use std::io::Write as _;
         file.write_all(storage_proof_to_raw_json(&proof).as_bytes())
             .map_err(|e| {
                 log::error!(
                     target: LOG_TARGET,
-                    "Failed to write storage proof to {}: {:?}",
+                    "Failed to write storage proof to {}: {:?}",
                     path.to_string_lossy(),
                     e
                 );
@@ -476,8 +477,8 @@
             .iter()
             .map(|(key, (value, _n))| {
                 (
-                    format!("0x{}", hex::encode(key.as_bytes())),
-                    serde_json::Value::String(format!("0x{}", hex::encode(value))),
+                    format!("0x{}", hex::encode(key.as_bytes())),
+                    serde_json::Value::String(format!("0x{}", hex::encode(value))),
                 )
             })
             .collect(),
@@ -485,9 +486,9 @@
     .to_string()
 }
 
-pub(crate) fn rpc_err_handler(error: impl Debug) -> &'static str {
-    log::error!(target: LOG_TARGET, "rpc error: {:?}", error);
-    "rpc error."
+pub(crate) fn rpc_err_handler(error: impl Debug) -> &'static str {
+    log::error!(target: LOG_TARGET, "rpc error: {:?}", error);
+    "rpc error."
 }
 
 /// Build all extensions that we typically use.
diff --git a/src/try_runtime_core/parse.rs.html b/src/try_runtime_core/parse.rs.html
index d76abc272e3..b1672743868 100644
--- a/src/try_runtime_core/parse.rs.html
+++ b/src/try_runtime_core/parse.rs.html
@@ -1,4 +1,5 @@
-parse.rs - source
1
+parse.rs - source
+    
1
 2
 3
 4
@@ -54,14 +55,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -69,7 +70,7 @@
 use sp_version::StateVersion;
 
 pub(crate) fn hash(block_hash: &str) -> Result<String, String> {
-    let (block_hash, offset) = if let Some(block_hash) = block_hash.strip_prefix("0x") {
+    let (block_hash, offset) = if let Some(block_hash) = block_hash.strip_prefix("0x") {
         (block_hash, 2)
     } else {
         (block_hash, 0)
@@ -77,7 +78,7 @@
 
     if let Some(pos) = block_hash.chars().position(|c| !c.is_ascii_hexdigit()) {
         Err(format!(
-            "Expected block hash, found illegal hex character at position: {}",
+            "Expected block hash, found illegal hex character at position: {}",
             offset + pos,
         ))
     } else {
@@ -85,19 +86,19 @@
     }
 }
 
-pub(crate) fn url(s: &str) -> Result<String, &'static str> {
-    if s.starts_with("ws://") || s.starts_with("wss://") {
+pub(crate) fn url(s: &str) -> Result<String, &'static str> {
+    if s.starts_with("ws://") || s.starts_with("wss://") {
         // could use Url crate as well, but lets keep it simple for now.
         Ok(s.to_string())
     } else {
-        Err("not a valid WS(S) url: must start with 'ws://' or 'wss://'")
+        Err("not a valid WS(S) url: must start with 'ws://' or 'wss://'")
     }
 }
 
-pub(crate) fn state_version(s: &str) -> Result<StateVersion, &'static str> {
+pub(crate) fn state_version(s: &str) -> Result<StateVersion, &'static str> {
     s.parse::<u8>()
         .map_err(|_| ())
         .and_then(StateVersion::try_from)
-        .map_err(|_| "Invalid state version.")
+        .map_err(|_| "Invalid state version.")
 }
 
\ No newline at end of file diff --git a/src/try_runtime_core/shared_parameters.rs.html b/src/try_runtime_core/shared_parameters.rs.html index 3d918e55f2e..b611d788495 100644 --- a/src/try_runtime_core/shared_parameters.rs.html +++ b/src/try_runtime_core/shared_parameters.rs.html @@ -1,4 +1,5 @@ -shared_parameters.rs - source
1
+shared_parameters.rs - source
+    
1
 2
 3
 4
@@ -112,14 +113,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -142,21 +143,21 @@
     ///
     /// Must be a path to a wasm blob, compiled with `try-runtime` feature flag.
     ///
-    /// Or, `existing`, indicating that you don't want to overwrite the runtime. This will use
+    /// Or, `existing`, indicating that you don't want to overwrite the runtime. This will use
     /// whatever comes from the remote node, or the snapshot file. This will most likely not work
     /// against a remote node, as no (sane) blockchain should compile its onchain wasm with
     /// `try-runtime` feature.
-    #[arg(long, default_value = "existing")]
+    #[arg(long, default_value = "existing")]
     pub runtime: Runtime,
 
     /// Whether to disable enforcing the new runtime `spec_name` matches the existing `spec_name`.
-    #[clap(long, default_value = "false", default_missing_value = "true")]
+    #[clap(long, default_value = "false", default_missing_value = "true")]
     pub disable_spec_name_check: bool,
 
     /// Type of wasm execution used.
     #[arg(
-		long = "wasm-execution",
-		value_name = "METHOD",
+		long = "wasm-execution",
+		value_name = "METHOD",
 		value_enum,
 		ignore_case = true,
 		default_value_t = DEFAULT_WASM_EXECUTION_METHOD,
@@ -167,8 +168,8 @@
     ///
     /// Only has an effect when `wasm-execution` is set to `compiled`.
     #[arg(
-		long = "wasm-instantiation-strategy",
-		value_name = "STRATEGY",
+		long = "wasm-instantiation-strategy",
+		value_name = "STRATEGY",
 		default_value_t = DEFAULT_WASMTIME_INSTANTIATION_STRATEGY,
 		value_enum,
 	)]
@@ -211,7 +212,7 @@
 
     fn from_str(s: &str) -> Result<Self, Self::Err> {
         Ok(match s.to_lowercase().as_ref() {
-            "existing" => Runtime::Existing,
+            "existing" => Runtime::Existing,
             x => Runtime::Path(x.into()),
         })
     }
diff --git a/src/try_runtime_core/state.rs.html b/src/try_runtime_core/state.rs.html
index ea6105c3cdf..8a7c5384374 100644
--- a/src/try_runtime_core/state.rs.html
+++ b/src/try_runtime_core/state.rs.html
@@ -1,4 +1,5 @@
-state.rs - source
1
+state.rs - source
+    
1
 2
 3
 4
@@ -318,14 +319,14 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
 // SPDX-License-Identifier: Apache-2.0
 
-// Licensed under the Apache License, Version 2.0 (the "License");
+// 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,
+// 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.
@@ -383,7 +384,7 @@
 
     /// Storage entry key prefixes to scrape and inject into the test externalities. Pass as 0x
     /// prefixed hex strings. By default, all keys are scraped and included.
-    #[arg(long = "prefix", value_parser = parse::hash, num_args = 1..)]
+    #[arg(long = "prefix", value_parser = parse::hash, num_args = 1..)]
     pub hashed_prefixes: Vec<String>,
 
     /// Fetch the child-keys as well.
@@ -419,14 +420,14 @@
         let at = self.at::<Block>()?;
 
         // Get the block number requested by the user, or the current block number if they
-        // didn't specify one.
+        // didn't specify one.
         let rpc = ws_client(&self.uri).await?;
         let previous_hash = ChainApi::<(), Block::Hash, Block::Header, ()>::header(&rpc, at)
             .await
             .map_err(rpc_err_handler)
             .and_then(|maybe_header| {
                 maybe_header
-                    .ok_or("header_not_found")
+                    .ok_or("header_not_found")
                     .map(|h| *h.parent_hash())
             })?;
 
@@ -442,7 +443,7 @@
 pub enum State {
     /// Use a state snapshot as the source of runtime state.
     Snap {
-        #[clap(short = 'p', long = "path", alias = "snapshot-path")]
+        #[clap(short = 'p', long = "path", alias = "snapshot-path")]
         path: Option<PathBuf>,
     },
 
@@ -482,7 +483,7 @@
             State::Snap { path } => {
                 let path = path
                     .as_ref()
-                    .ok_or_else(|| "no snapshot path provided".to_string())?;
+                    .ok_or_else(|| "no snapshot path provided".to_string())?;
 
                 Builder::<Block>::new().mode(Mode::Offline(OfflineConfig {
                     state_snapshot: SnapshotConfig::new(path),
@@ -504,7 +505,7 @@
                     .map(|p_str| {
                         hex::decode(p_str).map_err(|e| {
                             format!(
-                                "Error decoding `hashed_prefixes` hex string entry '{:?}' to bytes: {:?}",
+                                "Error decoding `hashed_prefixes` hex string entry '{:?}' to bytes: {:?}",
                                 p_str, e
                             )
                         })
@@ -517,13 +518,13 @@
                     pallets: pallet.clone(),
                     child_trie: *child_tree,
                     hashed_keys: vec![
-                        // we always download the code, but we almost always won't use it, based on
+                        // we always download the code, but we almost always won't use it, based on
                         // `Runtime`.
                         well_known_keys::CODE.to_vec(),
                         // we will always download this key, since it helps detect if we should do
                         // runtime migration or not.
-                        [twox_128(b"System"), twox_128(b"LastRuntimeUpgrade")].concat(),
-                        [twox_128(b"System"), twox_128(b"Number")].concat(),
+                        [twox_128(b"System"), twox_128(b"LastRuntimeUpgrade")].concat(),
+                        [twox_128(b"System"), twox_128(b"Number")].concat(),
                     ],
                     hashed_prefixes,
                 }))
@@ -534,7 +535,7 @@
         let builder = if let Some(state_version) = shared.overwrite_state_version {
             log::warn!(
                 target: LOG_TARGET,
-                "overwriting state version to {:?}, you better know what you are doing.",
+                "overwriting state version to {:?}, you better know what you are doing.",
                 state_version
             );
             builder.overwrite_state_version(state_version)
@@ -545,7 +546,7 @@
         // then, we prepare to replace the code based on what the CLI wishes.
         let maybe_code_to_overwrite = match shared.runtime {
             Runtime::Path(ref path) => Some(std::fs::read(path).map_err(|e| {
-                format!("error while reading runtime file from {:?}: {:?}", path, e)
+                format!("error while reading runtime file from {:?}: {:?}", path, e)
             })?),
             Runtime::Existing => None,
         };
@@ -557,7 +558,7 @@
         if let Some(new_code) = maybe_code_to_overwrite {
             let original_code = ext
                 .execute_with(|| sp_io::storage::get(well_known_keys::CODE))
-                .expect("':CODE:' is always downloaded in try-runtime-cli; qed");
+                .expect("':CODE:' is always downloaded in try-runtime-cli; qed");
 
             // NOTE: see the impl notes of `read_runtime_version`, the ext is almost not used here,
             // only as a backup.
@@ -572,7 +573,7 @@
                 HexDisplay::from(BlakeTwo256::hash(&original_code).as_fixed_bytes()).to_string();
             log::info!(
                 target: LOG_TARGET,
-                "Original runtime [Name: {:?}] [Version: {:?}] [Code hash: 0x{}...{}]",
+                "Original runtime [Name: {:?}] [Version: {:?}] [Code hash: 0x{}...{}]",
                 old_version.spec_name,
                 old_version.spec_version,
                 &old_code_hash[0..4],
@@ -580,7 +581,7 @@
             );
             log::debug!(
                 target: LOG_TARGET,
-                "Original runtime full code hash: 0x{:?}",
+                "Original runtime full code hash: 0x{:?}",
                 old_code_hash,
             );
             let new_version = <RuntimeVersion as Decode>::decode(
@@ -593,7 +594,7 @@
                 HexDisplay::from(BlakeTwo256::hash(&new_code).as_fixed_bytes()).to_string();
             log::info!(
                 target: LOG_TARGET,
-                "New runtime      [Name: {:?}] [Version: {:?}] [Code hash: 0x{}...{}]",
+                "New runtime      [Name: {:?}] [Version: {:?}] [Code hash: 0x{}...{}]",
                 new_version.spec_name,
                 new_version.spec_version,
                 &new_code_hash[0..4],
@@ -601,13 +602,13 @@
             );
             log::debug!(
                 target: LOG_TARGET,
-                "New runtime code hash: 0x{:?}",
+                "New runtime code hash: 0x{:?}",
                 new_code_hash
             );
 
             if runtime_checks.name_matches && new_version.spec_name != old_version.spec_name {
                 return Err(
-                    "Spec names must match. Use `--disable-spec-name-check` to disable this check."
+                    "Spec names must match. Use `--disable-spec-name-check` to disable this check."
                         .into(),
                 );
             }
@@ -615,14 +616,14 @@
             if runtime_checks.version_increases
                 && new_version.spec_version <= old_version.spec_version
             {
-                return Err("New runtime spec version must be greater than the on-chain runtime spec version. Use `--disable-spec-version-check` to disable this check.".into());
+                return Err("New runtime spec version must be greater than the on-chain runtime spec version. Use `--disable-spec-version-check` to disable this check.".into());
             }
         }
 
         if runtime_checks.try_runtime_feature_enabled
             && !ensure_try_runtime::<Block, HostFns>(executor, &mut ext)
         {
-            return Err("Given runtime is not compiled with the try-runtime feature.".into());
+            return Err("Given runtime is not compiled with the try-runtime feature.".into());
         }
 
         Ok(ext)
diff --git a/static.files/main-305769736d49e732.js b/static.files/main-305769736d49e732.js
new file mode 100644
index 00000000000..b8b91afa034
--- /dev/null
+++ b/static.files/main-305769736d49e732.js
@@ -0,0 +1,11 @@
+"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerText=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ +the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ + restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ + enum, trait, type, macro, \ + and const.","Search functions by type signature (e.g., vec -> usize or \ + -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ + your request: \"string\"","Look for functions that accept or return \ + slices and \ + arrays by writing \ + square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-sidebar.offsetLeft-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px")},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/static.files/main-9dd44ab47b99a0fb.js b/static.files/main-9dd44ab47b99a0fb.js deleted file mode 100644 index cfb9a38fca4..00000000000 --- a/static.files/main-9dd44ab47b99a0fb.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function elemIsInParent(elem,parent){while(elem&&elem!==document.body){if(elem===parent){return true}elem=elem.parentElement}return false}function blurHandler(event,parentElem,hideCallback){if(!elemIsInParent(document.activeElement,parentElem)&&!elemIsInParent(event.relatedTarget,parentElem)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.body,"crate")){mobileTitle.innerText=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.body,"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(link.href===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";if(window.rootPath!=="./"&&crate===window.currentCrate){link.className="current"}link.textContent=crate;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,e)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ -the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ - restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ - enum, trait, type, macro, \ - and const.","Search functions by type signature (e.g., vec -> usize or \ - -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for functions that accept or return \ - slices and \ - arrays by writing \ - square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/static.files/noscript-5d8b3c7633ad77ba.css b/static.files/noscript-5d8b3c7633ad77ba.css deleted file mode 100644 index 8c63ef0657f..00000000000 --- a/static.files/noscript-5d8b3c7633ad77ba.css +++ /dev/null @@ -1 +0,0 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path{display:none;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);}@media (prefers-color-scheme:dark){:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);}} \ No newline at end of file diff --git a/static.files/noscript-feafe1bb7466e4bd.css b/static.files/noscript-feafe1bb7466e4bd.css new file mode 100644 index 00000000000..7bbe07f1c93 --- /dev/null +++ b/static.files/noscript-feafe1bb7466e4bd.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/static.files/rustdoc-9ee3a5e31a2afa3e.css b/static.files/rustdoc-9ee3a5e31a2afa3e.css deleted file mode 100644 index 8749d0eb186..00000000000 --- a/static.files/rustdoc-9ee3a5e31a2afa3e.css +++ /dev/null @@ -1,10 +0,0 @@ - :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.small-section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.sub-logo-container,.logo-container{line-height:0;display:block;}.sub-logo-container{margin-right:32px;}.sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 200px;overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;}.rustdoc.src .sidebar{flex-basis:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;z-index:1;}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}#src-sidebar-toggle>button:hover,#src-sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.src .sidebar>*:not(#src-sidebar-toggle){visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:300px;}.src-sidebar-expanded .src .sidebar>*:not(#src-sidebar-toggle){visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.5rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.5rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;margin-top:calc((-16px + 0.57rem ) / 2 );}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.method .where,.fn .where,.where.fmt-newline{display:block;white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.small-section-header{display:block;position:relative;}.small-section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block a.current{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ - ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:2;margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ - \ - ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{min-height:36px;display:flex;padding:3px;margin-bottom:5px;align-items:center;vertical-align:text-bottom;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji{font-size:1.25rem;margin-right:0.3rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar-toggle{position:sticky;top:0;left:0;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:stretch;align-items:stretch;z-index:10;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:6px;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}#src-sidebar-toggle>button{font-size:inherit;font-weight:bold;background:none;color:inherit;text-align:center;border:none;outline:none;flex:1 1;-webkit-appearance:none;opacity:1;}#settings-menu,#help-button{margin-left:4px;display:flex;}#settings-menu>a,#help-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus{border-color:var(--settings-button-border-focus);}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;}.mobile-topbar h2 a{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;color:var(--main-color);}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#src-sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;border:1px solid;border-left:0;}.src-sidebar-expanded #src-sidebar-toggle{left:unset;top:unset;width:unset;border-top-right-radius:unset;border-bottom-right-radius:unset;position:sticky;border:0;border-bottom:1px solid;}#copy-path,#help-button{display:none;}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{max-width:100vw;width:100vw;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}.sub-logo-container>img{height:35px;width:35px;margin-bottom:var(--nav-sub-mobile-padding);}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"]{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a,:root[data-theme="ayu"] #source-sidebar>.title{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img{filter:invert(100);} \ No newline at end of file diff --git a/static.files/rustdoc-ac92e1bbe349e143.css b/static.files/rustdoc-ac92e1bbe349e143.css new file mode 100644 index 00000000000..27e3d9d5ac2 --- /dev/null +++ b/static.files/rustdoc-ac92e1bbe349e143.css @@ -0,0 +1,18 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.sub-logo-container,.logo-container{line-height:0;display:block;}.sub-logo-container{margin-right:32px;}.sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .rustdoc.src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}#src-sidebar-toggle>button:hover,#src-sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.src .sidebar>*:not(#src-sidebar-toggle){visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*:not(#src-sidebar-toggle){visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;margin-right:0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.5rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.5rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;margin-top:calc((-16px + 0.57rem ) / 2 );}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ + ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ + \ + ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar-toggle{position:sticky;top:0;left:0;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:stretch;align-items:stretch;z-index:10;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:6px;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}#src-sidebar-toggle>button{font-size:inherit;font-weight:bold;background:none;color:inherit;text-align:center;border:none;outline:none;flex:1 1;-webkit-appearance:none;opacity:1;}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;}.hide-sidebar #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.hide-sidebar #sidebar-button{position:static;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;}.mobile-topbar h2 a{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;color:var(--main-color);}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#src-sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;border:1px solid;border-left:0;}.src-sidebar-expanded #src-sidebar-toggle{left:unset;top:unset;width:unset;border-top-right-radius:unset;border-bottom-right-radius:unset;position:sticky;border:0;border-bottom:1px solid;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{max-width:100vw;width:100vw;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}.sub-logo-container>img{height:35px;width:35px;margin-bottom:var(--nav-sub-mobile-padding);}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"]{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a,:root[data-theme="ayu"] #source-sidebar>.title{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/static.files/search-2b6ce74ff89ae146.js b/static.files/search-2b6ce74ff89ae146.js new file mode 100644 index 00000000000..0545970307a --- /dev/null +++ b/static.files/search-2b6ce74ff89ae146.js @@ -0,0 +1,5 @@ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let functionTypeFingerprint;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-]".indexOf(c)!==-1}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",normalizedPathLast:"never",generics:[],bindings:new Map(),typeFilter:"primitive",bindingName,}}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){bindings.set(gen.bindingName.name,[gen,...gen.bindingName.generics]);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(c===" "){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb);if(passesUnification){return true}}return false});if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false});return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens){if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens)}return false}function checkIfInList(list,elem,whereClause,mgens){for(const entry of list){if(checkType(entry,elem,whereClause,mgens)){return true}}return false}function checkType(row,elem,whereClause,mgens){if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens)}}return unifyFunctionTypes([row],[elem],whereClause,mgens)}function checkPath(contains,ty,maxEditDistance){if(contains.length===0){return 0}let ret_dist=maxEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxEditDistance){continue pathiter}dist_total+=dist}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row,maxEditDistance);if(path_dist>maxEditDistance){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist+path_dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){let queryLen=0;for(const elem of parsedQuery.elems){queryLen+=elem.name.length}for(const elem of parsedQuery.returned){queryLen+=elem.name.length}const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){if(typeNameIdMap.has(elem.normalizedPathLast)&&(isAssocType||!typeNameIdMap.get(elem.normalizedPathLast).assocOnly)){elem.id=typeNameIdMap.get(elem.normalizedPathLast).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=editDistance(name,elem.normalizedPathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}))}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ +${item.alias} - see \ +
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ +${item.displayPath}${name}\ +
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(forced){const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.map(type=>buildItemSearchType(type,lowercasePaths))}function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=[];bindings=new Map()}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths);if(type.length>BINDINGS_DATA){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=new Map()}}if(pathIndex<0){return{id:pathIndex,ty:TY_GENERIC,path:null,generics,bindings,}}if(pathIndex===0){return{id:null,ty:null,path:null,generics,bindings,}}const item=lowercasePaths[pathIndex-1];return{id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,generics,bindings,}}function buildFunctionSearchType(functionSearchType,lowercasePaths){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:[],bindings:new Map(),};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}function buildIndex(rawSearchIndex){searchIndex=[];typeNameIdMap=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;typeNameIdOfArray=buildTypeMapIndex("array");typeNameIdOfSlice=buildTypeMapIndex("slice");typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const crateRow={crate:crate,ty:3,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),deprecated:null,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionSearchTypes=crateCorpus.f;const deprecatedItems=new Set(crateCorpus.c);const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type,id:id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length}}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/static.files/search-8fbf244ebcf71464.js b/static.files/search-8fbf244ebcf71464.js deleted file mode 100644 index 168023b4b81..00000000000 --- a/static.files/search-8fbf244ebcf71464.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias","generic",];const longItemTypes=["module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","primitive type","assoc type","constant","assoc const","union","foreign type","keyword","existential type","attribute macro","derive macro","trait alias",];const TY_PRIMITIVE=itemTypes.indexOf("primitive");const TY_KEYWORD=itemTypes.indexOf("keyword");const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function hasOwnPropertyRustdoc(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;function buildTypeMapIndex(name){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){return typeNameIdMap.get(name)}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,id);return id}}function isWhitespace(c){return" \t\n\r".indexOf(c)!==-1}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return",>-]".indexOf(c)!==-1}function isStopCharacter(c){return isEndCharacter(c)}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","}function isPathSeparator(c){return c===":"||isWhitespace(c)}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(!isWhitespace(c)){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",generics:[],typeFilter:"primitive",}}if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(path.includes("::::")){throw["Unexpected ","::::"]}else if(path.includes(" ::")){throw["Unexpected "," ::"]}else if(path.includes(":: ")){throw["Unexpected ",":: "]}const pathSegments=path.split(/::|\s+/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast:pathSegments[pathSegments.length-1],generics:generics,typeFilter,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",","," or ",endChar,...extra,", found ",c,]}throw["Expected ",",",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(isWhitespace(c)){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&hasOwnPropertyRustdoc(rawSearchIndex,elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}}userQuery=userQuery.trim();const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,searchWords,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});let nameSplit=null;if(parsedQuery.elems.length===1){const hasPath=typeof parsedQuery.elems[0].path==="undefined";nameSplit=hasPath?null:parsedQuery.elems[0].path}for(const result of result_list){if(result.dontValidate){continue}const name=result.item.name.toLowerCase(),path=result.item.path.toLowerCase(),parent=result.item.parent;if(!isType&&!validateResult(name,path,nameSplit,parent)){result.id=-1}}return transformResults(result_list)}function checkGenerics(fnType,queryElem,whereClause,mgensInout){return unifyFunctionTypes(fnType.generics,queryElem.generics,whereClause,mgensInout,mgens=>{if(mgensInout){for(const[fid,qid]of mgens.entries()){mgensInout.set(fid,qid)}}return true})}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){let mgens=new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;let fl=fnTypesIn.length;let fnTypes=fnTypesIn.slice();const backtracking=[];let i=0;let j=0;const backtrack=()=>{while(backtracking.length!==0){const{fnTypesScratch,mgensScratch,queryElemsOffset,fnTypesOffset,unbox,}=backtracking.pop();mgens=new Map(mgensScratch);const fnType=fnTypesScratch[fnTypesOffset];const queryElem=queryElems[queryElemsOffset];if(unbox){if(fnType.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}mgens.set(fnType.id,0)}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;fnTypes=fnTypesScratch.toSpliced(fnTypesOffset,1,...generics);fl=fnTypes.length;i=queryElemsOffset-1}else{if(fnType.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}mgens.set(fnType.id,queryElem.id)}fnTypes=fnTypesScratch.slice();fl=fnTypes.length;const tmp=fnTypes[queryElemsOffset];fnTypes[queryElemsOffset]=fnTypes[fnTypesOffset];fnTypes[fnTypesOffset]=tmp;i=queryElemsOffset}return true}return false};for(i=0;i!==ql;++i){const queryElem=queryElems[i];const matchCandidates=[];let fnTypesScratch=null;let mgensScratch=null;for(j=i;j!==fl;++j){const fnType=fnTypes[j];if(unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){if(!fnTypesScratch){fnTypesScratch=fnTypes.slice()}unifyFunctionTypes(fnType.generics,queryElem.generics,whereClause,mgens,mgensScratch=>{matchCandidates.push({fnTypesScratch,mgensScratch,queryElemsOffset:i,fnTypesOffset:j,unbox:false,});return false})}if(unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){if(!fnTypesScratch){fnTypesScratch=fnTypes.slice()}if(!mgensScratch){mgensScratch=new Map(mgens)}backtracking.push({fnTypesScratch,mgensScratch,queryElemsOffset:i,fnTypesOffset:j,unbox:true,})}}if(matchCandidates.length===0){if(backtrack()){continue}else{return false}}const{fnTypesOffset:candidate,mgensScratch:mgensNew}=matchCandidates.pop();if(fnTypes[candidate].id<0&&queryElems[i].id<0){mgens.set(fnTypes[candidate].id,queryElems[i].id)}for(const[fid,qid]of mgensNew){mgens.set(fid,qid)}const tmp=fnTypes[candidate];fnTypes[candidate]=fnTypes[i];fnTypes[i]=tmp;for(const otherCandidate of matchCandidates){backtracking.push(otherCandidate)}while(i===(ql-1)&&solutionCb&&!solutionCb(mgens)){if(!backtrack()){return false}}}return true}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgens.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(fnType.id!==queryElem.id){return false}if(fnType.generics.length===0&&queryElem.generics.length!==0){return false}const queryElemPathLength=queryElem.pathWithoutLast.length;if(queryElemPathLength>0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i=0){if(!whereClause){return false}if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause)}else if(fnType.generics&&fnType.generics.length>0){return checkIfInList(fnType.generics,queryElem,whereClause)}return false}function checkIfInList(list,elem,whereClause){for(const entry of list){if(checkType(entry,elem,whereClause)){return true}}return false}function checkType(row,elem,whereClause){if(row.id===null){return row.generics.length>0?checkIfInList(row.generics,elem,whereClause):false}if(row.id<0&&elem.id>=0){const gid=(-row.id)-1;return checkIfInList(whereClause[gid],elem,whereClause)}if(row.id<0&&elem.id<0){return true}const matchesExact=row.id===elem.id;const matchesArrayOrSlice=elem.id===typeNameIdOfArrayOrSlice&&(row.id===typeNameIdOfSlice||row.id===typeNameIdOfArray);if((matchesExact||matchesArrayOrSlice)&&typePassesFilter(elem.typeFilter,row.ty)){if(elem.generics.length>0){return checkGenerics(row,elem,whereClause,new Map())}return true}return checkIfInList(row.generics,elem,whereClause)}function checkPath(contains,ty,maxEditDistance){if(contains.length===0){return 0}let ret_dist=maxEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;if(clength>length){return maxEditDistance+1}for(let i=0;ilength){break}let dist_total=0;let aborted=false;for(let x=0;xmaxEditDistance){aborted=true;break}dist_total+=dist}if(!aborted){ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}}return ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){const inBounds=dist<=maxEditDistance||index!==-1;if(dist===0||(!parsedQuery.literalSearch&&inBounds)){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let index=-1,path_dist=0;const fullId=row.id;const searchWord=searchWords[pos];const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);if(in_args){addIntoResults(results_in_args,fullId,pos,-1,0,0,maxEditDistance)}const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(returned){addIntoResults(results_returned,fullId,pos,-1,0,0,maxEditDistance)}if(!typePassesFilter(elem.typeFilter,row.ty)){return}const row_index=row.normalizedName.indexOf(elem.pathLast);const word_index=searchWord.indexOf(elem.pathLast);if(row_index===-1){index=word_index}else if(word_index===-1){index=row_index}else if(word_index1){path_dist=checkPath(elem.pathWithoutLast,row,maxEditDistance);if(path_dist>maxEditDistance){return}}if(parsedQuery.literalSearch){if(searchWord===elem.name){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(searchWord,elem.pathLast,maxEditDistance);if(index===-1&&dist+path_dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}addIntoResults(results,row.id,pos,0,0,0,Number.MAX_VALUE)}function innerRunQuery(){let elem,i,nSearchWords,in_returned,row;let queryLen=0;for(const elem of parsedQuery.elems){queryLen+=elem.name.length}for(const elem of parsedQuery.returned){queryLen+=elem.name.length}const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem){if(typeNameIdMap.has(elem.pathLast)){elem.id=typeNameIdMap.get(elem.pathLast)}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,id]of typeNameIdMap){const dist=editDistance(name,elem.pathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}}for(const elem of parsedQuery.elems){convertNameToId(elem)}for(const elem of parsedQuery.returned){convertNameToId(elem)}if(parsedQuery.foundElems===1){if(parsedQuery.elems.length===1){elem=parsedQuery.elems[0];for(i=0,nSearchWords=searchWords.length;i0){for(i=0,nSearchWords=searchWords.length;i-1||path.indexOf(key)>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(key)>-1)||editDistance(name,key,maxEditDistance)<=maxEditDistance)){return false}}return true}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;if(type==="mod"){displayPath=path+"::";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=ROOT_PATH+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor=type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}if(item.implDisambiguator!==null){anchor=item.implDisambiguator+"/"+anchor}href=ROOT_PATH+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html#"+anchor}else{displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){let extraClass="";if(display===true){extraClass=" active"}const output=document.createElement("div");let length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";length+=1;const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ -${item.alias} - see \ -
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ -${item.displayPath}${name}\ -
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";const crates_list=Object.keys(rawSearchIndex);if(crates_list.length>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(e,forced){if(e){e.preventDefault()}const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,searchWords,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.map(type=>buildItemSearchType(type,lowercasePaths))}function buildItemSearchType(type,lowercasePaths){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;let pathIndex,generics;if(typeof type==="number"){pathIndex=type;generics=[]}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths)}if(pathIndex<0){return{id:pathIndex,ty:TY_GENERIC,path:null,generics,}}if(pathIndex===0){return{id:null,ty:null,path:null,generics,}}const item=lowercasePaths[pathIndex-1];return{id:buildTypeMapIndex(item.name),ty:item.ty,path:item.path,generics,}}function buildFunctionSearchType(functionSearchType,lowercasePaths){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:buildFunctionSearchType(itemFunctionSearchTypes[i],lowercasePaths),id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=crateSize}return searchWords}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(undefined,true)}const searchWords=buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}return searchWords}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch({})}})() \ No newline at end of file diff --git a/static.files/settings-4313503d2e1961c2.js b/static.files/settings-4313503d2e1961c2.js new file mode 100644 index 00000000000..ab425fe49d5 --- /dev/null +++ b/static.files/settings-4313503d2e1961c2.js @@ -0,0 +1,17 @@ +"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function changeSetting(settingName,value){if(settingName==="theme"){const useSystem=value==="system preference"?"true":"false";updateLocalStorage("use-system-theme",useSystem)}updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":updateTheme();updateLightAndDark();break;case"line-numbers":if(value===true){window.rustdoc_add_line_numbers_to_examples()}else{window.rustdoc_remove_line_numbers_from_examples()}break;case"hide-sidebar":if(value===true){addClass(document.documentElement,"hide-sidebar")}else{removeClass(document.documentElement,"hide-sidebar")}break}}function showLightAndDark(){removeClass(document.getElementById("preferred-light-theme"),"hidden");removeClass(document.getElementById("preferred-dark-theme"),"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme"),"hidden");addClass(document.getElementById("preferred-dark-theme"),"hidden")}function updateLightAndDark(){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||(useSystem===null&&getSettingValue("theme")===null)){showLightAndDark()}else{hideLightAndDark()}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.querySelectorAll("input[type=\"checkbox\"]"),toggle=>{const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=()=>{changeSetting(toggle.id,toggle.checked)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;let settingValue=getSettingValue(settingId);if(settingId==="theme"){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||settingValue===null){settingValue=useSystem==="false"?"light":"system preference"}}if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",ev=>{changeSetting(ev.target.name,ev.target.value)})})}function buildSettingsPageSections(settings){let output="";for(const setting of settings){const js_data_name=setting["js_name"];const setting_name=setting["name"];if(setting["options"]!==undefined){output+=`\ +
+
${setting_name}
+
`;onEach(setting["options"],option=>{const checked=option===setting["default"]?" checked":"";const full=`${js_data_name}-${option.replace(/ /g,"-")}`;output+=`\ + `});output+=`\ +
+
`}else{const checked=setting["default"]===true?" checked":"";output+=`\ +
\ + \ +
`}}return output}function buildSettingsPage(){const theme_names=getVar("themes").split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Hide persistent navigation bar","js_name":"hide-sidebar","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
${buildSettingsPageSections(settings)}
`;const el=document.createElement(elementKind);el.id="settings";if(!isSettingsPage){el.className="popover"}el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{el.setAttribute("tabindex","-1");getSettingsButton().appendChild(el)}return el}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display="";onEachLazy(settingsMenu.querySelectorAll("input[type='checkbox']"),el=>{const val=getSettingValue(el.id);const checked=val==="true";if(checked!==el.checked&&val!==null){el.checked=checked}})}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=event=>{event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=event=>{if(settingsMenu.contains(event.target)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/static.files/settings-74424d7eec62a23e.js b/static.files/settings-74424d7eec62a23e.js deleted file mode 100644 index 3014f75c502..00000000000 --- a/static.files/settings-74424d7eec62a23e.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function changeSetting(settingName,value){if(settingName==="theme"){const useSystem=value==="system preference"?"true":"false";updateLocalStorage("use-system-theme",useSystem)}updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":updateTheme();updateLightAndDark();break;case"line-numbers":if(value===true){window.rustdoc_add_line_numbers_to_examples()}else{window.rustdoc_remove_line_numbers_from_examples()}break}}function showLightAndDark(){removeClass(document.getElementById("preferred-light-theme"),"hidden");removeClass(document.getElementById("preferred-dark-theme"),"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme"),"hidden");addClass(document.getElementById("preferred-dark-theme"),"hidden")}function updateLightAndDark(){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||(useSystem===null&&getSettingValue("theme")===null)){showLightAndDark()}else{hideLightAndDark()}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.querySelectorAll("input[type=\"checkbox\"]"),toggle=>{const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=()=>{changeSetting(toggle.id,toggle.checked)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;let settingValue=getSettingValue(settingId);if(settingId==="theme"){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||settingValue===null){settingValue=useSystem==="false"?"light":"system preference"}}if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",ev=>{changeSetting(ev.target.name,ev.target.value)})})}function buildSettingsPageSections(settings){let output="";for(const setting of settings){const js_data_name=setting["js_name"];const setting_name=setting["name"];if(setting["options"]!==undefined){output+=`\ -
-
${setting_name}
-
`;onEach(setting["options"],option=>{const checked=option===setting["default"]?" checked":"";const full=`${js_data_name}-${option.replace(/ /g,"-")}`;output+=`\ - `});output+=`\ -
-
`}else{const checked=setting["default"]===true?" checked":"";output+=`\ -
\ - \ -
`}}return output}function buildSettingsPage(){const theme_names=getVar("themes").split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
${buildSettingsPageSections(settings)}
`;const el=document.createElement(elementKind);el.id="settings";if(!isSettingsPage){el.className="popover"}el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{el.setAttribute("tabindex","-1");getSettingsButton().appendChild(el)}return el}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display=""}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=event=>{event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=event=>{if(elemIsInParent(event.target,settingsMenu)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/static.files/src-script-3280b574d94e47b4.js b/static.files/src-script-3280b574d94e47b4.js deleted file mode 100644 index 9ea88921e22..00000000000 --- a/static.files/src-script-3280b574d94e47b4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(function(){const rootPath=getVar("root-path");const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;const RUSTDOC_MOBILE_BREAKPOINT=700;function closeSidebarIfMobile(){if(window.innerWidth"){addClass(document.documentElement,"src-sidebar-expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{removeClass(document.documentElement,"src-sidebar-expanded");child.innerText=">";updateLocalStorage("source-sidebar-show","false")}}function createSidebarToggle(){const sidebarToggle=document.createElement("div");sidebarToggle.id="src-sidebar-toggle";const inner=document.createElement("button");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}inner.onclick=toggleSidebar;sidebarToggle.appendChild(inner);return sidebarToggle}function createSrcSidebar(){const container=document.querySelector("nav.sidebar");const sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);const sidebar=document.createElement("div");sidebar.id="src-sidebar";let hasFoundFile=false;const title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(srcIndex).forEach(key=>{srcIndex[key][NAME_OFFSET]=key;hasFoundFile=createDirEntry(srcIndex[key],sidebar,"",hasFoundFile)});container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}const lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSrcLines(match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to{onEachLazy(e.getElementsByTagName("a"),i_e=>{removeClass(i_e,"line-highlighted")})});for(let i=from;i<=to;++i){elem=document.getElementById(i);if(!elem){break}addClass(elem,"line-highlighted")}}const handleSrcHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSrcLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)||ev.ctrlKey||ev.altKey||ev.metaKey){return}ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_line_id){const tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",()=>{const match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSrcLines(match)}});onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSrcHighlight)});highlightSrcLines();window.createSrcSidebar=createSrcSidebar})() \ No newline at end of file diff --git a/static.files/src-script-39ed315d46fb705f.js b/static.files/src-script-39ed315d46fb705f.js new file mode 100644 index 00000000000..ef74f361ea6 --- /dev/null +++ b/static.files/src-script-39ed315d46fb705f.js @@ -0,0 +1 @@ +"use strict";(function(){const rootPath=getVar("root-path");const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;const RUSTDOC_MOBILE_BREAKPOINT=700;function closeSidebarIfMobile(){if(window.innerWidth{removeClass(document.documentElement,"src-sidebar-expanded");getToggleLabel().innerText=">";updateLocalStorage("source-sidebar-show","false")};window.rustdocShowSourceSidebar=()=>{addClass(document.documentElement,"src-sidebar-expanded");getToggleLabel().innerText="<";updateLocalStorage("source-sidebar-show","true")};function toggleSidebar(){const child=this.parentNode.children[0];if(child.innerText===">"){window.rustdocShowSourceSidebar()}else{window.rustdocCloseSourceSidebar()}}function createSidebarToggle(){const sidebarToggle=document.createElement("div");sidebarToggle.id="src-sidebar-toggle";const inner=document.createElement("button");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}inner.onclick=toggleSidebar;sidebarToggle.appendChild(inner);return sidebarToggle}function createSrcSidebar(){const container=document.querySelector("nav.sidebar");const sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);const sidebar=document.createElement("div");sidebar.id="src-sidebar";let hasFoundFile=false;const title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);for(const[key,source]of srcIndex){source[NAME_OFFSET]=key;hasFoundFile=createDirEntry(source,sidebar,"",hasFoundFile)}container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}function highlightSrcLines(){const match=window.location.hash.match(/^#?(\d+)(?:-(\d+))?$/);if(!match){return}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to{onEachLazy(e.getElementsByTagName("a"),i_e=>{removeClass(i_e,"line-highlighted")})});for(let i=from;i<=to;++i){elem=document.getElementById(i);if(!elem){break}addClass(elem,"line-highlighted")}}const handleSrcHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSrcLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)||ev.ctrlKey||ev.altKey||ev.metaKey){return}ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_line_id){const tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",highlightSrcLines);onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSrcHighlight)});highlightSrcLines();window.createSrcSidebar=createSrcSidebar})() \ No newline at end of file diff --git a/static.files/storage-f2adc0d6ca4d09fb.js b/static.files/storage-f2adc0d6ca4d09fb.js new file mode 100644 index 00000000000..17233608a78 --- /dev/null +++ b/static.files/storage-f2adc0d6ca4d09fb.js @@ -0,0 +1 @@ +"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func){for(const elem of arr){if(func(elem)){return true}}return false}function onEachLazy(lazyArray,func){return onEach(Array.prototype.slice.call(lazyArray),func)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+newThemeName+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded")}if(getSettingValue("hide-sidebar")==="true"){addClass(document.documentElement,"hide-sidebar")}function updateSidebarWidth(){const desktopSidebarWidth=getSettingValue("desktop-sidebar-width");if(desktopSidebarWidth&&desktopSidebarWidth!=="null"){document.documentElement.style.setProperty("--desktop-sidebar-width",desktopSidebarWidth+"px")}const srcSidebarWidth=getSettingValue("src-sidebar-width");if(srcSidebarWidth&&srcSidebarWidth!=="null"){document.documentElement.style.setProperty("--src-sidebar-width",srcSidebarWidth+"px")}}updateSidebarWidth();window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0);setTimeout(updateSidebarWidth,0)}}) \ No newline at end of file diff --git a/static.files/storage-fec3eaa3851e447d.js b/static.files/storage-fec3eaa3851e447d.js deleted file mode 100644 index a687118f306..00000000000 --- a/static.files/storage-fec3eaa3851e447d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";const builtinThemes=["light","dark","ayu"];const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func,reversed){if(arr&&arr.length>0){if(reversed){for(let i=arr.length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(const elem of arr){if(func(elem)){return true}}}}return false}function onEachLazy(lazyArray,func,reversed){return onEach(Array.prototype.slice.call(lazyArray),func,reversed)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+newThemeName+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"src-sidebar-expanded")}window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0)}}) \ No newline at end of file diff --git a/trait.impl/clap_builder/derive/trait.Args.js b/trait.impl/clap_builder/derive/trait.Args.js index d4c36e6da78..8d993e1df15 100644 --- a/trait.impl/clap_builder/derive/trait.Args.js +++ b/trait.impl/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 Command"],["impl Args for SharedParams"],["impl Args for Command"],["impl Args for Command"],["impl Args for Command"],["impl Args for TryRuntime"],["impl Args for LiveState"]] +"try_runtime_core":[["impl Args for TryRuntime"],["impl Args for SharedParams"],["impl Args for Command"],["impl Args for LiveState"],["impl Args for Command"],["impl Args for Command"],["impl Args for Command"],["impl Args for Command"],["impl Args for Command"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/clap_builder/derive/trait.CommandFactory.js b/trait.impl/clap_builder/derive/trait.CommandFactory.js index fbb26515dda..2bcddd93fc4 100644 --- a/trait.impl/clap_builder/derive/trait.CommandFactory.js +++ b/trait.impl/clap_builder/derive/trait.CommandFactory.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl CommandFactory for Chain"],["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"],["impl CommandFactory for Command"]] +"try_runtime_core":[["impl CommandFactory for Command"],["impl CommandFactory for Chain"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for SharedParams"],["impl CommandFactory for Command"],["impl CommandFactory for Command"],["impl CommandFactory for TryRuntime"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/clap_builder/derive/trait.FromArgMatches.js b/trait.impl/clap_builder/derive/trait.FromArgMatches.js index 3ae16f542f7..d437dfc2b0a 100644 --- a/trait.impl/clap_builder/derive/trait.FromArgMatches.js +++ b/trait.impl/clap_builder/derive/trait.FromArgMatches.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl FromArgMatches for Action"],["impl FromArgMatches for Chain"],["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for State"],["impl FromArgMatches for SharedParams"],["impl FromArgMatches for Command"],["impl FromArgMatches for TryRuntime"],["impl FromArgMatches for Command"],["impl FromArgMatches for LiveState"]] +"try_runtime_core":[["impl FromArgMatches for SharedParams"],["impl FromArgMatches for State"],["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for LiveState"],["impl FromArgMatches for Command"],["impl FromArgMatches for Command"],["impl FromArgMatches for TryRuntime"],["impl FromArgMatches for Action"],["impl FromArgMatches for Command"],["impl FromArgMatches for Chain"],["impl FromArgMatches for Command"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/clap_builder/derive/trait.Parser.js b/trait.impl/clap_builder/derive/trait.Parser.js index dc1ecbe7087..d4088cc0905 100644 --- a/trait.impl/clap_builder/derive/trait.Parser.js +++ b/trait.impl/clap_builder/derive/trait.Parser.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["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 Command"],["impl Parser for Chain"],["impl Parser for SharedParams"]] +"try_runtime_core":[["impl Parser for Command"],["impl Parser for Command"],["impl Parser for Command"],["impl Parser for Command"],["impl Parser for Chain"],["impl Parser for TryRuntime"],["impl Parser for SharedParams"],["impl Parser for Command"],["impl Parser for Command"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/clap_builder/derive/trait.Subcommand.js b/trait.impl/clap_builder/derive/trait.Subcommand.js index b1e0f7fbc77..15f4d4bc6f6 100644 --- a/trait.impl/clap_builder/derive/trait.Subcommand.js +++ b/trait.impl/clap_builder/derive/trait.Subcommand.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Subcommand for State"],["impl Subcommand for Chain"],["impl Subcommand for Action"]] +"try_runtime_core":[["impl Subcommand for Chain"],["impl Subcommand for Action"],["impl Subcommand for State"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js index f0a9738962c..bf8e892ba37 100644 --- a/trait.impl/core/clone/trait.Clone.js +++ b/trait.impl/core/clone/trait.Clone.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Clone for Command"],["impl Clone for Command"],["impl Clone for SharedParams"],["impl Clone for State"],["impl Clone for Runtime"],["impl Clone for Command"],["impl Clone for LiveState"],["impl Clone for TryRuntime"],["impl Clone for ChainIter"],["impl Clone for Command"],["impl Clone for Chain"],["impl Clone for Action"],["impl Clone for Command"],["impl Clone for Command"]] +"try_runtime_core":[["impl Clone for Command"],["impl Clone for Command"],["impl Clone for Command"],["impl Clone for State"],["impl Clone for Command"],["impl Clone for TryRuntime"],["impl Clone for ChainIter"],["impl Clone for LiveState"],["impl Clone for SharedParams"],["impl Clone for Command"],["impl Clone for Command"],["impl Clone for Runtime"],["impl Clone for Action"],["impl Clone for Chain"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/convert/trait.TryFrom.js b/trait.impl/core/convert/trait.TryFrom.js index d79ed7c063d..a7b5cb3b596 100644 --- a/trait.impl/core/convert/trait.TryFrom.js +++ b/trait.impl/core/convert/trait.TryFrom.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl TryFrom<Vec<u8>> for RefTimeInfo"]] +"try_runtime_core":[["impl TryFrom<Vec<u8>> for RefTimeInfo"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js index 48fee0d8f7a..106213e2286 100644 --- a/trait.impl/core/fmt/trait.Debug.js +++ b/trait.impl/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Debug for Command"],["impl Debug for State"],["impl Debug for Command"],["impl Debug for ChainIter"],["impl Debug for Chain"],["impl Debug for LiveState"],["impl Debug for TryRuntime"],["impl Debug for Command"],["impl Debug for Command"],["impl Debug for RuntimeChecks"],["impl Debug for Action"],["impl Debug for Runtime"],["impl Debug for Command"],["impl Debug for Command"],["impl Debug for SharedParams"]] +"try_runtime_core":[["impl Debug for ChainIter"],["impl Debug for LiveState"],["impl Debug for TryRuntime"],["impl Debug for Command"],["impl Debug for Action"],["impl Debug for Command"],["impl Debug for Command"],["impl Debug for Command"],["impl Debug for Runtime"],["impl Debug for SharedParams"],["impl Debug for Chain"],["impl Debug for State"],["impl Debug for Command"],["impl Debug for RuntimeChecks"],["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/trait.impl/core/fmt/trait.Display.js b/trait.impl/core/fmt/trait.Display.js index e70caf0ea0e..a20758024c6 100644 --- a/trait.impl/core/fmt/trait.Display.js +++ b/trait.impl/core/fmt/trait.Display.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Display for Chain"]] +"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/trait.impl/core/iter/traits/double_ended/trait.DoubleEndedIterator.js b/trait.impl/core/iter/traits/double_ended/trait.DoubleEndedIterator.js index 349c64c9742..e3f125b3e46 100644 --- a/trait.impl/core/iter/traits/double_ended/trait.DoubleEndedIterator.js +++ b/trait.impl/core/iter/traits/double_ended/trait.DoubleEndedIterator.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl DoubleEndedIterator for ChainIter"]] +"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/trait.impl/core/iter/traits/exact_size/trait.ExactSizeIterator.js b/trait.impl/core/iter/traits/exact_size/trait.ExactSizeIterator.js index f0186298e2d..c4dcb621960 100644 --- a/trait.impl/core/iter/traits/exact_size/trait.ExactSizeIterator.js +++ b/trait.impl/core/iter/traits/exact_size/trait.ExactSizeIterator.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl ExactSizeIterator for ChainIter"]] +"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/trait.impl/core/iter/traits/iterator/trait.Iterator.js b/trait.impl/core/iter/traits/iterator/trait.Iterator.js index 48c8db96302..ddc25402a7b 100644 --- a/trait.impl/core/iter/traits/iterator/trait.Iterator.js +++ b/trait.impl/core/iter/traits/iterator/trait.Iterator.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl Iterator for ChainIter"]] +"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/trait.impl/core/marker/trait.Send.js b/trait.impl/core/marker/trait.Send.js index f4c79442330..b13a401f0bc 100644 --- a/trait.impl/core/marker/trait.Send.js +++ b/trait.impl/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::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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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/trait.impl/core/marker/trait.Sync.js b/trait.impl/core/marker/trait.Sync.js index 4507a1a34c0..63a4357c602 100644 --- a/trait.impl/core/marker/trait.Sync.js +++ b/trait.impl/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::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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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/trait.impl/core/marker/trait.Unpin.js b/trait.impl/core/marker/trait.Unpin.js index f83d4201bc4..450663f67ec 100644 --- a/trait.impl/core/marker/trait.Unpin.js +++ b/trait.impl/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::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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 44308e53b3f..8c1cbbd4ef9 100644 --- a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/trait.impl/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::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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index c2456d6ed26..744a915b2bd 100644 --- a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/trait.impl/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::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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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 RuntimeChecks",1,["try_runtime_core::state::RuntimeChecks"]],["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/trait.impl/core/str/traits/trait.FromStr.js b/trait.impl/core/str/traits/trait.FromStr.js index 9106941fed2..14c43fe7b42 100644 --- a/trait.impl/core/str/traits/trait.FromStr.js +++ b/trait.impl/core/str/traits/trait.FromStr.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"try_runtime_core":[["impl FromStr for Chain"],["impl FromStr for Runtime"]] +"try_runtime_core":[["impl FromStr for Chain"],["impl FromStr for Runtime"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/try_runtime/all.html b/try_runtime/all.html index d77829cd635..647e6d55d56 100644 --- a/try_runtime/all.html +++ b/try_runtime/all.html @@ -1 +1,2 @@ -List of all items in this crate

List of all items

Functions

\ No newline at end of file +List of all items in this crate +

List of all items

Functions

\ No newline at end of file diff --git a/try_runtime/fn.init_env.html b/try_runtime/fn.init_env.html index fecb668da8b..c3490774853 100644 --- a/try_runtime/fn.init_env.html +++ b/try_runtime/fn.init_env.html @@ -1 +1,2 @@ -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 79dab522400..ec975559720 100644 --- a/try_runtime/fn.main.html +++ b/try_runtime/fn.main.html @@ -1 +1,2 @@ -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 ff593889976..238443893c3 100644 --- a/try_runtime/index.html +++ b/try_runtime/index.html @@ -1,5 +1,6 @@ -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 @@ -102,14 +103,14 @@

Testing Ru the pallet, or standalone in a runtime to define a migration to execute next runtime upgrade. In both cases, these methods can be added:

-
#[cfg(feature = "try-runtime")]
+
#[cfg(feature = "try-runtime")]
 fn pre_upgrade() -> Result<Vec<u8>, TryRuntimeError> {}
 
-#[cfg(feature = "try-runtime")]
+#[cfg(feature = "try-runtime")]
 fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError> {}

(The pallet macro syntax will support this simply as a part of #[pallet::hooks]).

These hooks will be called when you execute the Action::OnRuntimeUpgrade command, before and -after the migration. OnRuntimeUpgrade::pre_upgrade returns a Vec<u8> that can contain +after the migration. OnRuntimeUpgrade::pre_upgrade returns a Vec<u8> that can contain arbitrary encoded data (usually some pre-upgrade state) which will be passed to OnRuntimeUpgrade::pre_upgrade after upgrading and used for post checking.

VersionedMigration

@@ -118,7 +119,7 @@

VersionedMigrati

State Consistency

Similarly, each pallet can expose a function in #[pallet::hooks] section as follows:

-
#[cfg(feature = "try-runtime")]
+
#[cfg(feature = "try-runtime")]
 fn try_state(_: BlockNumber) -> Result<(), TryRuntimeError> {}

which is called on numerous code paths in the try-runtime tool. These checks should ensure that the state of the pallet is consistent and correct. See TryState for more info.

@@ -216,4 +217,4 @@

Examples

follow-chain \ --uri ws://localhost:9999 \ --try-state rr-3 -

Functions

\ No newline at end of file +

Functions

\ No newline at end of file diff --git a/try_runtime_core/all.html b/try_runtime_core/all.html index 0eb68e3937a..a82c96b55fe 100644 --- a/try_runtime_core/all.html +++ b/try_runtime_core/all.html @@ -1 +1,2 @@ -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/create_snapshot/fn.run.html b/try_runtime_core/commands/create_snapshot/fn.run.html index ee67b2d9f3a..c506905ddf6 100644 --- a/try_runtime_core/commands/create_snapshot/fn.run.html +++ b/try_runtime_core/commands/create_snapshot/fn.run.html @@ -1,12 +1,13 @@ -run in try_runtime_core::commands::create_snapshot - Rust
pub async fn run<Block, HostFns>(
+run in try_runtime_core::commands::create_snapshot - Rust
+    
pub async fn run<Block, HostFns>(
     shared: SharedParams,
     command: Command
-) -> Result<()>where
+) -> Result<()>
where Block: BlockT + DeserializeOwned, Block::Hash: DeserializeOwned, Block::Header: DeserializeOwned, - <Block::Hash as FromStr>::Err: Debug, - NumberFor<Block>: FromStr, - <NumberFor<Block> as FromStr>::Err: Debug, - HostFns: HostFunctions,
Expand description

Runs the create_snapshot command.

+ <Block::Hash as FromStr>::Err: Debug, + NumberFor<Block>: FromStr, + <NumberFor<Block> as FromStr>::Err: Debug, + HostFns: HostFunctions,
Expand description

Runs the create_snapshot command.

\ No newline at end of file diff --git a/try_runtime_core/commands/create_snapshot/index.html b/try_runtime_core/commands/create_snapshot/index.html index c2cc2dc6065..0da6fb4005d 100644 --- a/try_runtime_core/commands/create_snapshot/index.html +++ b/try_runtime_core/commands/create_snapshot/index.html @@ -1 +1,2 @@ -try_runtime_core::commands::create_snapshot - Rust

Structs

Functions

  • Runs the create_snapshot command.
\ No newline at end of file +try_runtime_core::commands::create_snapshot - Rust +

Structs

Functions

  • Runs the create_snapshot command.
\ No newline at end of file diff --git a/try_runtime_core/commands/create_snapshot/struct.Command.html b/try_runtime_core/commands/create_snapshot/struct.Command.html index c0e8d389035..63af3463f0b 100644 --- a/try_runtime_core/commands/create_snapshot/struct.Command.html +++ b/try_runtime_core/commands/create_snapshot/struct.Command.html @@ -1,63 +1,64 @@ -Command in try_runtime_core::commands::create_snapshot - Rust
pub struct Command {
+Command in try_runtime_core::commands::create_snapshot - Rust
+    
pub struct Command {
     pub from: LiveState,
-    pub snapshot_path: Option<String>,
+    pub snapshot_path: Option<String>,
 }
Expand description

Configurations for run.

-

Fields§

§from: LiveState

The source of the snapshot. Must be a remote node.

-
§snapshot_path: Option<String>

The snapshot path to write to.

+

Fields§

§from: LiveState

The source of the snapshot. Must be a remote node.

+
§snapshot_path: Option<String>

The snapshot path to write to.

If not provided <spec-name>-<spec-version>@<block-hash>.snap will be used.

-

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][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Parser for Command

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ 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 2e60b326af7..ce0525bb934 100644 --- a/try_runtime_core/commands/enum.Action.html +++ b/try_runtime_core/commands/enum.Action.html @@ -1,4 +1,5 @@ -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),
@@ -6,7 +7,7 @@
     CreateSnapshot(Command),
     FastForward(Command),
 }
Expand description

Possible actions of try-runtime.

-

Variants§

§

OnRuntimeUpgrade(Command)

Execute the migrations of the given 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 only triggers all of the on_runtime_upgrade hooks in the runtime, and optionally try_state.

@@ -51,59 +52,59 @@ 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 +

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, - <Block::Hash as FromStr>::Err: Debug, - <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( + Block::Hash: FromStr, + <Block::Hash as FromStr>::Err: Debug, + <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( __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 - 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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> 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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/commands/execute_block/fn.run.html b/try_runtime_core/commands/execute_block/fn.run.html index 908208f329c..0cd9fc03662 100644 --- a/try_runtime_core/commands/execute_block/fn.run.html +++ b/try_runtime_core/commands/execute_block/fn.run.html @@ -1,10 +1,11 @@ -run in try_runtime_core::commands::execute_block - Rust
pub async fn run<Block, HostFns>(
+run in try_runtime_core::commands::execute_block - Rust
+    
pub async fn run<Block, HostFns>(
     shared: SharedParams,
     command: Command
-) -> Result<()>where
+) -> Result<()>
where Block: BlockT + DeserializeOwned, - <Block::Hash as FromStr>::Err: Debug, + <Block::Hash as FromStr>::Err: Debug, Block::Hash: DeserializeOwned, Block::Header: DeserializeOwned, - <NumberFor<Block> as TryInto<u64>>::Error: Debug, - HostFns: HostFunctions,
\ No newline at end of file + <NumberFor<Block> as TryInto<u64>>::Error: Debug, + HostFns: HostFunctions,
\ No newline at end of file diff --git a/try_runtime_core/commands/execute_block/index.html b/try_runtime_core/commands/execute_block/index.html index e7d4e121cc5..b3c7adbc088 100644 --- a/try_runtime_core/commands/execute_block/index.html +++ b/try_runtime_core/commands/execute_block/index.html @@ -1 +1,2 @@ -try_runtime_core::commands::execute_block - Rust
\ No newline at end of file +try_runtime_core::commands::execute_block - Rust +
\ No newline at end of file diff --git a/try_runtime_core/commands/execute_block/struct.Command.html b/try_runtime_core/commands/execute_block/struct.Command.html index 18c7fe7a031..cd2392f00f3 100644 --- a/try_runtime_core/commands/execute_block/struct.Command.html +++ b/try_runtime_core/commands/execute_block/struct.Command.html @@ -1,11 +1,12 @@ -Command in try_runtime_core::commands::execute_block - Rust
pub struct Command {
+Command in try_runtime_core::commands::execute_block - Rust
+    
pub struct Command {
     pub try_state: TryStateSelect,
-    pub block_ws_uri: Option<String>,
+    pub block_ws_uri: Option<String>,
     pub state: State,
 }
Expand description

Configurations for run.

This will always call into TryRuntime_execute_block, which can optionally skip the state-root check (useful for trying a unreleased runtime), and can execute runtime sanity checks as well.

-

Fields§

§try_state: TryStateSelect

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

+

Fields§

§try_state: TryStateSelect

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

Expected values:

  • all
  • @@ -15,65 +16,65 @@
  • rr-[x] where [x] is a number. Then, the given number of pallets are checked in a round-robin fashion.
-
§block_ws_uri: Option<String>

The ws uri from which to fetch the block.

+
§block_ws_uri: Option<String>

The ws uri from which to fetch the block.

This will always fetch the next block of whatever state is referring to, because this is the only sensible combination. In other words, if you have the state of block n, you should execute block n+1 on top of it.

If state is Live, this can be ignored and the same uri is used for both.

-
§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( +

§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( +) -> 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][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Parser for Command

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/commands/fast_forward/fn.run.html b/try_runtime_core/commands/fast_forward/fn.run.html index 475b39bdebe..e1880a33310 100644 --- a/try_runtime_core/commands/fast_forward/fn.run.html +++ b/try_runtime_core/commands/fast_forward/fn.run.html @@ -1,10 +1,11 @@ -run in try_runtime_core::commands::fast_forward - Rust
pub async fn run<Block, HostFns>(
+run in try_runtime_core::commands::fast_forward - Rust
+    
pub async fn run<Block, HostFns>(
     shared: SharedParams,
     command: Command
-) -> Result<()>where
+) -> 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 + <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 index d80369c9ebe..1eb9bd1c54f 100644 --- a/try_runtime_core/commands/fast_forward/index.html +++ b/try_runtime_core/commands/fast_forward/index.html @@ -1 +1,2 @@ -try_runtime_core::commands::fast_forward - Rust
\ No newline at end of file +try_runtime_core::commands::fast_forward - Rust +
\ 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 index 4748c20862a..f6835b9d8ea 100644 --- a/try_runtime_core/commands/fast_forward/struct.Command.html +++ b/try_runtime_core/commands/fast_forward/struct.Command.html @@ -1,16 +1,17 @@ -Command in try_runtime_core::commands::fast_forward - Rust
pub struct Command {
-    pub n_blocks: u64,
+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 block_ws_uri: Option<String>,
     pub try_state: TryStateSelect,
-    pub run_migrations: bool,
+    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.

+

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.

+
§try_state: TryStateSelect

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

Expected values:

  • all
  • @@ -20,61 +21,61 @@
  • 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( +

§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( +) -> 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][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Parser for Command

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

impl<T> MaybeSend for T
where + 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 05a233a580a..f852a4a2353 100644 --- a/try_runtime_core/commands/follow_chain/fn.run.html +++ b/try_runtime_core/commands/follow_chain/fn.run.html @@ -1,10 +1,11 @@ -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
+) -> 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 + <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/follow_chain/index.html b/try_runtime_core/commands/follow_chain/index.html index 8f0e31a55c5..8a37d6a88a4 100644 --- a/try_runtime_core/commands/follow_chain/index.html +++ b/try_runtime_core/commands/follow_chain/index.html @@ -1 +1,2 @@ -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/follow_chain/struct.Command.html b/try_runtime_core/commands/follow_chain/struct.Command.html index 647eec49e8f..2035aff7d5b 100644 --- a/try_runtime_core/commands/follow_chain/struct.Command.html +++ b/try_runtime_core/commands/follow_chain/struct.Command.html @@ -1,12 +1,13 @@ -Command in try_runtime_core::commands::follow_chain - Rust
pub struct Command {
-    pub uri: String,
-    pub state_root_check: bool,
+Command in try_runtime_core::commands::follow_chain - Rust
+    
pub struct Command {
+    pub uri: String,
+    pub state_root_check: bool,
     pub try_state: TryStateSelect,
-    pub keep_connection: bool,
+    pub keep_connection: bool,
 }
Expand description

Configurations for run.

-

Fields§

§uri: String

The url to connect to.

-
§state_root_check: bool

If set, then the state root check is enabled.

-
§try_state: TryStateSelect

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

+

Fields§

§uri: String

The url to connect to.

+
§state_root_check: bool

If set, then the state root check is enabled.

+
§try_state: TryStateSelect

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

Expected values:

  • all
  • @@ -16,60 +17,60 @@
  • rr-[x] where [x] is a number. Then, the given number of pallets are checked in a round-robin fashion.
-
§keep_connection: bool

If present, a single connection to a node will be kept and reused for fetching blocks.

-

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( +

§keep_connection: bool

If present, a single connection to a node will be kept and reused for fetching blocks.

+

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][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Parser for Command

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/commands/index.html b/try_runtime_core/commands/index.html index 49d40b73db3..7197a3be4ba 100644 --- a/try_runtime_core/commands/index.html +++ b/try_runtime_core/commands/index.html @@ -1 +1,2 @@ -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/offchain_worker/fn.run.html b/try_runtime_core/commands/offchain_worker/fn.run.html index feda34ac08b..c566edef73d 100644 --- a/try_runtime_core/commands/offchain_worker/fn.run.html +++ b/try_runtime_core/commands/offchain_worker/fn.run.html @@ -1,10 +1,11 @@ -run in try_runtime_core::commands::offchain_worker - Rust
pub async fn run<Block, HostFns>(
+run in try_runtime_core::commands::offchain_worker - Rust
+    
pub async fn run<Block, HostFns>(
     shared: SharedParams,
     command: Command
-) -> Result<()>where
+) -> Result<()>
where Block: BlockT + 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 + <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/offchain_worker/index.html b/try_runtime_core/commands/offchain_worker/index.html index af84a4d47e0..c84aace933c 100644 --- a/try_runtime_core/commands/offchain_worker/index.html +++ b/try_runtime_core/commands/offchain_worker/index.html @@ -1 +1,2 @@ -try_runtime_core::commands::offchain_worker - Rust
\ No newline at end of file +try_runtime_core::commands::offchain_worker - Rust +
\ No newline at end of file diff --git a/try_runtime_core/commands/offchain_worker/struct.Command.html b/try_runtime_core/commands/offchain_worker/struct.Command.html index 954da3574f8..0c5a993c3c5 100644 --- a/try_runtime_core/commands/offchain_worker/struct.Command.html +++ b/try_runtime_core/commands/offchain_worker/struct.Command.html @@ -1,64 +1,65 @@ -Command in try_runtime_core::commands::offchain_worker - Rust
pub struct Command {
-    pub header_ws_uri: Option<String>,
+Command in try_runtime_core::commands::offchain_worker - Rust
+    
pub struct Command {
+    pub header_ws_uri: Option<String>,
     pub state: State,
 }
Expand description

Configuration for run.

-

Fields§

§header_ws_uri: Option<String>

The ws uri from which to fetch the header.

+

Fields§

§header_ws_uri: Option<String>

The ws uri from which to fetch the header.

If the live state type is being used, then this can be omitted, and is equal to whatever the state::uri is. Only use this (with care) when combined with a snapshot.

-
§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( +

§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( +) -> 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][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Parser for Command

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ 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 8c73960577a..b167726e5f1 100644 --- a/try_runtime_core/commands/on_runtime_upgrade/fn.run.html +++ b/try_runtime_core/commands/on_runtime_upgrade/fn.run.html @@ -1,10 +1,11 @@ -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
+) -> Result<()>
where Block: BlockT + DeserializeOwned, - <Block::Hash as FromStr>::Err: Debug, + <Block::Hash as FromStr>::Err: Debug, Block::Header: DeserializeOwned, - NumberFor<Block>: FromStr, - <NumberFor<Block> as FromStr>::Err: Debug, - HostFns: HostFunctions,
\ No newline at end of file + NumberFor<Block>: FromStr, + <NumberFor<Block> as FromStr>::Err: Debug, + HostFns: HostFunctions,
\ No newline at end of file diff --git a/try_runtime_core/commands/on_runtime_upgrade/index.html b/try_runtime_core/commands/on_runtime_upgrade/index.html index 7983e189b10..3c7d657216f 100644 --- a/try_runtime_core/commands/on_runtime_upgrade/index.html +++ b/try_runtime_core/commands/on_runtime_upgrade/index.html @@ -1 +1,2 @@ -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 61135c4b3aa..402f1e78f50 100644 --- a/try_runtime_core/commands/on_runtime_upgrade/struct.Command.html +++ b/try_runtime_core/commands/on_runtime_upgrade/struct.Command.html @@ -1,12 +1,14 @@ -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,
-    pub disable_spec_version_check: bool,
-    pub disable_idempotency_checks: bool,
+    pub no_weight_warnings: bool,
+    pub disable_spec_version_check: bool,
+    pub disable_idempotency_checks: bool,
+    pub print_storage_diff: bool,
 }
Expand description

Configuration for run.

-

Fields§

§state: State

The state type to use.

-
§checks: UpgradeCheckSelect

Select which optional checks to perform. Selects all when no value is given.

+

Fields§

§state: State

The state type to use.

+
§checks: UpgradeCheckSelect

Select which optional checks to perform. Selects all when no value is given.

  • none: Perform no checks.
  • all: Perform all checks (default when –checks is present with no value).
  • @@ -15,63 +17,65 @@
  • try-state: Perform the try-state checks.

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

-
§no_weight_warnings: bool

Whether to disable weight warnings, useful if the runtime is for a relay chain.

-
§disable_spec_version_check: bool

Whether to skip enforcing that the new runtime spec_version is greater or equal to the +

§no_weight_warnings: bool

Whether to disable weight warnings, useful if the runtime is for a relay chain.

+
§disable_spec_version_check: bool

Whether to skip enforcing that the new runtime spec_version is greater or equal to the existing spec_version.

-
§disable_idempotency_checks: bool

Whether to disable migration idempotency checks

-

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( +

§disable_idempotency_checks: bool

Whether to disable migration idempotency checks

+
§print_storage_diff: bool

When migrations are detected as not idempotent, enabling this will output a diff of the +storage before and after running the same set of migrations the second time.

+

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][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Parser for Command

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ 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 1341f1745fa..0da3bebcaec 100644 --- a/try_runtime_core/commands/struct.TryRuntime.html +++ b/try_runtime_core/commands/struct.TryRuntime.html @@ -1,68 +1,69 @@ -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, - <Block::Hash as FromStr>::Err: Debug, - <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( + Block::Hash: FromStr, + <Block::Hash as FromStr>::Err: Debug, + <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( __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][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Parser for TryRuntime

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/index.html b/try_runtime_core/index.html index b9cdc20f64d..53a0c4f8354 100644 --- a/try_runtime_core/index.html +++ b/try_runtime_core/index.html @@ -1,2 +1,3 @@ -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 index c67a9dd7ce2..340035aacc6 100644 --- a/try_runtime_core/inherent_provider/enum.Chain.html +++ b/try_runtime_core/inherent_provider/enum.Chain.html @@ -1,4 +1,5 @@ -Chain in try_runtime_core::inherent_provider - Rust
pub enum Chain {
+Chain in try_runtime_core::inherent_provider - Rust
+    
pub enum Chain {
     Polkadot,
     Kusama,
     Rococo,
@@ -7,67 +8,67 @@
     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( +

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( +) -> 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 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( +) -> 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][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+ 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][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

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

§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

§

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

§

impl<T> MaybeSend for T
where + 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 index d131d6275da..a4205b9908f 100644 --- a/try_runtime_core/inherent_provider/index.html +++ b/try_runtime_core/inherent_provider/index.html @@ -1,2 +1,3 @@ -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 +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/struct.ChainIter.html b/try_runtime_core/inherent_provider/struct.ChainIter.html index a697f46d86d..223c6ceebc3 100644 --- a/try_runtime_core/inherent_provider/struct.ChainIter.html +++ b/try_runtime_core/inherent_provider/struct.ChainIter.html @@ -1,1051 +1,1052 @@ -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>( +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) -> R
where + 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) -> B
where + 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 +) -> 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) -> usize
where + 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
source§

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>where - Self: Sized, - F: FnMut(&[Self::Item; N]) -> R,

🔬This is a nightly-only experimental API. (iter_map_windows)
Calls the given function f for each contiguous window of size N over -self and returns an iterator over the outputs of f. Like slice::windows(), -the windows during mapping overlap as well. 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 +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
source§

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where + Self: Sized, + F: FnMut(&[Self::Item; N]) -> R,

🔬This is a nightly-only experimental API. (iter_map_windows)
Calls the given function f for each contiguous window of size N over +self and returns an iterator over the outputs of f. Like slice::windows(), +the windows during mapping overlap as well. 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 Self
where + Self: Sized,

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

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

Transforms an iterator into a collection. Read more
source§

fn collect_into<E>(self, collection: &mut E) -> &mut E
where + 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) -> usize
where 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, + 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>( +Returns the number of true elements found. Read more

source§

fn is_partitioned<P>(self, predicate: P) -> bool
where + 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) -> R
where + 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) -> R
where + 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) -> B
where + 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>( +) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
where + 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) -> bool
where + 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) -> bool
where + 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 +) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
where + 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) -> S
where + Self: Sized, + S: Sum<Self::Item>,

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

fn product<P>(self) -> P
where + 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) -> Ordering
where + 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,

🔬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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+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) -> bool
where + 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) -> bool
where + 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) -> bool
where + 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) -> bool
where + 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) -> bool
where + 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) -> bool
where + 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) -> bool
where + 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) -> bool
where + 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) -> bool
where + Self: Sized, + F: FnMut(Self::Item) -> K, + K: PartialOrd,

🔬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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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>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>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>( +From<T> for U chooses to do.

+

source§

impl<I> IntoIterator for I
where + 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 T
where + 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 I
where + 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]) -> usize
where + 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>
where + R: Rng + ?Sized,

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

impl<I> IteratorRandom for I
where + 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]) -> usize
where + 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>
where + R: Rng + ?Sized,

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

impl<T> Itertools for T
where + 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>( +) -> 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 +) -> 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 + 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 +) -> 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,

Return an iterable that can group iterator elements. +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,

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>, +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 + <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>( +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 +) -> 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 +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 +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 +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, - J: IntoIterator<Item = Self::Item>,

Return an iterator adaptor that merges the two base iterators in +) -> MergeBy<Self, <J as IntoIterator>::IntoIter, MergeLte>
where + Self: Sized, + Self::Item: PartialOrd, + 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. +) -> 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,

Return an iterator adaptor that flattens an iterator of iterators by +) -> 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,

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 +) -> 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 +) -> 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,

Remove duplicates from sections of consecutive identical elements. +) -> 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,

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, +) -> 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 +) -> 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 +) -> 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 +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 +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,

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,

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>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 + 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) -> bool
where + Self: Sized, + Self::Item: Borrow<Q>, + Q: PartialEq,

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

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

Check whether all elements compare equal. Read more
source§

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

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

fn dropping(self, n: usize) -> Self
where + 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) -> Self
where + 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::Item
where + 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>
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) -> usize
where 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>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>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>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>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>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>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>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>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>>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>>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 + 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) -> String
where + 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>
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>
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>
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>
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>
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>
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>
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>
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>>
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>>
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>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>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>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>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>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>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,

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, - 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,

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, - 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 +) -> 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>
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>
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>
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>
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>
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>
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,

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, + 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,

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, + 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 +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>where - Self: Sized, - Self::Item: Eq + Hash,

Collect the items in this iterator and return a HashMap which +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>
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>where - Self: Sized, - K: Eq + Hash, - F: FnMut(Self::Item) -> K,

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

fn counts_by<K, F>(self, f: F) -> HashMap<K, usize>
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>( +determining identity using a keying function. Read more

source§

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

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

impl<T> Itertools for T
where + 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>( +) -> 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 +) -> 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 + 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 +) -> 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,

Return an iterable that can group iterator elements. +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,

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>, +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 + <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>( +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 +) -> 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 +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 +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 +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, - J: IntoIterator<Item = Self::Item>,

Return an iterator adaptor that merges the two base iterators in +) -> MergeBy<Self, <J as IntoIterator>::IntoIter, MergeLte>
where + Self: Sized, + Self::Item: PartialOrd, + 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. +) -> 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,

Return an iterator adaptor that flattens an iterator of iterators by +) -> 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,

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 +) -> 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 +) -> 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,

Remove duplicates from sections of consecutive identical elements. +) -> 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,

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, +) -> 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 +) -> 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 +) -> 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 +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 +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 +) -> 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 +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,

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,

Check whether all elements compare equal. Read more
source§

fn all_equal_value( + 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) -> bool
where + Self: Sized, + Self::Item: Borrow<Q>, + Q: PartialEq,

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

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

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,

If there are elements and they are all equal, return a single copy of that element. +) -> Result<Self::Item, Option<(Self::Item, Self::Item)>>
where + Self: Sized, + Self::Item: PartialEq,
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>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 +two non-equal elements found. Read more

source§

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

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

fn dropping(self, n: usize) -> Self
where + 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) -> Self
where + 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::Item
where + 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>
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) -> usize
where 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>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>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>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>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>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>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>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>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>>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>>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 + 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) -> String
where + 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>
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>
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>
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>
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>
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>
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>
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>
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>>
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>>
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>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>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>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>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>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>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,

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, - 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,

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, - 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 +) -> 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>
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>
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>
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>
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>
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>
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,

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, + 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,

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, + 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 +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>where - Self: Sized, - Self::Item: Eq + Hash,

Collect the items in this iterator and return a HashMap which +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>
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>where - Self: Sized, - K: Eq + Hash, - F: FnMut(Self::Item) -> K,

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

fn counts_by<K, F>(self, f: F) -> HashMap<K, usize>
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 = _

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. +determining identity using a keying function. Read more
source§

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

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

impl<T> Len for T

§

fn len(&self) -> usize

Return the length of data type.
§

impl<T> ParallelBridge for T
where + 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 = _

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 T
where + 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 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( +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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 I
where + 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 +) -> 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

impl<T> MaybeSend for T
where + 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 index 5617e30e159..145e3e3c09c 100644 --- a/try_runtime_core/inherent_provider/trait.InherentProvider.html +++ b/try_runtime_core/inherent_provider/trait.InherentProvider.html @@ -1,13 +1,14 @@ -InherentProvider in try_runtime_core::inherent_provider - Rust
pub trait InherentProvider {
+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>;
+        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§

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 + 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/shared_parameters/enum.Runtime.html b/try_runtime_core/shared_parameters/enum.Runtime.html index 50cc9dc2bff..1c8819680f9 100644 --- a/try_runtime_core/shared_parameters/enum.Runtime.html +++ b/try_runtime_core/shared_parameters/enum.Runtime.html @@ -1,49 +1,50 @@ -Runtime in try_runtime_core::shared_parameters - Rust
pub enum Runtime {
-    Path(PathBuf),
+Runtime in try_runtime_core::shared_parameters - Rust
+    
pub enum Runtime {
+    Path(PathBuf),
     Existing,
-}

Variants§

§

Path(PathBuf)

Use the given path to the wasm binary file.

+}

Variants§

§

Path(PathBuf)

Use the given path to the wasm binary file.

It must have been compiled with try-runtime.

§

Existing

Use the code of the remote node, or the snapshot.

In almost all cases, this is not what you want, because the code in the remote node does not have any of the try-runtime custom runtime APIs.

-

Trait Implementations§

source§

impl Clone for Runtime

source§

fn clone(&self) -> Runtime

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 Runtime

source§

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

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

impl FromStr for Runtime

§

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

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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+

Trait Implementations§

source§

impl Clone for Runtime

source§

fn clone(&self) -> Runtime

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 Runtime

source§

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

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

impl FromStr for Runtime

§

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

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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> 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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/shared_parameters/index.html b/try_runtime_core/shared_parameters/index.html index 86bec2fea2e..89c657d393b 100644 --- a/try_runtime_core/shared_parameters/index.html +++ b/try_runtime_core/shared_parameters/index.html @@ -1 +1,2 @@ -try_runtime_core::shared_parameters - Rust

Structs

Enums

\ No newline at end of file +try_runtime_core::shared_parameters - Rust +

Structs

Enums

\ No newline at end of file diff --git a/try_runtime_core/shared_parameters/struct.SharedParams.html b/try_runtime_core/shared_parameters/struct.SharedParams.html index 27d1f4f4190..8222a74581a 100644 --- a/try_runtime_core/shared_parameters/struct.SharedParams.html +++ b/try_runtime_core/shared_parameters/struct.SharedParams.html @@ -1,82 +1,83 @@ -SharedParams in try_runtime_core::shared_parameters - Rust
pub struct SharedParams {
+SharedParams in try_runtime_core::shared_parameters - Rust
+    
pub struct SharedParams {
     pub runtime: Runtime,
-    pub disable_spec_name_check: bool,
+    pub disable_spec_name_check: bool,
     pub wasm_method: WasmExecutionMethod,
     pub wasmtime_instantiation_strategy: WasmtimeInstantiationStrategy,
-    pub heap_pages: Option<u64>,
-    pub export_proof: Option<PathBuf>,
-    pub overwrite_state_version: Option<StateVersion>,
+    pub heap_pages: Option<u64>,
+    pub export_proof: Option<PathBuf>,
+    pub overwrite_state_version: Option<StateVersion>,
 }
Expand description

Shared parameters of the try-runtime commands

-

Fields§

§runtime: Runtime

The runtime to use.

+

Fields§

§runtime: Runtime

The runtime to use.

Must be a path to a wasm blob, compiled with try-runtime feature flag.

Or, existing, indicating that you don’t want to overwrite the runtime. This will use whatever comes from the remote node, or the snapshot file. This will most likely not work against a remote node, as no (sane) blockchain should compile its onchain wasm with try-runtime feature.

-
§disable_spec_name_check: bool

Whether to disable enforcing the new runtime spec_name matches the existing spec_name.

-
§wasm_method: WasmExecutionMethod

Type of wasm execution used.

-
§wasmtime_instantiation_strategy: WasmtimeInstantiationStrategy

The WASM instantiation method to use.

+
§disable_spec_name_check: bool

Whether to disable enforcing the new runtime spec_name matches the existing spec_name.

+
§wasm_method: WasmExecutionMethod

Type of wasm execution used.

+
§wasmtime_instantiation_strategy: WasmtimeInstantiationStrategy

The WASM instantiation method to use.

Only has an effect when wasm-execution is set to compiled.

-
§heap_pages: Option<u64>

The number of 64KB pages to allocate for Wasm execution. Defaults to +

§heap_pages: Option<u64>

The number of 64KB pages to allocate for Wasm execution. Defaults to [sc_service::Configuration.default_heap_pages].

-
§export_proof: Option<PathBuf>

Path to a file to export the storage proof into (as a JSON). +

§export_proof: Option<PathBuf>

Path to a file to export the storage proof into (as a JSON). If several blocks are executed, the path is interpreted as a folder where one file per block will be written (named {block_number}-{block_hash}).

-
§overwrite_state_version: Option<StateVersion>

Overwrite the state_version.

+
§overwrite_state_version: Option<StateVersion>

Overwrite the state_version.

Otherwise remote-externalities will automatically set the correct state version.

-

Trait Implementations§

source§

impl Args for SharedParams

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 SharedParams

source§

fn clone(&self) -> SharedParams

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 SharedParams

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 SharedParams

source§

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

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

impl FromArgMatches for SharedParams

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 SharedParams

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 SharedParams

source§

fn clone(&self) -> SharedParams

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 SharedParams

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 SharedParams

source§

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

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

impl FromArgMatches for SharedParams

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 SharedParams

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Parser for SharedParams

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

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

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

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

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
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][Error::exit] on error.
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
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 T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/state/enum.State.html b/try_runtime_core/state/enum.State.html index 029acad2b9c..146f08edea4 100644 --- a/try_runtime_core/state/enum.State.html +++ b/try_runtime_core/state/enum.State.html @@ -1,67 +1,68 @@ -State in try_runtime_core::state - Rust
pub enum State {
+State in try_runtime_core::state - Rust
+    
pub enum State {
     Snap {
-        path: Option<PathBuf>,
+        path: Option<PathBuf>,
     },
     Live(LiveState),
 }
Expand description

The source of runtime state to use.

-

Variants§

§

Snap

Fields

Use a state snapshot as the source of runtime state.

+

Variants§

§

Snap

Fields

Use a state snapshot as the source of runtime state.

§

Live(LiveState)

Use a live chain as the source of runtime state.

-

Implementations§

source§

impl State

source

pub async fn to_ext<Block: BlockT + DeserializeOwned, HostFns: HostFunctions>( +

Implementations§

source§

impl State

source

pub async fn to_ext<Block: BlockT + DeserializeOwned, HostFns: HostFunctions>( &self, shared: &SharedParams, executor: &WasmExecutor<HostFns>, - state_snapshot: Option<SnapshotConfig>, + state_snapshot: Option<SnapshotConfig>, runtime_checks: RuntimeChecks -) -> Result<RemoteExternalities<Block>>where +) -> Result<RemoteExternalities<Block>>
where Block::Header: DeserializeOwned, - <Block::Hash as FromStr>::Err: Debug,

Create the [RemoteExternalities].

+ <Block::Hash as FromStr>::Err: Debug,

Create the [RemoteExternalities].

This will override the code as it sees fit based on Runtime. It will also check the spec-version and name.

-

Trait Implementations§

source§

impl Clone for State

source§

fn clone(&self) -> State

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 State

source§

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

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

impl FromArgMatches for State

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 Clone for State

source§

fn clone(&self) -> State

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 State

source§

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

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

impl FromArgMatches for State

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 State

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 State

§

impl Send for State

§

impl Sync for State

§

impl Unpin for State

§

impl UnwindSafe for State

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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.
source§

impl Subcommand for State

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 State

§

impl Send for State

§

impl Sync for State

§

impl Unpin for State

§

impl UnwindSafe for State

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/state/index.html b/try_runtime_core/state/index.html index fd27455534c..4017d3ac049 100644 --- a/try_runtime_core/state/index.html +++ b/try_runtime_core/state/index.html @@ -1 +1,2 @@ -try_runtime_core::state - Rust

Module try_runtime_core::state

source ·

Structs

Enums

  • The source of runtime state to use.
\ No newline at end of file +try_runtime_core::state - Rust +

Module try_runtime_core::state

source ·

Structs

Enums

  • The source of runtime state to use.
\ No newline at end of file diff --git a/try_runtime_core/state/struct.LiveState.html b/try_runtime_core/state/struct.LiveState.html index 7a3bde3bcf9..76015870f9b 100644 --- a/try_runtime_core/state/struct.LiveState.html +++ b/try_runtime_core/state/struct.LiveState.html @@ -1,73 +1,74 @@ -LiveState in try_runtime_core::state - Rust
pub struct LiveState {
-    pub uri: String,
-    pub at: Option<String>,
-    pub pallet: Vec<String>,
-    pub hashed_prefixes: Vec<String>,
-    pub child_tree: bool,
+LiveState in try_runtime_core::state - Rust
+    
pub struct LiveState {
+    pub uri: String,
+    pub at: Option<String>,
+    pub pallet: Vec<String>,
+    pub hashed_prefixes: Vec<String>,
+    pub child_tree: bool,
 }
Expand description

A Live variant for State

-

Fields§

§uri: String

The url to connect to.

-
§at: Option<String>

The block hash at which to fetch the state.

+

Fields§

§uri: String

The url to connect to.

+
§at: Option<String>

The block hash at which to fetch the state.

If non provided, then the latest finalized head is used.

-
§pallet: Vec<String>

A pallet to scrape. Can be provided multiple times. If empty, entire chain state will +

§pallet: Vec<String>

A pallet to scrape. Can be provided multiple times. If empty, entire chain state will be scraped.

This is equivalent to passing xx_hash_64(pallet) to --hashed_prefixes.

-
§hashed_prefixes: Vec<String>

Storage entry key prefixes to scrape and inject into the test externalities. Pass as 0x +

§hashed_prefixes: Vec<String>

Storage entry key prefixes to scrape and inject into the test externalities. Pass as 0x prefixed hex strings. By default, all keys are scraped and included.

-
§child_tree: bool

Fetch the child-keys as well.

+
§child_tree: bool

Fetch the child-keys as well.

Default is false, if specific --pallets are specified, true otherwise. In other words, if you scrape the whole state the child tree data is included out of the box. Otherwise, it must be enabled explicitly using this flag.

-

Implementations§

source§

impl LiveState

source

pub fn at<Block: BlockT>(&self) -> Result<Option<Block::Hash>>where - <Block::Hash as FromStr>::Err: Debug,

Return the at block hash as a Hash, if it exists.

-
source

pub async fn to_prev_block_live_state<Block: BlockT>(self) -> Result<LiveState>where - <Block::Hash as FromStr>::Err: Debug,

Converts this LiveState into a LiveState for the previous block.

+

Implementations§

source§

impl LiveState

source

pub fn at<Block: BlockT>(&self) -> Result<Option<Block::Hash>>
where + <Block::Hash as FromStr>::Err: Debug,

Return the at block hash as a Hash, if it exists.

+
source

pub async fn to_prev_block_live_state<Block: BlockT>(self) -> Result<LiveState>
where + <Block::Hash as FromStr>::Err: Debug,

Converts this LiveState into a LiveState for the previous block.

Useful for opertations like when you want to execute a block, but also need the state of the block before it.

-

Trait Implementations§

source§

impl Args for LiveState

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 LiveState

source§

fn clone(&self) -> LiveState

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 LiveState

source§

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

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

impl FromArgMatches for LiveState

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 LiveState

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 LiveState

source§

fn clone(&self) -> LiveState

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 LiveState

source§

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

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

impl FromArgMatches for LiveState

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.

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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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.

+) -> Result<(), Error>
Assign values from ArgMatches to self.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/state/struct.RuntimeChecks.html b/try_runtime_core/state/struct.RuntimeChecks.html index 8e08d2be6a2..21dfd752304 100644 --- a/try_runtime_core/state/struct.RuntimeChecks.html +++ b/try_runtime_core/state/struct.RuntimeChecks.html @@ -1,47 +1,48 @@ -RuntimeChecks in try_runtime_core::state - Rust
pub struct RuntimeChecks {
-    pub name_matches: bool,
-    pub version_increases: bool,
-    pub try_runtime_feature_enabled: bool,
+RuntimeChecks in try_runtime_core::state - Rust
+    
pub struct RuntimeChecks {
+    pub name_matches: bool,
+    pub version_increases: bool,
+    pub try_runtime_feature_enabled: bool,
 }
Expand description

Checks to perform on the given runtime, compared to the existing runtime.

-

Fields§

§name_matches: bool

Enforce the spec_names match

-
§version_increases: bool

Enforce the spec_version of the given is greater or equal to the existing +

Fields§

§name_matches: bool

Enforce the spec_names match

+
§version_increases: bool

Enforce the spec_version of the given is greater or equal to the existing runtime.

-
§try_runtime_feature_enabled: bool

Enforce that the given runtime is compiled with the try-runtime feature.

-

Trait Implementations§

source§

impl Debug for RuntimeChecks

source§

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

Formats the value using the given formatter. 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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§try_runtime_feature_enabled: bool

Enforce that the given runtime is compiled with the try-runtime feature.

+

Trait Implementations§

source§

impl Debug for RuntimeChecks

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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, 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T, U> TryFrom<U> for T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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 +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

§

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

\ No newline at end of file diff --git a/try_runtime_core/struct.RefTimeInfo.html b/try_runtime_core/struct.RefTimeInfo.html index 2e354cec7b3..254c1194c19 100644 --- a/try_runtime_core/struct.RefTimeInfo.html +++ b/try_runtime_core/struct.RefTimeInfo.html @@ -1,41 +1,42 @@ -RefTimeInfo in try_runtime_core - Rust
pub struct RefTimeInfo {
-    pub used: Duration,
-    pub max: Duration,
-}

Fields§

§used: Duration§max: Duration

Trait Implementations§

source§

impl TryFrom<Vec<u8>> for RefTimeInfo

source§

fn try_from(value: Vec<u8>) -> Result<Self, Self::Error>

try_from Vec encoded as (Weight, Weight) tuple

-
§

type Error = String

The type returned in the event of a conversion 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>) -> Box<dyn Any>

§

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

§

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 + Send + Sync>

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+RefTimeInfo in try_runtime_core - Rust +
pub struct RefTimeInfo {
+    pub used: Duration,
+    pub max: Duration,
+}

Fields§

§used: Duration§max: Duration

Trait Implementations§

source§

impl TryFrom<Vec<u8>> for RefTimeInfo

source§

fn try_from(value: Vec<u8>) -> Result<Self, Self::Error>

try_from Vec encoded as (Weight, Weight) tuple

+
§

type Error = String

The type returned in the event of a conversion error.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + 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 = _

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 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, 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 +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 T
where + 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 = _

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 for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

impl<T, U> TryFrom<U> for T
where + 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 T
where + 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 S
where + T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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

§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a + S: TryInto<T>,
§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

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§

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> MaybeRefUnwindSafe for Twhere - T: RefUnwindSafe,

§

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

\ No newline at end of file +WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

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

§

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

\ No newline at end of file