diff --git a/.buildnumber b/.buildnumber index 975491526..ddc17b20b 100644 --- a/.buildnumber +++ b/.buildnumber @@ -1 +1 @@ -259 \ No newline at end of file +260 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b93a9518..01c06fd1e 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## CHANGELOG -### v0.37.6 +### v0.37.6 (2024-01-13) * Fix: Detect crate installation fix for new cargo list format * Enhancement: Add condition support for decode info #1020 (thanks @Bauke) diff --git a/Cargo.lock b/Cargo.lock index 35303162b..7ea580693 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -140,7 +140,7 @@ dependencies = [ [[package]] name = "cargo-make" -version = "0.37.5" +version = "0.37.6" dependencies = [ "cargo_metadata", "ci_info", diff --git a/Cargo.toml b/Cargo.toml index e2f022ce7..c0aeeb159 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-make" -version = "0.37.5" +version = "0.37.6" authors = ["Sagie Gur-Ari "] description = "Rust task runner and build tool." license = "Apache-2.0" diff --git a/README.md b/README.md index 508204fca..98012e800 100644 --- a/README.md +++ b/README.md @@ -241,7 +241,7 @@ cargo make my-flow The output would look something like this: ```console -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: Makefile.toml [cargo-make] INFO - Task: my-flow [cargo-make] INFO - Setting Up Env. @@ -664,7 +664,7 @@ Invoking cargo-make with additional arguments would result in the following: ```console > cargo make varargs arg1 arg2 arg3 -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: Makefile.toml [cargo-make] INFO - Task: varargs [cargo-make] INFO - Setting Up Env. @@ -681,7 +681,7 @@ Invoking cargo-make without any additional arguments would result in the followi ```console > cargo make varargs -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: Makefile.toml [cargo-make] INFO - Task: varargs [cargo-make] INFO - Setting Up Env. @@ -708,7 +708,7 @@ Would output: ```console > cargo make varargs arg1 arg2 arg3 -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: Makefile.toml [cargo-make] INFO - Task: varargs [cargo-make] INFO - Setting Up Env. @@ -759,7 +759,7 @@ Invoking cargo-make with additional arguments would result in the following: ```console > cargo make cli-args arg1 arg2 arg3 -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: Makefile.toml [cargo-make] INFO - Task: cli-args [cargo-make] INFO - Setting Up Env. @@ -776,7 +776,7 @@ Invoking cargo-make without any additional arguments would result in the followi ```console > cargo make cli-args -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: Makefile.toml [cargo-make] INFO - Task: cli-args [cargo-make] INFO - Setting Up Env. @@ -1038,7 +1038,7 @@ Output: ```console > cargo make --cwd ./examples --makefile ./shebang.toml shebang-sh -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: ./shebang.toml [cargo-make] INFO - Task: shebang-sh [cargo-make] INFO - Profile: development @@ -1065,7 +1065,7 @@ Output: ```console > cargo make --cwd ./examples --makefile ./shebang.toml shebang-python -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: ./shebang.toml [cargo-make] INFO - Task: shebang-python [cargo-make] INFO - Profile: development @@ -1390,7 +1390,7 @@ args = ["3"] We run task **3** the output would be: ```console -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: task_extend.toml [cargo-make] INFO - Task: 3 [cargo-make] INFO - Profile: development @@ -2596,7 +2596,7 @@ cargo make --cwd ./examples --makefile profile.toml --profile production echo Output: ```console -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: profile.toml [cargo-make] INFO - Task: echo [cargo-make] INFO - Profile: production @@ -2716,7 +2716,7 @@ deprecated = true When invoking **legacy** task for example, the output is: ```console -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: deprecated.toml [cargo-make] INFO - Task: legacy [cargo-make] INFO - Profile: development @@ -2757,7 +2757,7 @@ watch = true Below is a sample output of invoking the task: ```console -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: ./examples/watch.toml [cargo-make] INFO - Task: watch-example [cargo-make] INFO - Setting Up Env. @@ -2765,7 +2765,7 @@ Below is a sample output of invoking the task: [cargo-make] INFO - Running Task: watch-example [cargo-make] INFO - Running Task: watch-example-watch [cargo-make] INFO - Execute Command: "cargo" "watch" "-q" "-x" "make --disable-check-for-updates --no-on-error --loglevel=info --makefile=/projects/rust/cargo-make/examples/watch.toml watch-example" -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: /projects/rust/cargo-make/examples/watch.toml [cargo-make] INFO - Task: watch-example [cargo-make] INFO - Setting Up Env. @@ -2849,7 +2849,7 @@ args = ["${MULTIPLE_VALUES}"] ```console > cargo make --cwd ./examples --makefile functions.toml split -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: split [cargo-make] INFO - Profile: development @@ -2861,7 +2861,7 @@ args = ["${MULTIPLE_VALUES}"] [cargo-make] INFO - Build Done in 0 seconds. > cargo make --cwd ./examples --makefile functions.toml no-split -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: no-split [cargo-make] INFO - Profile: development @@ -2899,7 +2899,7 @@ args = ["@@getat(MULTIPLE_VALUES,|,3)"] ```console > cargo make --cwd ./examples --makefile functions.toml getat -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: getat [cargo-make] INFO - Profile: development @@ -2926,7 +2926,7 @@ args = ["1", "@@remove-empty(DOES_NOT_EXIST)", "2"] ```console > cargo make --cwd ./examples --makefile functions.toml remove-empty -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: remove-empty [cargo-make] INFO - Profile: development @@ -2959,7 +2959,7 @@ args = ["@@trim(TRIM_VALUE)"] ```console > cargo make --cwd ./examples --makefile functions.toml remove-empty -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: trim [cargo-make] INFO - Profile: development @@ -2988,7 +2988,7 @@ args = ["@@trim(TRIM_VALUE,end)"] ```console > cargo make --cwd ./examples --makefile functions.toml trim-start -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: trim-start [cargo-make] INFO - Profile: development @@ -3000,7 +3000,7 @@ args = ["@@trim(TRIM_VALUE,end)"] [cargo-make] INFO - Build Done in 0 seconds. > cargo make --cwd ./examples --makefile functions.toml trim-end -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: trim-end [cargo-make] INFO - Profile: development @@ -3038,7 +3038,7 @@ Sample run for a mapping that was found: ```console cargo make --cwd ./examples --makefile functions.toml -e DECODE_ENV_VAR=development decode -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: decode [cargo-make] INFO - Profile: development @@ -3054,7 +3054,7 @@ Another sample run for a mapping that was not found: ```console cargo make --cwd ./examples --makefile functions.toml -e DECODE_ENV_VAR=unmapped decode -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: decode [cargo-make] INFO - Profile: development @@ -3079,7 +3079,7 @@ Sample run: ```console cargo make --cwd ./examples --makefile functions.toml -e DECODE_ENV_VAR=unmapped decode-with-default -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: decode-with-default [cargo-make] INFO - Profile: development @@ -3103,7 +3103,7 @@ Sample run: ```console cargo make --cwd ./examples --makefile functions.toml -e DECODE_ENV_VAR=test decode-with-eval -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: functions.toml [cargo-make] INFO - Task: decode-with-eval [cargo-make] INFO - Profile: development @@ -3477,7 +3477,7 @@ In order to specify the minimal version, use the **min_version** in the config s ```toml [config] -min_version = "0.37.5" +min_version = "0.37.6" ``` @@ -3607,7 +3607,7 @@ Example Usage: ```console cargo make --diff-steps --makefile ./examples/override_core.toml post-build -[cargo-make] INFO - cargo make 0.37.5 +[cargo-make] INFO - cargo make 0.37.6 [cargo-make] INFO - Build File: ./examples/override_core.toml [cargo-make] INFO - Task: post-build [cargo-make] INFO - Setting Up Env. @@ -4235,7 +4235,7 @@ You can view the future development items list in the [github project issues](ht * [vim-cargo-make](https://github.com/nastevens/vim-cargo-make) * [vim-duckscript](https://github.com/nastevens/vim-duckscript) - + ### VSCode For debugging purposes there are some example .vscode files located within the [docs/vscode-example](./docs/vscode-example/) directory diff --git a/docs/_config.yml b/docs/_config.yml index 0ec3e5dc9..de80ae153 100755 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -2,4 +2,4 @@ theme: jekyll-theme-cayman title: cargo-make description: Rust task runner and build tool. show_downloads: false -version: 0.37.5 +version: 0.37.6 diff --git a/docs/api/cargo_make/all.html b/docs/api/cargo_make/all.html index 461ca15b0..3f6180a5f 100644 --- a/docs/api/cargo_make/all.html +++ b/docs/api/cargo_make/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/docs/api/cargo_make/fn.get_name.html b/docs/api/cargo_make/fn.get_name.html index 8839cd044..1e50d7559 100644 --- a/docs/api/cargo_make/fn.get_name.html +++ b/docs/api/cargo_make/fn.get_name.html @@ -1 +1,2 @@ -get_name in cargo_make - Rust

Function cargo_make::get_name

source ·
pub(crate) fn get_name() -> String
\ No newline at end of file +get_name in cargo_make - Rust +

Function cargo_make::get_name

source ·
pub(crate) fn get_name() -> String
\ No newline at end of file diff --git a/docs/api/cargo_make/fn.main.html b/docs/api/cargo_make/fn.main.html index 5925eba24..cf910f188 100644 --- a/docs/api/cargo_make/fn.main.html +++ b/docs/api/cargo_make/fn.main.html @@ -1 +1,2 @@ -main in cargo_make - Rust

Function cargo_make::main

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

Function cargo_make::main

source ·
pub(crate) fn main()
\ No newline at end of file diff --git a/docs/api/cargo_make/index.html b/docs/api/cargo_make/index.html index 1893e69ad..112eb8bcd 100644 --- a/docs/api/cargo_make/index.html +++ b/docs/api/cargo_make/index.html @@ -1,4 +1,6 @@ -cargo_make - Rust

Crate cargo_make

source ·
Expand description

cargo-make

+cargo_make - Rust +

Crate cargo_make

source ·
Expand description

cargo-make

Rust task runner and build tool.
The cargo-make task runner enables to define and configure sets of tasks and run them as a flow.
A task is a command or a script to execute.
@@ -16,4 +18,4 @@

Contributing

License

Developed by Sagie Gur-Ari and licensed under the Apache 2 open source license.

-

Functions

\ No newline at end of file +

Functions

\ No newline at end of file diff --git a/docs/api/cli/all.html b/docs/api/cli/all.html index 1c026a535..9082a9749 100644 --- a/docs/api/cli/all.html +++ b/docs/api/cli/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/docs/api/cli/fn.run_cli.html b/docs/api/cli/fn.run_cli.html index cf1374aac..a5952c01d 100644 --- a/docs/api/cli/fn.run_cli.html +++ b/docs/api/cli/fn.run_cli.html @@ -1,2 +1,3 @@ -run_cli in cli - Rust

Function cli::run_cli

source ·
pub fn run_cli(command_name: String, sub_command: bool)
Expand description

Handles the command line arguments and executes the runner.

+run_cli in cli - Rust +

Function cli::run_cli

source ·
pub fn run_cli(command_name: String, sub_command: bool)
Expand description

Handles the command line arguments and executes the runner.

\ No newline at end of file diff --git a/docs/api/cli/index.html b/docs/api/cli/index.html index 22c999713..218cf32b7 100644 --- a/docs/api/cli/index.html +++ b/docs/api/cli/index.html @@ -1,4 +1,6 @@ -cli - Rust

Crate cli

source ·
Expand description

cargo-make

+cli - Rust +

Crate cli

source ·
Expand description

cargo-make

Rust task runner and build tool.
The cargo-make task runner enables to define and configure sets of tasks and run them as a flow.
A task is a command or a script to execute.
@@ -16,4 +18,4 @@

Contributing

License

Developed by Sagie Gur-Ari and licensed under the Apache 2 open source license.

-

Modules

Functions

  • Handles the command line arguments and executes the runner.
\ No newline at end of file +

Modules

Functions

  • Handles the command line arguments and executes the runner.
\ No newline at end of file diff --git a/docs/api/cli/types/enum.CrateDependency.html b/docs/api/cli/types/enum.CrateDependency.html index 82bb7ba51..3b9fadf5d 100644 --- a/docs/api/cli/types/enum.CrateDependency.html +++ b/docs/api/cli/types/enum.CrateDependency.html @@ -1,22 +1,23 @@ -CrateDependency in cli::types - Rust

Variants§

§

Version(String)

Holds the dependency version

§

Info(CrateDependencyInfo)

Hold dependency info

-

Trait Implementations§

source§

impl Clone for CrateDependency

source§

fn clone(&self) -> CrateDependency

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 CrateDependency

source§

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

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

impl<'de> Deserialize<'de> for CrateDependency

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for CrateDependency

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for CrateDependency

source§

fn clone(&self) -> CrateDependency

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 CrateDependency

source§

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

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

impl<'de> Deserialize<'de> for CrateDependency

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for CrateDependency

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.DependencyIdentifier.html b/docs/api/cli/types/enum.DependencyIdentifier.html index 5a428268d..5d13b89a0 100644 --- a/docs/api/cli/types/enum.DependencyIdentifier.html +++ b/docs/api/cli/types/enum.DependencyIdentifier.html @@ -1,32 +1,33 @@ -DependencyIdentifier in cli::types - Rust
pub enum DependencyIdentifier {
+DependencyIdentifier in cli::types - Rust
+    
pub enum DependencyIdentifier {
     Definition(TaskIdentifier),
     Name(String),
 }
Expand description

A dependency, defined either as a string or as a Dependency object

-

Variants§

§

Definition(TaskIdentifier)

A full dependency definion (potentially in a different file)

+

Variants§

§

Definition(TaskIdentifier)

A full dependency definion (potentially in a different file)

§

Name(String)

A string dependency definition (its name in the current file)

-

Implementations§

source§

impl DependencyIdentifier

source

pub fn name(&self) -> &str

Get the name of a dependency

-
source

pub fn with_namespace(self, namespace: &str) -> Self

Adorn the TaskIdentifier with a namespace

-

Trait Implementations§

source§

impl Clone for DependencyIdentifier

source§

fn clone(&self) -> DependencyIdentifier

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 DependencyIdentifier

source§

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

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

impl<'de> Deserialize<'de> for DependencyIdentifier

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<&str> for DependencyIdentifier

source§

fn from(name: &str) -> Self

Converts to this type from the input type.
source§

impl Into<TaskIdentifier> for DependencyIdentifier

source§

fn into(self) -> TaskIdentifier

Converts this type into the (usually inferred) input type.
source§

impl PartialEq<DependencyIdentifier> for DependencyIdentifier

source§

fn eq(&self, other: &DependencyIdentifier) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for DependencyIdentifier

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for DependencyIdentifier

source§

impl StructuralEq for DependencyIdentifier

source§

impl StructuralPartialEq for DependencyIdentifier

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
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
source§

impl<Q, K> Equivalent<K> for Qwhere +

Implementations§

source§

impl DependencyIdentifier

source

pub fn name(&self) -> &str

Get the name of a dependency

+
source

pub fn with_namespace(self, namespace: &str) -> Self

Adorn the TaskIdentifier with a namespace

+

Trait Implementations§

source§

impl Clone for DependencyIdentifier

source§

fn clone(&self) -> DependencyIdentifier

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 DependencyIdentifier

source§

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

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

impl<'de> Deserialize<'de> for DependencyIdentifier

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<&str> for DependencyIdentifier

source§

fn from(name: &str) -> Self

Converts to this type from the input type.
source§

impl Into<TaskIdentifier> for DependencyIdentifier

source§

fn into(self) -> TaskIdentifier

Converts this type into the (usually inferred) input type.
source§

impl PartialEq for DependencyIdentifier

source§

fn eq(&self, other: &DependencyIdentifier) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for DependencyIdentifier

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for DependencyIdentifier

source§

impl StructuralEq for DependencyIdentifier

source§

impl StructuralPartialEq for DependencyIdentifier

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
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
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ K: Borrow<Q> + ?Sized,
§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.DeprecationInfo.html b/docs/api/cli/types/enum.DeprecationInfo.html index 897285030..da68f198a 100644 --- a/docs/api/cli/types/enum.DeprecationInfo.html +++ b/docs/api/cli/types/enum.DeprecationInfo.html @@ -1,24 +1,25 @@ -DeprecationInfo in cli::types - Rust
pub enum DeprecationInfo {
+DeprecationInfo in cli::types - Rust
+    
pub enum DeprecationInfo {
     Boolean(bool),
     Message(String),
 }
Expand description

Holds deprecation info such as true/false/message

-

Variants§

§

Boolean(bool)

True/False flag (true is deprecated)

+

Variants§

§

Boolean(bool)

True/False flag (true is deprecated)

§

Message(String)

Deprecation message

-

Trait Implementations§

source§

impl Clone for DeprecationInfo

source§

fn clone(&self) -> DeprecationInfo

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 DeprecationInfo

source§

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

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

impl<'de> Deserialize<'de> for DeprecationInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<DeprecationInfo> for DeprecationInfo

source§

fn eq(&self, other: &DeprecationInfo) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for DeprecationInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for DeprecationInfo

source§

fn clone(&self) -> DeprecationInfo

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 DeprecationInfo

source§

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

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

impl<'de> Deserialize<'de> for DeprecationInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for DeprecationInfo

source§

fn eq(&self, other: &DeprecationInfo) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for DeprecationInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.EnvFile.html b/docs/api/cli/types/enum.EnvFile.html index a7a4ab8fc..5dc388956 100644 --- a/docs/api/cli/types/enum.EnvFile.html +++ b/docs/api/cli/types/enum.EnvFile.html @@ -1,22 +1,23 @@ -EnvFile in cli::types - Rust

Enum cli::types::EnvFile

source ·
pub enum EnvFile {
+EnvFile in cli::types - Rust
+    

Enum cli::types::EnvFile

source ·
pub enum EnvFile {
     Path(String),
     Info(EnvFileInfo),
 }
Expand description

Holds the env file path and attributes

-

Variants§

§

Path(String)

The file path as string

+

Variants§

§

Path(String)

The file path as string

§

Info(EnvFileInfo)

Extended info object for env file

-

Trait Implementations§

source§

impl Clone for EnvFile

source§

fn clone(&self) -> EnvFile

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 EnvFile

source§

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

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

impl<'de> Deserialize<'de> for EnvFile

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvFile

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for EnvFile

source§

fn clone(&self) -> EnvFile

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 EnvFile

source§

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

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

impl<'de> Deserialize<'de> for EnvFile

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvFile

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.EnvValue.html b/docs/api/cli/types/enum.EnvValue.html index 37fc6b59a..ca0da080e 100644 --- a/docs/api/cli/types/enum.EnvValue.html +++ b/docs/api/cli/types/enum.EnvValue.html @@ -1,4 +1,5 @@ -EnvValue in cli::types - Rust

Enum cli::types::EnvValue

source ·
pub enum EnvValue {
+EnvValue in cli::types - Rust
+    

Enum cli::types::EnvValue

source ·
pub enum EnvValue {
     Value(String),
     Boolean(bool),
     Number(isize),
@@ -10,7 +11,7 @@
     PathGlob(EnvValuePathGlob),
     Profile(IndexMap<String, EnvValue>),
 }
Expand description

Holds the env value or script

-

Variants§

§

Value(String)

The value as string

+

Variants§

§

Value(String)

The value as string

§

Boolean(bool)

The value as boolean

§

Number(isize)

The value as number

§

List(Vec<String>)

The value as a list of strings

@@ -20,19 +21,19 @@
§

Conditional(EnvValueConditioned)

Conditional env value

§

PathGlob(EnvValuePathGlob)

Path glob

§

Profile(IndexMap<String, EnvValue>)

Profile env

-

Trait Implementations§

source§

impl Clone for EnvValue

source§

fn clone(&self) -> EnvValue

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 EnvValue

source§

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

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

impl<'de> Deserialize<'de> for EnvValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for EnvValue

source§

fn clone(&self) -> EnvValue

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 EnvValue

source§

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

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

impl<'de> Deserialize<'de> for EnvValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.Extend.html b/docs/api/cli/types/enum.Extend.html index 6e5e5c43d..8d8b0ce87 100644 --- a/docs/api/cli/types/enum.Extend.html +++ b/docs/api/cli/types/enum.Extend.html @@ -1,24 +1,25 @@ -Extend in cli::types - Rust

Enum cli::types::Extend

source ·
pub enum Extend {
+Extend in cli::types - Rust
+    

Enum cli::types::Extend

source ·
pub enum Extend {
     Path(String),
     Options(ExtendOptions),
     List(Vec<ExtendOptions>),
 }
Expand description

Holds makefile extend value

-

Variants§

§

Path(String)

Path to another makefile

+

Variants§

§

Path(String)

Path to another makefile

§

Options(ExtendOptions)

Extend options for more fine tune control

§

List(Vec<ExtendOptions>)

Multiple extends list

-

Trait Implementations§

source§

impl Clone for Extend

source§

fn clone(&self) -> Extend

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 Extend

source§

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

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

impl<'de> Deserialize<'de> for Extend

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Extend

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for Extend

source§

fn clone(&self) -> Extend

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 Extend

source§

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

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

impl<'de> Deserialize<'de> for Extend

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Extend

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.InstallCrate.html b/docs/api/cli/types/enum.InstallCrate.html index 8880bfac6..029d6242e 100644 --- a/docs/api/cli/types/enum.InstallCrate.html +++ b/docs/api/cli/types/enum.InstallCrate.html @@ -1,30 +1,31 @@ -InstallCrate in cli::types - Rust

Enum cli::types::InstallCrate

source ·
pub enum InstallCrate {
+InstallCrate in cli::types - Rust
+    

Enum cli::types::InstallCrate

source ·
pub enum InstallCrate {
     Enabled(bool),
     Value(String),
     CrateInfo(InstallCrateInfo),
     RustupComponentInfo(InstallRustupComponentInfo),
     CargoPluginInfo(InstallCargoPluginInfo),
 }
Expand description

Install crate name or params

-

Variants§

§

Enabled(bool)

Enables to prevent installation flow

+

Variants§

§

Enabled(bool)

Enables to prevent installation flow

§

Value(String)

The value as string

§

CrateInfo(InstallCrateInfo)

Install crate params

§

RustupComponentInfo(InstallRustupComponentInfo)

Install rustup component params

§

CargoPluginInfo(InstallCargoPluginInfo)

Install cargo plugin info

-

Trait Implementations§

source§

impl Clone for InstallCrate

source§

fn clone(&self) -> InstallCrate

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 InstallCrate

source§

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

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

impl<'de> Deserialize<'de> for InstallCrate

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<InstallCrate> for InstallCrate

source§

fn eq(&self, other: &InstallCrate) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for InstallCrate

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for InstallCrate

source§

fn clone(&self) -> InstallCrate

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 InstallCrate

source§

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

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

impl<'de> Deserialize<'de> for InstallCrate

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for InstallCrate

source§

fn eq(&self, other: &InstallCrate) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for InstallCrate

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.RunTaskInfo.html b/docs/api/cli/types/enum.RunTaskInfo.html index bad7bb2d3..e4be42def 100644 --- a/docs/api/cli/types/enum.RunTaskInfo.html +++ b/docs/api/cli/types/enum.RunTaskInfo.html @@ -1,24 +1,25 @@ -RunTaskInfo in cli::types - Rust

Enum cli::types::RunTaskInfo

source ·
pub enum RunTaskInfo {
+RunTaskInfo in cli::types - Rust
+    

Enum cli::types::RunTaskInfo

source ·
pub enum RunTaskInfo {
     Name(String),
     Details(RunTaskDetails),
     Routing(Vec<RunTaskRoutingInfo>),
 }
Expand description

Run task info

-

Variants§

§

Name(String)

Task name

+

Variants§

§

Name(String)

Task name

§

Details(RunTaskDetails)

Run Task Info

§

Routing(Vec<RunTaskRoutingInfo>)

Task conditional selector

-

Trait Implementations§

source§

impl Clone for RunTaskInfo

source§

fn clone(&self) -> RunTaskInfo

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 RunTaskInfo

source§

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

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

impl<'de> Deserialize<'de> for RunTaskInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RunTaskInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for RunTaskInfo

source§

fn clone(&self) -> RunTaskInfo

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 RunTaskInfo

source§

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

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

impl<'de> Deserialize<'de> for RunTaskInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RunTaskInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.RunTaskName.html b/docs/api/cli/types/enum.RunTaskName.html index f40958493..1ce059b7c 100644 --- a/docs/api/cli/types/enum.RunTaskName.html +++ b/docs/api/cli/types/enum.RunTaskName.html @@ -1,24 +1,25 @@ -RunTaskName in cli::types - Rust

Enum cli::types::RunTaskName

source ·
pub enum RunTaskName {
+RunTaskName in cli::types - Rust
+    

Enum cli::types::RunTaskName

source ·
pub enum RunTaskName {
     Single(String),
     Multiple(Vec<String>),
 }
Expand description

Holds the run task name/s

-

Variants§

§

Single(String)

Single task name

+

Variants§

§

Single(String)

Single task name

§

Multiple(Vec<String>)

Multiple task names

-

Trait Implementations§

source§

impl Clone for RunTaskName

source§

fn clone(&self) -> RunTaskName

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 RunTaskName

source§

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

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

impl<'de> Deserialize<'de> for RunTaskName

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<RunTaskName> for RunTaskName

source§

fn eq(&self, other: &RunTaskName) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for RunTaskName

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StructuralPartialEq for RunTaskName

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for RunTaskName

source§

fn clone(&self) -> RunTaskName

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 RunTaskName

source§

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

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

impl<'de> Deserialize<'de> for RunTaskName

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for RunTaskName

source§

fn eq(&self, other: &RunTaskName) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for RunTaskName

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StructuralPartialEq for RunTaskName

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.ScriptValue.html b/docs/api/cli/types/enum.ScriptValue.html index 18c251f32..b967bf80a 100644 --- a/docs/api/cli/types/enum.ScriptValue.html +++ b/docs/api/cli/types/enum.ScriptValue.html @@ -1,26 +1,27 @@ -ScriptValue in cli::types - Rust

Enum cli::types::ScriptValue

source ·
pub enum ScriptValue {
+ScriptValue in cli::types - Rust
+    

Enum cli::types::ScriptValue

source ·
pub enum ScriptValue {
     SingleLine(String),
     Text(Vec<String>),
     File(FileScriptValue),
     Sections(ScriptSections),
 }
Expand description

Script value (text, file name, …)

-

Variants§

§

SingleLine(String)

The script text as single line

+

Variants§

§

SingleLine(String)

The script text as single line

§

Text(Vec<String>)

The script text lines

§

File(FileScriptValue)

Script file name

§

Sections(ScriptSections)

Script content split to multiple parts to enable fine tuned extension

-

Trait Implementations§

source§

impl Clone for ScriptValue

source§

fn clone(&self) -> ScriptValue

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 ScriptValue

source§

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

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

impl<'de> Deserialize<'de> for ScriptValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ScriptValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for ScriptValue

source§

fn clone(&self) -> ScriptValue

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 ScriptValue

source§

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

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

impl<'de> Deserialize<'de> for ScriptValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ScriptValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.TaskWatchOptions.html b/docs/api/cli/types/enum.TaskWatchOptions.html index 80cb07100..3242578d5 100644 --- a/docs/api/cli/types/enum.TaskWatchOptions.html +++ b/docs/api/cli/types/enum.TaskWatchOptions.html @@ -1,24 +1,25 @@ -TaskWatchOptions in cli::types - Rust
pub enum TaskWatchOptions {
+TaskWatchOptions in cli::types - Rust
+    
pub enum TaskWatchOptions {
     Boolean(bool),
     Options(WatchOptions),
 }
Expand description

Holds watch options or simple true/false value

-

Variants§

§

Boolean(bool)

True/False to enable/disable watch

+

Variants§

§

Boolean(bool)

True/False to enable/disable watch

§

Options(WatchOptions)

Extended configuration for watch

-

Trait Implementations§

source§

impl Clone for TaskWatchOptions

source§

fn clone(&self) -> TaskWatchOptions

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 TaskWatchOptions

source§

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

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

impl<'de> Deserialize<'de> for TaskWatchOptions

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<TaskWatchOptions> for TaskWatchOptions

source§

fn eq(&self, other: &TaskWatchOptions) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for TaskWatchOptions

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for TaskWatchOptions

source§

fn clone(&self) -> TaskWatchOptions

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 TaskWatchOptions

source§

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

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

impl<'de> Deserialize<'de> for TaskWatchOptions

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for TaskWatchOptions

source§

fn eq(&self, other: &TaskWatchOptions) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for TaskWatchOptions

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.ToolchainSpecifier.html b/docs/api/cli/types/enum.ToolchainSpecifier.html index 2438339b1..d9b2dd01d 100644 --- a/docs/api/cli/types/enum.ToolchainSpecifier.html +++ b/docs/api/cli/types/enum.ToolchainSpecifier.html @@ -1,34 +1,35 @@ -ToolchainSpecifier in cli::types - Rust
pub enum ToolchainSpecifier {
+ToolchainSpecifier in cli::types - Rust
+    
pub enum ToolchainSpecifier {
     Simple(String),
     Bounded(ToolchainBoundedSpecifier),
 }
Expand description

A toolchain, defined either as a string (following the rustup syntax) or a ToolchainBoundedSpecifier.

-

Variants§

§

Simple(String)

A string specifying the channel name of the toolchain

+

Variants§

§

Simple(String)

A string specifying the channel name of the toolchain

§

Bounded(ToolchainBoundedSpecifier)

A toolchain with a minimum version bound

-

Implementations§

source§

impl ToolchainSpecifier

source

pub fn channel(&self) -> &str

Return the channel of the toolchain to look for

-
source

pub fn min_version(&self) -> Option<&str>

Return the minimal version, if any, to look for

-

Trait Implementations§

source§

impl Clone for ToolchainSpecifier

source§

fn clone(&self) -> ToolchainSpecifier

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 ToolchainSpecifier

source§

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

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

impl<'de> Deserialize<'de> for ToolchainSpecifier

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ToolchainSpecifier

source§

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

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

impl From<&str> for ToolchainSpecifier

source§

fn from(channel: &str) -> Self

Converts to this type from the input type.
source§

impl From<String> for ToolchainSpecifier

source§

fn from(channel: String) -> Self

Converts to this type from the input type.
source§

impl PartialEq<ToolchainSpecifier> for ToolchainSpecifier

source§

fn eq(&self, other: &ToolchainSpecifier) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ToolchainSpecifier

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for ToolchainSpecifier

source§

impl StructuralEq for ToolchainSpecifier

source§

impl StructuralPartialEq for ToolchainSpecifier

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
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
source§

impl<Q, K> Equivalent<K> for Qwhere +

Implementations§

source§

impl ToolchainSpecifier

source

pub fn channel(&self) -> &str

Return the channel of the toolchain to look for

+
source

pub fn min_version(&self) -> Option<&str>

Return the minimal version, if any, to look for

+

Trait Implementations§

source§

impl Clone for ToolchainSpecifier

source§

fn clone(&self) -> ToolchainSpecifier

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 ToolchainSpecifier

source§

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

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

impl<'de> Deserialize<'de> for ToolchainSpecifier

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ToolchainSpecifier

source§

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

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

impl From<&str> for ToolchainSpecifier

source§

fn from(channel: &str) -> Self

Converts to this type from the input type.
source§

impl From<String> for ToolchainSpecifier

source§

fn from(channel: String) -> Self

Converts to this type from the input type.
source§

impl PartialEq for ToolchainSpecifier

source§

fn eq(&self, other: &ToolchainSpecifier) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ToolchainSpecifier

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for ToolchainSpecifier

source§

impl StructuralEq for ToolchainSpecifier

source§

impl StructuralPartialEq for ToolchainSpecifier

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
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
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ K: Borrow<Q> + ?Sized,
§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/enum.UnstableFeature.html b/docs/api/cli/types/enum.UnstableFeature.html index cdd5bca94..43333b010 100644 --- a/docs/api/cli/types/enum.UnstableFeature.html +++ b/docs/api/cli/types/enum.UnstableFeature.html @@ -1,32 +1,33 @@ -UnstableFeature in cli::types - Rust
pub enum UnstableFeature {
+UnstableFeature in cli::types - Rust
+    
pub enum UnstableFeature {
     CtrlCHandling,
 }
Expand description

Unstable cargo-make feature

-

Variants§

§

CtrlCHandling

Gracefully shutdown and then kill the running command on Ctrl+C signal

-

Implementations§

source§

impl UnstableFeature

source

pub fn to_env_name(&self) -> String

Creates the env. variable name associated to the feature

-
source

pub fn is_env_set(&self) -> bool

Is the corresponding env. variable set?

-

Trait Implementations§

source§

impl Clone for UnstableFeature

source§

fn clone(&self) -> UnstableFeature

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 UnstableFeature

source§

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

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

impl<'de> Deserialize<'de> for UnstableFeature

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for UnstableFeature

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where +

Variants§

§

CtrlCHandling

Gracefully shutdown and then kill the running command on Ctrl+C signal

+

Implementations§

source§

impl UnstableFeature

source

pub fn to_env_name(&self) -> String

Creates the env. variable name associated to the feature

+
source

pub fn is_env_set(&self) -> bool

Is the corresponding env. variable set?

+

Trait Implementations§

source§

impl Clone for UnstableFeature

source§

fn clone(&self) -> UnstableFeature

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 UnstableFeature

source§

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

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

impl<'de> Deserialize<'de> for UnstableFeature

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for UnstableFeature

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<UnstableFeature> for UnstableFeature

source§

fn eq(&self, other: &UnstableFeature) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for UnstableFeature

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for UnstableFeature

source§

impl Eq for UnstableFeature

source§

impl StructuralEq for UnstableFeature

source§

impl StructuralPartialEq for UnstableFeature

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
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
source§

impl<Q, K> Equivalent<K> for Qwhere + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for UnstableFeature

source§

fn eq(&self, other: &UnstableFeature) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for UnstableFeature

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for UnstableFeature

source§

impl Eq for UnstableFeature

source§

impl StructuralEq for UnstableFeature

source§

impl StructuralPartialEq for UnstableFeature

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
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
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ K: Borrow<Q> + ?Sized,
§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/fn.get_platform_name.html b/docs/api/cli/types/fn.get_platform_name.html index 51f2fb962..4fa18bd33 100644 --- a/docs/api/cli/types/fn.get_platform_name.html +++ b/docs/api/cli/types/fn.get_platform_name.html @@ -1,2 +1,3 @@ -get_platform_name in cli::types - Rust

Function cli::types::get_platform_name

source ·
pub fn get_platform_name() -> String
Expand description

Returns the platform name

+get_platform_name in cli::types - Rust +

Function cli::types::get_platform_name

source ·
pub fn get_platform_name() -> String
Expand description

Returns the platform name

\ No newline at end of file diff --git a/docs/api/cli/types/index.html b/docs/api/cli/types/index.html index a46d162e4..75cdc9cb8 100644 --- a/docs/api/cli/types/index.html +++ b/docs/api/cli/types/index.html @@ -1,4 +1,5 @@ -cli::types - Rust

Module cli::types

source ·
Expand description

types

+cli::types - Rust +

Module cli::types

source ·
Expand description

types

Defines the various types and aliases used by cargo-make.

-

Structs

Enums

Functions

\ No newline at end of file +

Structs

Enums

Functions

\ No newline at end of file diff --git a/docs/api/cli/types/struct.Cache.html b/docs/api/cli/types/struct.Cache.html index def32cb1c..3790bcc0f 100644 --- a/docs/api/cli/types/struct.Cache.html +++ b/docs/api/cli/types/struct.Cache.html @@ -1,23 +1,24 @@ -Cache in cli::types - Rust

Struct cli::types::Cache

source ·
pub struct Cache {
+Cache in cli::types - Rust
+    

Struct cli::types::Cache

source ·
pub struct Cache {
     pub file_name: Option<String>,
     pub last_update_check: Option<u64>,
 }
Expand description

Holds persisted data used by cargo-make

-

Fields§

§file_name: Option<String>

File from which the cache file was loaded from

-
§last_update_check: Option<u64>

Holds last update check with returned no updates result

-

Implementations§

source§

impl Cache

source

pub fn new() -> Cache

Returns new instance

-

Trait Implementations§

source§

impl Clone for Cache

source§

fn clone(&self) -> Cache

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 Cache

source§

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

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

impl Default for Cache

source§

fn default() -> Cache

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Cache

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Cache

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Cache

§

impl Send for Cache

§

impl Sync for Cache

§

impl Unpin for Cache

§

impl UnwindSafe for Cache

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§file_name: Option<String>

File from which the cache file was loaded from

+
§last_update_check: Option<u64>

Holds last update check with returned no updates result

+

Implementations§

source§

impl Cache

source

pub fn new() -> Cache

Returns new instance

+

Trait Implementations§

source§

impl Clone for Cache

source§

fn clone(&self) -> Cache

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 Cache

source§

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

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

impl Default for Cache

source§

fn default() -> Cache

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Cache

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Cache

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Cache

§

impl Send for Cache

§

impl Sync for Cache

§

impl Unpin for Cache

§

impl UnwindSafe for Cache

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.CliArgs.html b/docs/api/cli/types/struct.CliArgs.html index ef6488fef..e357579f2 100644 --- a/docs/api/cli/types/struct.CliArgs.html +++ b/docs/api/cli/types/struct.CliArgs.html @@ -1,4 +1,5 @@ -CliArgs in cli::types - Rust

Struct cli::types::CliArgs

source ·
pub struct CliArgs {
Show 25 fields +CliArgs in cli::types - Rust +

Struct cli::types::CliArgs

source ·
pub struct CliArgs {
Show 25 fields pub command: String, pub build_file: Option<String>, pub task: String, @@ -25,42 +26,42 @@ pub print_time_summary: bool, pub hide_uninteresting: bool,
}
Expand description

Holds CLI args

-

Fields§

§command: String

The command name

-
§build_file: Option<String>

The external Makefile.toml path

-
§task: String

The task to invoke

-
§profile: Option<String>

The profile name

-
§log_level: String

Log level name

-
§disable_color: bool

Disables colorful output

-
§cwd: Option<String>

Current working directory

-
§env: Option<Vec<String>>

Environment variables

-
§env_file: Option<String>

Environment variables file

-
§disable_workspace: bool

Prevent workspace support

-
§disable_on_error: bool

Prevent on error flow even if defined in config section

-
§allow_private: bool

Allow invocation of private tasks

-
§skip_init_end_tasks: bool

If true, the init and end tasks are skipped

-
§skip_tasks_pattern: Option<String>

Skip tasks that match the provided pattern

-
§print_only: bool

Only print the execution plan

-
§list_all_steps: bool

List all known steps

-
§list_category_steps: Option<String>

List steps for a given category

-
§diff_execution_plan: bool

Diff flows

-
§disable_check_for_updates: bool

Disables the update check during startup

-
§experimental: bool

Allows access unsupported experimental predefined tasks

-
§arguments: Option<Vec<String>>

additional command line arguments

-
§output_format: String

Output format

-
§output_file: Option<String>

Output file name

-
§print_time_summary: bool

Print time summary at end of the flow

-
§hide_uninteresting: bool

Hide any minor tasks such as pre/post hooks

-

Implementations§

source§

impl CliArgs

source

pub fn new() -> CliArgs

Creates and returns a new instance.

-

Trait Implementations§

source§

impl Clone for CliArgs

source§

fn clone(&self) -> CliArgs

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 CliArgs

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§command: String

The command name

+
§build_file: Option<String>

The external Makefile.toml path

+
§task: String

The task to invoke

+
§profile: Option<String>

The profile name

+
§log_level: String

Log level name

+
§disable_color: bool

Disables colorful output

+
§cwd: Option<String>

Current working directory

+
§env: Option<Vec<String>>

Environment variables

+
§env_file: Option<String>

Environment variables file

+
§disable_workspace: bool

Prevent workspace support

+
§disable_on_error: bool

Prevent on error flow even if defined in config section

+
§allow_private: bool

Allow invocation of private tasks

+
§skip_init_end_tasks: bool

If true, the init and end tasks are skipped

+
§skip_tasks_pattern: Option<String>

Skip tasks that match the provided pattern

+
§print_only: bool

Only print the execution plan

+
§list_all_steps: bool

List all known steps

+
§list_category_steps: Option<String>

List steps for a given category

+
§diff_execution_plan: bool

Diff flows

+
§disable_check_for_updates: bool

Disables the update check during startup

+
§experimental: bool

Allows access unsupported experimental predefined tasks

+
§arguments: Option<Vec<String>>

additional command line arguments

+
§output_format: String

Output format

+
§output_file: Option<String>

Output file name

+
§print_time_summary: bool

Print time summary at end of the flow

+
§hide_uninteresting: bool

Hide any minor tasks such as pre/post hooks

+

Implementations§

source§

impl CliArgs

source

pub fn new() -> CliArgs

Creates and returns a new instance.

+

Trait Implementations§

source§

impl Clone for CliArgs

source§

fn clone(&self) -> CliArgs

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 CliArgs

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.CommandSpec.html b/docs/api/cli/types/struct.CommandSpec.html index a908c9529..cafc817dc 100644 --- a/docs/api/cli/types/struct.CommandSpec.html +++ b/docs/api/cli/types/struct.CommandSpec.html @@ -1,18 +1,19 @@ -CommandSpec in cli::types - Rust

Struct cli::types::CommandSpec

source ·
pub struct CommandSpec {
+CommandSpec in cli::types - Rust
+    

Struct cli::types::CommandSpec

source ·
pub struct CommandSpec {
     pub command: String,
     pub args: Option<Vec<String>>,
 }
Expand description

Command info

-

Fields§

§command: String

The command to execute

-
§args: Option<Vec<String>>

The command args

-

Trait Implementations§

source§

impl Debug for CommandSpec

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§command: String

The command to execute

+
§args: Option<Vec<String>>

The command args

+

Trait Implementations§

source§

impl Debug for CommandSpec

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.Config.html b/docs/api/cli/types/struct.Config.html index 7c8b3d6a1..191d5f461 100644 --- a/docs/api/cli/types/struct.Config.html +++ b/docs/api/cli/types/struct.Config.html @@ -1,4 +1,5 @@ -Config in cli::types - Rust

Struct cli::types::Config

source ·
pub struct Config {
+Config in cli::types - Rust
+    

Struct cli::types::Config

source ·
pub struct Config {
     pub config: ConfigSection,
     pub env_files: Vec<EnvFile>,
     pub env: IndexMap<String, EnvValue>,
@@ -6,26 +7,26 @@
     pub tasks: IndexMap<String, Task>,
     pub plugins: Option<Plugins>,
 }
Expand description

Holds the entire configuration such as task definitions and env vars

-

Fields§

§config: ConfigSection

Runtime config

-
§env_files: Vec<EnvFile>

The env files to setup before running the flow

-
§env: IndexMap<String, EnvValue>

The env vars to setup before running the flow

-
§env_scripts: Vec<String>

The env scripts to execute before running the flow

-
§tasks: IndexMap<String, Task>

All task definitions

-
§plugins: Option<Plugins>

All plugin definitions

-

Implementations§

source§

impl Config

source

pub fn apply(self: &mut Config, modify_config: &ModifyConfig)

Apply modifications

-

Trait Implementations§

source§

impl Clone for Config

source§

fn clone(&self) -> Config

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 Config

source§

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

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

impl<'de> Deserialize<'de> for Config

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Config

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§config: ConfigSection

Runtime config

+
§env_files: Vec<EnvFile>

The env files to setup before running the flow

+
§env: IndexMap<String, EnvValue>

The env vars to setup before running the flow

+
§env_scripts: Vec<String>

The env scripts to execute before running the flow

+
§tasks: IndexMap<String, Task>

All task definitions

+
§plugins: Option<Plugins>

All plugin definitions

+

Implementations§

source§

impl Config

source

pub fn apply(self: &mut Config, modify_config: &ModifyConfig)

Apply modifications

+

Trait Implementations§

source§

impl Clone for Config

source§

fn clone(&self) -> Config

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 Config

source§

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

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

impl<'de> Deserialize<'de> for Config

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Config

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.ConfigSection.html b/docs/api/cli/types/struct.ConfigSection.html index 52ddb902f..2196b5bd7 100644 --- a/docs/api/cli/types/struct.ConfigSection.html +++ b/docs/api/cli/types/struct.ConfigSection.html @@ -1,4 +1,5 @@ -ConfigSection in cli::types - Rust

Struct cli::types::ConfigSection

source ·
pub struct ConfigSection {
Show 21 fields +ConfigSection in cli::types - Rust +

Struct cli::types::ConfigSection

source ·
pub struct ConfigSection {
Show 21 fields pub skip_core_tasks: Option<bool>, pub modify_core_tasks: Option<ModifyConfig>, pub init_task: Option<String>, @@ -21,48 +22,48 @@ pub mac_load_script: Option<ScriptValue>, pub unstable_features: Option<IndexSet<UnstableFeature>>,
}
Expand description

Holds the configuration found in the makefile toml config section.

-

Fields§

§skip_core_tasks: Option<bool>

If true, the default core tasks will not be loaded

-
§modify_core_tasks: Option<ModifyConfig>

Modify core tasks config

-
§init_task: Option<String>

Init task name which will be invoked at the start of every run

-
§end_task: Option<String>

End task name which will be invoked at the end of every run

-
§on_error_task: Option<String>

The name of the task to run in case of any error during the invocation of the flow

-
§legacy_migration_task: Option<String>

The name of the task which runs legacy migration flows

-
§additional_profiles: Option<Vec<String>>

Additional profile names to load

-
§min_version: Option<String>

Minimum cargo-make/makers version

-
§default_to_workspace: Option<bool>

The task.workspace default value

-
§skip_git_env_info: Option<bool>

do not load git env info (save on perf)

-
§skip_rust_env_info: Option<bool>

do not load rust env info (save on perf)

-
§skip_crate_env_info: Option<bool>

do not load current crate env info (save on perf)

-
§reduce_output: Option<bool>

True to reduce console output for non CI execution

-
§time_summary: Option<bool>

True to print time summary at the end of the flow

-
§load_cargo_aliases: Option<bool>

Automatically load cargo aliases as cargo-make tasks

-
§main_project_member: Option<String>

The project information member (used by workspaces)

-
§load_script: Option<ScriptValue>

Invoked while loading the descriptor file but before loading any extended descriptor

-
§linux_load_script: Option<ScriptValue>

acts like load_script if runtime OS is Linux (takes precedence over load_script)

-
§windows_load_script: Option<ScriptValue>

acts like load_script if runtime OS is Windows (takes precedence over load_script)

-
§mac_load_script: Option<ScriptValue>

acts like load_script if runtime OS is Mac (takes precedence over load_script)

-
§unstable_features: Option<IndexSet<UnstableFeature>>

Enables unstable cargo-make features

-

Implementations§

source§

impl ConfigSection

source

pub fn new() -> ConfigSection

Creates and returns a new instance.

-
source

pub fn apply(self: &mut ConfigSection, modify_config: &ModifyConfig)

Apply modifications

-
source

pub fn extend(self: &mut ConfigSection, extended: &mut ConfigSection)

Copies values from the config section into self.

+

Fields§

§skip_core_tasks: Option<bool>

If true, the default core tasks will not be loaded

+
§modify_core_tasks: Option<ModifyConfig>

Modify core tasks config

+
§init_task: Option<String>

Init task name which will be invoked at the start of every run

+
§end_task: Option<String>

End task name which will be invoked at the end of every run

+
§on_error_task: Option<String>

The name of the task to run in case of any error during the invocation of the flow

+
§legacy_migration_task: Option<String>

The name of the task which runs legacy migration flows

+
§additional_profiles: Option<Vec<String>>

Additional profile names to load

+
§min_version: Option<String>

Minimum cargo-make/makers version

+
§default_to_workspace: Option<bool>

The task.workspace default value

+
§skip_git_env_info: Option<bool>

do not load git env info (save on perf)

+
§skip_rust_env_info: Option<bool>

do not load rust env info (save on perf)

+
§skip_crate_env_info: Option<bool>

do not load current crate env info (save on perf)

+
§reduce_output: Option<bool>

True to reduce console output for non CI execution

+
§time_summary: Option<bool>

True to print time summary at the end of the flow

+
§load_cargo_aliases: Option<bool>

Automatically load cargo aliases as cargo-make tasks

+
§main_project_member: Option<String>

The project information member (used by workspaces)

+
§load_script: Option<ScriptValue>

Invoked while loading the descriptor file but before loading any extended descriptor

+
§linux_load_script: Option<ScriptValue>

acts like load_script if runtime OS is Linux (takes precedence over load_script)

+
§windows_load_script: Option<ScriptValue>

acts like load_script if runtime OS is Windows (takes precedence over load_script)

+
§mac_load_script: Option<ScriptValue>

acts like load_script if runtime OS is Mac (takes precedence over load_script)

+
§unstable_features: Option<IndexSet<UnstableFeature>>

Enables unstable cargo-make features

+

Implementations§

source§

impl ConfigSection

source

pub fn new() -> ConfigSection

Creates and returns a new instance.

+
source

pub fn apply(self: &mut ConfigSection, modify_config: &ModifyConfig)

Apply modifications

+
source

pub fn extend(self: &mut ConfigSection, extended: &mut ConfigSection)

Copies values from the config section into self.

Arguments
  • task - The task to copy from
-
source

pub fn get_load_script(self: &ConfigSection) -> Option<ScriptValue>

Returns the load script based on the current platform

-

Trait Implementations§

source§

impl Clone for ConfigSection

source§

fn clone(&self) -> ConfigSection

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 ConfigSection

source§

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

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

impl Default for ConfigSection

source§

fn default() -> ConfigSection

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ConfigSection

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ConfigSection

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn get_load_script(self: &ConfigSection) -> Option<ScriptValue>

Returns the load script based on the current platform

+

Trait Implementations§

source§

impl Clone for ConfigSection

source§

fn clone(&self) -> ConfigSection

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 ConfigSection

source§

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

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

impl Default for ConfigSection

source§

fn default() -> ConfigSection

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ConfigSection

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ConfigSection

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.CrateDependencyInfo.html b/docs/api/cli/types/struct.CrateDependencyInfo.html index c60b709bf..5aa537ab5 100644 --- a/docs/api/cli/types/struct.CrateDependencyInfo.html +++ b/docs/api/cli/types/struct.CrateDependencyInfo.html @@ -1,20 +1,21 @@ -CrateDependencyInfo in cli::types - Rust
pub struct CrateDependencyInfo {
+CrateDependencyInfo in cli::types - Rust
+    
pub struct CrateDependencyInfo {
     pub path: Option<String>,
 }
Expand description

Holds crate dependency info.

-

Fields§

§path: Option<String>

Holds the dependency path

-

Trait Implementations§

source§

impl Clone for CrateDependencyInfo

source§

fn clone(&self) -> CrateDependencyInfo

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 CrateDependencyInfo

source§

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

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

impl<'de> Deserialize<'de> for CrateDependencyInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for CrateDependencyInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§path: Option<String>

Holds the dependency path

+

Trait Implementations§

source§

impl Clone for CrateDependencyInfo

source§

fn clone(&self) -> CrateDependencyInfo

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 CrateDependencyInfo

source§

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

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

impl<'de> Deserialize<'de> for CrateDependencyInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for CrateDependencyInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.CrateInfo.html b/docs/api/cli/types/struct.CrateInfo.html index 14e455767..51c84cca8 100644 --- a/docs/api/cli/types/struct.CrateInfo.html +++ b/docs/api/cli/types/struct.CrateInfo.html @@ -1,22 +1,23 @@ -CrateInfo in cli::types - Rust

Struct cli::types::CrateInfo

source ·
pub struct CrateInfo {
+CrateInfo in cli::types - Rust
+    

Struct cli::types::CrateInfo

source ·
pub struct CrateInfo {
     pub package: Option<PackageInfo>,
     pub workspace: Option<Workspace>,
     pub dependencies: Option<IndexMap<String, CrateDependency>>,
 }
Expand description

Holds crate information loaded from the Cargo.toml file.

-

Fields§

§package: Option<PackageInfo>

package info

-
§workspace: Option<Workspace>

workspace info

-
§dependencies: Option<IndexMap<String, CrateDependency>>

crate dependencies

-

Implementations§

source§

impl CrateInfo

source

pub fn new() -> CrateInfo

Creates and returns a new instance.

-

Trait Implementations§

source§

impl Clone for CrateInfo

source§

fn clone(&self) -> CrateInfo

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 CrateInfo

source§

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

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

impl Default for CrateInfo

source§

fn default() -> CrateInfo

Returns the “default value” for a 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§package: Option<PackageInfo>

package info

+
§workspace: Option<Workspace>

workspace info

+
§dependencies: Option<IndexMap<String, CrateDependency>>

crate dependencies

+

Implementations§

source§

impl CrateInfo

source

pub fn new() -> CrateInfo

Creates and returns a new instance.

+

Trait Implementations§

source§

impl Clone for CrateInfo

source§

fn clone(&self) -> CrateInfo

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 CrateInfo

source§

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

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

impl Default for CrateInfo

source§

fn default() -> CrateInfo

Returns the “default value” for a 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.EnvFileInfo.html b/docs/api/cli/types/struct.EnvFileInfo.html index 99848cc73..2dc3c334d 100644 --- a/docs/api/cli/types/struct.EnvFileInfo.html +++ b/docs/api/cli/types/struct.EnvFileInfo.html @@ -1,27 +1,28 @@ -EnvFileInfo in cli::types - Rust

Struct cli::types::EnvFileInfo

source ·
pub struct EnvFileInfo {
+EnvFileInfo in cli::types - Rust
+    

Struct cli::types::EnvFileInfo

source ·
pub struct EnvFileInfo {
     pub path: String,
     pub base_path: Option<String>,
     pub profile: Option<String>,
     pub defaults_only: Option<bool>,
 }
Expand description

Env file path and attributes

-

Fields§

§path: String

The file path as string

-
§base_path: Option<String>

The path base directory (relative paths are from this base path)

-
§profile: Option<String>

The profile name this file is relevant to

-
§defaults_only: Option<bool>

If true, only set the env vars if not already defined

-

Implementations§

source§

impl EnvFileInfo

source

pub fn new(path: String) -> EnvFileInfo

Creates and returns a new instance.

-

Trait Implementations§

source§

impl Clone for EnvFileInfo

source§

fn clone(&self) -> EnvFileInfo

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 EnvFileInfo

source§

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

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

impl<'de> Deserialize<'de> for EnvFileInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvFileInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§path: String

The file path as string

+
§base_path: Option<String>

The path base directory (relative paths are from this base path)

+
§profile: Option<String>

The profile name this file is relevant to

+
§defaults_only: Option<bool>

If true, only set the env vars if not already defined

+

Implementations§

source§

impl EnvFileInfo

source

pub fn new(path: String) -> EnvFileInfo

Creates and returns a new instance.

+

Trait Implementations§

source§

impl Clone for EnvFileInfo

source§

fn clone(&self) -> EnvFileInfo

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 EnvFileInfo

source§

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

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

impl<'de> Deserialize<'de> for EnvFileInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvFileInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.EnvInfo.html b/docs/api/cli/types/struct.EnvInfo.html index 08faaf4bb..357da2670 100644 --- a/docs/api/cli/types/struct.EnvInfo.html +++ b/docs/api/cli/types/struct.EnvInfo.html @@ -1,23 +1,24 @@ -EnvInfo in cli::types - Rust

Struct cli::types::EnvInfo

source ·
pub struct EnvInfo {
+EnvInfo in cli::types - Rust
+    

Struct cli::types::EnvInfo

source ·
pub struct EnvInfo {
     pub rust_info: RustInfo,
     pub crate_info: CrateInfo,
     pub git_info: GitInfo,
     pub ci_info: CiInfo,
 }
Expand description

Holds env information

-

Fields§

§rust_info: RustInfo

Rust info

-
§crate_info: CrateInfo

Crate info

-
§git_info: GitInfo

Git info

-
§ci_info: CiInfo

CI info

-

Trait Implementations§

source§

impl Clone for EnvInfo

source§

fn clone(&self) -> EnvInfo

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 EnvInfo

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§rust_info: RustInfo

Rust info

+
§crate_info: CrateInfo

Crate info

+
§git_info: GitInfo

Git info

+
§ci_info: CiInfo

CI info

+

Trait Implementations§

source§

impl Clone for EnvInfo

source§

fn clone(&self) -> EnvInfo

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 EnvInfo

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.EnvValueConditioned.html b/docs/api/cli/types/struct.EnvValueConditioned.html index a2316a604..d6e34c270 100644 --- a/docs/api/cli/types/struct.EnvValueConditioned.html +++ b/docs/api/cli/types/struct.EnvValueConditioned.html @@ -1,22 +1,23 @@ -EnvValueConditioned in cli::types - Rust
pub struct EnvValueConditioned {
+EnvValueConditioned in cli::types - Rust
+    
pub struct EnvValueConditioned {
     pub value: String,
     pub condition: Option<TaskCondition>,
 }
Expand description

Env value set if condition is met

-

Fields§

§value: String

The value to set (can be an env expression)

-
§condition: Option<TaskCondition>

The condition to validate

-

Trait Implementations§

source§

impl Clone for EnvValueConditioned

source§

fn clone(&self) -> EnvValueConditioned

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 EnvValueConditioned

source§

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

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

impl<'de> Deserialize<'de> for EnvValueConditioned

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValueConditioned

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§value: String

The value to set (can be an env expression)

+
§condition: Option<TaskCondition>

The condition to validate

+

Trait Implementations§

source§

impl Clone for EnvValueConditioned

source§

fn clone(&self) -> EnvValueConditioned

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 EnvValueConditioned

source§

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

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

impl<'de> Deserialize<'de> for EnvValueConditioned

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValueConditioned

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.EnvValueDecode.html b/docs/api/cli/types/struct.EnvValueDecode.html index 28b923fc3..ef7964a7c 100644 --- a/docs/api/cli/types/struct.EnvValueDecode.html +++ b/docs/api/cli/types/struct.EnvValueDecode.html @@ -1,24 +1,27 @@ -EnvValueDecode in cli::types - Rust

Struct cli::types::EnvValueDecode

source ·
pub struct EnvValueDecode {
+EnvValueDecode in cli::types - Rust
+    

Struct cli::types::EnvValueDecode

source ·
pub struct EnvValueDecode {
     pub source: String,
     pub default_value: Option<String>,
     pub mapping: HashMap<String, String>,
+    pub condition: Option<TaskCondition>,
 }
Expand description

Env value provided by decoding other values

-

Fields§

§source: String

The source value (can be an env expression)

-
§default_value: Option<String>

The default value in case no decode mapping was found, if not provided it will default to the source value

-
§mapping: HashMap<String, String>

The decoding mapping

-

Trait Implementations§

source§

impl Clone for EnvValueDecode

source§

fn clone(&self) -> EnvValueDecode

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 EnvValueDecode

source§

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

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

impl<'de> Deserialize<'de> for EnvValueDecode

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValueDecode

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§source: String

The source value (can be an env expression)

+
§default_value: Option<String>

The default value in case no decode mapping was found, if not provided it will default to the source value

+
§mapping: HashMap<String, String>

The decoding mapping

+
§condition: Option<TaskCondition>

The condition to validate

+

Trait Implementations§

source§

impl Clone for EnvValueDecode

source§

fn clone(&self) -> EnvValueDecode

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 EnvValueDecode

source§

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

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

impl<'de> Deserialize<'de> for EnvValueDecode

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValueDecode

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.EnvValuePathGlob.html b/docs/api/cli/types/struct.EnvValuePathGlob.html index 2b0dbda16..a42ed6f4f 100644 --- a/docs/api/cli/types/struct.EnvValuePathGlob.html +++ b/docs/api/cli/types/struct.EnvValuePathGlob.html @@ -1,26 +1,27 @@ -EnvValuePathGlob in cli::types - Rust

Struct cli::types::EnvValuePathGlob

source ·
pub struct EnvValuePathGlob {
+EnvValuePathGlob in cli::types - Rust
+    

Struct cli::types::EnvValuePathGlob

source ·
pub struct EnvValuePathGlob {
     pub glob: String,
     pub include_files: Option<bool>,
     pub include_dirs: Option<bool>,
     pub ignore_type: Option<String>,
 }
Expand description

Env value holding a list of paths based on given glob definitions

-

Fields§

§glob: String

The glob used to fetch all paths

-
§include_files: Option<bool>

True to include files (default is true if undefined)

-
§include_dirs: Option<bool>

True to include directories (default is true if undefined)

-
§ignore_type: Option<String>

Enables to respect ignore files

-

Trait Implementations§

source§

impl Clone for EnvValuePathGlob

source§

fn clone(&self) -> EnvValuePathGlob

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 EnvValuePathGlob

source§

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

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

impl<'de> Deserialize<'de> for EnvValuePathGlob

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValuePathGlob

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§glob: String

The glob used to fetch all paths

+
§include_files: Option<bool>

True to include files (default is true if undefined)

+
§include_dirs: Option<bool>

True to include directories (default is true if undefined)

+
§ignore_type: Option<String>

Enables to respect ignore files

+

Trait Implementations§

source§

impl Clone for EnvValuePathGlob

source§

fn clone(&self) -> EnvValuePathGlob

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 EnvValuePathGlob

source§

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

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

impl<'de> Deserialize<'de> for EnvValuePathGlob

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValuePathGlob

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.EnvValueScript.html b/docs/api/cli/types/struct.EnvValueScript.html index 6c89e615c..f2ec331e2 100644 --- a/docs/api/cli/types/struct.EnvValueScript.html +++ b/docs/api/cli/types/struct.EnvValueScript.html @@ -1,26 +1,27 @@ -EnvValueScript in cli::types - Rust

Struct cli::types::EnvValueScript

source ·
pub struct EnvValueScript {
+EnvValueScript in cli::types - Rust
+    

Struct cli::types::EnvValueScript

source ·
pub struct EnvValueScript {
     pub script: Vec<String>,
     pub multi_line: Option<bool>,
     pub condition: Option<TaskCondition>,
     pub depends_on: Option<Vec<String>>,
 }
Expand description

Env value provided by a script

-

Fields§

§script: Vec<String>

The script to execute to get the env value

-
§multi_line: Option<bool>

True/False to enable multi line env values

-
§condition: Option<TaskCondition>

The condition to validate

-
§depends_on: Option<Vec<String>>

The explicit environment variables this script depends on

-

Trait Implementations§

source§

impl Clone for EnvValueScript

source§

fn clone(&self) -> EnvValueScript

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 EnvValueScript

source§

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

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

impl<'de> Deserialize<'de> for EnvValueScript

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValueScript

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§script: Vec<String>

The script to execute to get the env value

+
§multi_line: Option<bool>

True/False to enable multi line env values

+
§condition: Option<TaskCondition>

The condition to validate

+
§depends_on: Option<Vec<String>>

The explicit environment variables this script depends on

+

Trait Implementations§

source§

impl Clone for EnvValueScript

source§

fn clone(&self) -> EnvValueScript

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 EnvValueScript

source§

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

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

impl<'de> Deserialize<'de> for EnvValueScript

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValueScript

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.EnvValueUnset.html b/docs/api/cli/types/struct.EnvValueUnset.html index 4abbc0ddc..565932fe9 100644 --- a/docs/api/cli/types/struct.EnvValueUnset.html +++ b/docs/api/cli/types/struct.EnvValueUnset.html @@ -1,20 +1,21 @@ -EnvValueUnset in cli::types - Rust

Struct cli::types::EnvValueUnset

source ·
pub struct EnvValueUnset {
+EnvValueUnset in cli::types - Rust
+    

Struct cli::types::EnvValueUnset

source ·
pub struct EnvValueUnset {
     pub unset: bool,
 }
Expand description

Enables to unset env variables

-

Fields§

§unset: bool

If true, the env variable will be unset, else ignored

-

Trait Implementations§

source§

impl Clone for EnvValueUnset

source§

fn clone(&self) -> EnvValueUnset

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 EnvValueUnset

source§

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

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

impl<'de> Deserialize<'de> for EnvValueUnset

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValueUnset

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for EnvValueUnset

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§unset: bool

If true, the env variable will be unset, else ignored

+

Trait Implementations§

source§

impl Clone for EnvValueUnset

source§

fn clone(&self) -> EnvValueUnset

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 EnvValueUnset

source§

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

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

impl<'de> Deserialize<'de> for EnvValueUnset

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for EnvValueUnset

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for EnvValueUnset

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.ExecutionPlan.html b/docs/api/cli/types/struct.ExecutionPlan.html index 0d32a1c3a..2fa03c809 100644 --- a/docs/api/cli/types/struct.ExecutionPlan.html +++ b/docs/api/cli/types/struct.ExecutionPlan.html @@ -1,16 +1,17 @@ -ExecutionPlan in cli::types - Rust

Struct cli::types::ExecutionPlan

source ·
pub struct ExecutionPlan {
+ExecutionPlan in cli::types - Rust
+    

Struct cli::types::ExecutionPlan

source ·
pub struct ExecutionPlan {
     pub steps: Vec<Step>,
 }
Expand description

Execution plan which defines all steps to run and the order to run them

-

Fields§

§steps: Vec<Step>

A list of steps to execute

-

Trait Implementations§

source§

impl Debug for ExecutionPlan

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§steps: Vec<Step>

A list of steps to execute

+

Trait Implementations§

source§

impl Debug for ExecutionPlan

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.ExtendOptions.html b/docs/api/cli/types/struct.ExtendOptions.html index 12dc668f6..0f886d312 100644 --- a/docs/api/cli/types/struct.ExtendOptions.html +++ b/docs/api/cli/types/struct.ExtendOptions.html @@ -1,22 +1,23 @@ -ExtendOptions in cli::types - Rust

Struct cli::types::ExtendOptions

source ·
pub struct ExtendOptions {
+ExtendOptions in cli::types - Rust
+    

Struct cli::types::ExtendOptions

source ·
pub struct ExtendOptions {
     pub path: String,
     pub optional: Option<bool>,
 }
Expand description

Extend with more fine tuning options

-

Fields§

§path: String

Path to another makefile

-
§optional: Option<bool>

Enable optional extend (default to false)

-

Trait Implementations§

source§

impl Clone for ExtendOptions

source§

fn clone(&self) -> ExtendOptions

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 ExtendOptions

source§

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

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

impl<'de> Deserialize<'de> for ExtendOptions

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ExtendOptions

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§path: String

Path to another makefile

+
§optional: Option<bool>

Enable optional extend (default to false)

+

Trait Implementations§

source§

impl Clone for ExtendOptions

source§

fn clone(&self) -> ExtendOptions

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 ExtendOptions

source§

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

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

impl<'de> Deserialize<'de> for ExtendOptions

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ExtendOptions

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.ExternalConfig.html b/docs/api/cli/types/struct.ExternalConfig.html index cad9800c2..4a2c86b83 100644 --- a/docs/api/cli/types/struct.ExternalConfig.html +++ b/docs/api/cli/types/struct.ExternalConfig.html @@ -1,4 +1,5 @@ -ExternalConfig in cli::types - Rust

Struct cli::types::ExternalConfig

source ·
pub struct ExternalConfig {
+ExternalConfig in cli::types - Rust
+    

Struct cli::types::ExternalConfig

source ·
pub struct ExternalConfig {
     pub extend: Option<Extend>,
     pub config: Option<ConfigSection>,
     pub env_files: Option<Vec<EnvFile>>,
@@ -7,27 +8,27 @@
     pub tasks: Option<IndexMap<String, Task>>,
     pub plugins: Option<Plugins>,
 }
Expand description

Holds the entire externally read configuration such as task definitions and env vars where all values are optional

-

Fields§

§extend: Option<Extend>

Path to another toml file to extend

-
§config: Option<ConfigSection>

Runtime config

-
§env_files: Option<Vec<EnvFile>>

The env files to setup before running the flow

-
§env: Option<IndexMap<String, EnvValue>>

The env vars to setup before running the flow

-
§env_scripts: Option<Vec<String>>

The env scripts to execute before running the flow

-
§tasks: Option<IndexMap<String, Task>>

All task definitions

-
§plugins: Option<Plugins>

All plugin definitions

-

Implementations§

source§

impl ExternalConfig

source

pub fn new() -> ExternalConfig

Creates and returns a new instance.

-

Trait Implementations§

source§

impl Clone for ExternalConfig

source§

fn clone(&self) -> ExternalConfig

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 ExternalConfig

source§

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

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

impl Default for ExternalConfig

source§

fn default() -> ExternalConfig

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ExternalConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ExternalConfig

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§extend: Option<Extend>

Path to another toml file to extend

+
§config: Option<ConfigSection>

Runtime config

+
§env_files: Option<Vec<EnvFile>>

The env files to setup before running the flow

+
§env: Option<IndexMap<String, EnvValue>>

The env vars to setup before running the flow

+
§env_scripts: Option<Vec<String>>

The env scripts to execute before running the flow

+
§tasks: Option<IndexMap<String, Task>>

All task definitions

+
§plugins: Option<Plugins>

All plugin definitions

+

Implementations§

source§

impl ExternalConfig

source

pub fn new() -> ExternalConfig

Creates and returns a new instance.

+

Trait Implementations§

source§

impl Clone for ExternalConfig

source§

fn clone(&self) -> ExternalConfig

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 ExternalConfig

source§

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

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

impl Default for ExternalConfig

source§

fn default() -> ExternalConfig

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ExternalConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ExternalConfig

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.FileScriptValue.html b/docs/api/cli/types/struct.FileScriptValue.html index bbc29f983..cd010073c 100644 --- a/docs/api/cli/types/struct.FileScriptValue.html +++ b/docs/api/cli/types/struct.FileScriptValue.html @@ -1,22 +1,23 @@ -FileScriptValue in cli::types - Rust

Struct cli::types::FileScriptValue

source ·
pub struct FileScriptValue {
+FileScriptValue in cli::types - Rust
+    

Struct cli::types::FileScriptValue

source ·
pub struct FileScriptValue {
     pub file: String,
     pub absolute_path: Option<bool>,
 }
Expand description

Script file name

-

Fields§

§file: String

Script file name

-
§absolute_path: Option<bool>

True for absolute path (default false)

-

Trait Implementations§

source§

impl Clone for FileScriptValue

source§

fn clone(&self) -> FileScriptValue

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 FileScriptValue

source§

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

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

impl<'de> Deserialize<'de> for FileScriptValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for FileScriptValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§file: String

Script file name

+
§absolute_path: Option<bool>

True for absolute path (default false)

+

Trait Implementations§

source§

impl Clone for FileScriptValue

source§

fn clone(&self) -> FileScriptValue

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 FileScriptValue

source§

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

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

impl<'de> Deserialize<'de> for FileScriptValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for FileScriptValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.FilesFilesModifiedCondition.html b/docs/api/cli/types/struct.FilesFilesModifiedCondition.html index e30f31c02..d1c5b075a 100644 --- a/docs/api/cli/types/struct.FilesFilesModifiedCondition.html +++ b/docs/api/cli/types/struct.FilesFilesModifiedCondition.html @@ -1,22 +1,23 @@ -FilesFilesModifiedCondition in cli::types - Rust
pub struct FilesFilesModifiedCondition {
+FilesFilesModifiedCondition in cli::types - Rust
+    
pub struct FilesFilesModifiedCondition {
     pub input: Vec<String>,
     pub output: Vec<String>,
 }
Expand description

Files modified (input/output) condition structure

-

Fields§

§input: Vec<String>

input files

-
§output: Vec<String>

output files

-

Trait Implementations§

source§

impl Clone for FilesFilesModifiedCondition

source§

fn clone(&self) -> FilesFilesModifiedCondition

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 FilesFilesModifiedCondition

source§

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

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

impl<'de> Deserialize<'de> for FilesFilesModifiedCondition

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for FilesFilesModifiedCondition

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§input: Vec<String>

input files

+
§output: Vec<String>

output files

+

Trait Implementations§

source§

impl Clone for FilesFilesModifiedCondition

source§

fn clone(&self) -> FilesFilesModifiedCondition

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 FilesFilesModifiedCondition

source§

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

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

impl<'de> Deserialize<'de> for FilesFilesModifiedCondition

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for FilesFilesModifiedCondition

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.FlowInfo.html b/docs/api/cli/types/struct.FlowInfo.html index ebaf3448f..3c915937b 100644 --- a/docs/api/cli/types/struct.FlowInfo.html +++ b/docs/api/cli/types/struct.FlowInfo.html @@ -1,4 +1,5 @@ -FlowInfo in cli::types - Rust

Struct cli::types::FlowInfo

source ·
pub struct FlowInfo {
+FlowInfo in cli::types - Rust
+    

Struct cli::types::FlowInfo

source ·
pub struct FlowInfo {
     pub config: Config,
     pub task: String,
     pub env_info: EnvInfo,
@@ -9,25 +10,25 @@
     pub skip_tasks_pattern: Option<Regex>,
     pub cli_arguments: Option<Vec<String>>,
 }
Expand description

Holds flow information

-

Fields§

§config: Config

The flow config object

-
§task: String

The main task of the flow

-
§env_info: EnvInfo

The env info

-
§disable_workspace: bool

Prevent workspace support

-
§disable_on_error: bool

Prevent on error flow even if defined in config section

-
§allow_private: bool

Allow invocation of private tasks

-
§skip_init_end_tasks: bool

If true, the init and end tasks are skipped

-
§skip_tasks_pattern: Option<Regex>

Skip tasks that match the provided pattern

-
§cli_arguments: Option<Vec<String>>

additional command line arguments

-

Trait Implementations§

source§

impl Clone for FlowInfo

source§

fn clone(&self) -> FlowInfo

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 FlowInfo

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§config: Config

The flow config object

+
§task: String

The main task of the flow

+
§env_info: EnvInfo

The env info

+
§disable_workspace: bool

Prevent workspace support

+
§disable_on_error: bool

Prevent on error flow even if defined in config section

+
§allow_private: bool

Allow invocation of private tasks

+
§skip_init_end_tasks: bool

If true, the init and end tasks are skipped

+
§skip_tasks_pattern: Option<Regex>

Skip tasks that match the provided pattern

+
§cli_arguments: Option<Vec<String>>

additional command line arguments

+

Trait Implementations§

source§

impl Clone for FlowInfo

source§

fn clone(&self) -> FlowInfo

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 FlowInfo

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.FlowState.html b/docs/api/cli/types/struct.FlowState.html index 87f398ec2..51d03bf72 100644 --- a/docs/api/cli/types/struct.FlowState.html +++ b/docs/api/cli/types/struct.FlowState.html @@ -1,20 +1,21 @@ -FlowState in cli::types - Rust

Struct cli::types::FlowState

source ·
pub struct FlowState {
+FlowState in cli::types - Rust
+    

Struct cli::types::FlowState

source ·
pub struct FlowState {
     pub time_summary: Vec<(String, u128)>,
     pub forced_plugin: Option<String>,
 }
Expand description

Holds mutable flow state

-

Fields§

§time_summary: Vec<(String, u128)>

timing info for summary

-
§forced_plugin: Option<String>

forced plugin name

-

Implementations§

source§

impl FlowState

source

pub fn new() -> FlowState

Creates and returns a new instance.

-

Trait Implementations§

source§

impl Clone for FlowState

source§

fn clone(&self) -> FlowState

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 FlowState

source§

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

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

impl Default for FlowState

source§

fn default() -> FlowState

Returns the “default value” for a 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§time_summary: Vec<(String, u128)>

timing info for summary

+
§forced_plugin: Option<String>

forced plugin name

+

Implementations§

source§

impl FlowState

source

pub fn new() -> FlowState

Creates and returns a new instance.

+

Trait Implementations§

source§

impl Clone for FlowState

source§

fn clone(&self) -> FlowState

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 FlowState

source§

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

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

impl Default for FlowState

source§

fn default() -> FlowState

Returns the “default value” for a 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.GlobalConfig.html b/docs/api/cli/types/struct.GlobalConfig.html index 200b6f0ab..2b1decf52 100644 --- a/docs/api/cli/types/struct.GlobalConfig.html +++ b/docs/api/cli/types/struct.GlobalConfig.html @@ -1,4 +1,5 @@ -GlobalConfig in cli::types - Rust

Struct cli::types::GlobalConfig

source ·
pub struct GlobalConfig {
+GlobalConfig in cli::types - Rust
+    

Struct cli::types::GlobalConfig

source ·
pub struct GlobalConfig {
     pub file_name: Option<String>,
     pub log_level: Option<String>,
     pub disable_color: Option<bool>,
@@ -6,26 +7,26 @@
     pub update_check_minimum_interval: Option<String>,
     pub search_project_root: Option<bool>,
 }
Expand description

Holds configuration info for cargo-make

-

Fields§

§file_name: Option<String>

File from which the global config was loaded from

-
§log_level: Option<String>

Default log level

-
§disable_color: Option<bool>

Default output coloring

-
§default_task_name: Option<String>

Default task name

-
§update_check_minimum_interval: Option<String>

Update check minimum time from the previous check (always, daily, weekly, monthly)

-
§search_project_root: Option<bool>

True to search for project root in parent directories if current cwd is not a project root

-

Implementations§

source§

impl GlobalConfig

source

pub fn new() -> GlobalConfig

Returns new instance

-

Trait Implementations§

source§

impl Clone for GlobalConfig

source§

fn clone(&self) -> GlobalConfig

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 GlobalConfig

source§

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

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

impl Default for GlobalConfig

source§

fn default() -> GlobalConfig

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GlobalConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GlobalConfig

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§file_name: Option<String>

File from which the global config was loaded from

+
§log_level: Option<String>

Default log level

+
§disable_color: Option<bool>

Default output coloring

+
§default_task_name: Option<String>

Default task name

+
§update_check_minimum_interval: Option<String>

Update check minimum time from the previous check (always, daily, weekly, monthly)

+
§search_project_root: Option<bool>

True to search for project root in parent directories if current cwd is not a project root

+

Implementations§

source§

impl GlobalConfig

source

pub fn new() -> GlobalConfig

Returns new instance

+

Trait Implementations§

source§

impl Clone for GlobalConfig

source§

fn clone(&self) -> GlobalConfig

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 GlobalConfig

source§

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

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

impl Default for GlobalConfig

source§

fn default() -> GlobalConfig

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GlobalConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for GlobalConfig

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.InstallCargoPluginInfo.html b/docs/api/cli/types/struct.InstallCargoPluginInfo.html index 0da464d1e..2f919cb37 100644 --- a/docs/api/cli/types/struct.InstallCargoPluginInfo.html +++ b/docs/api/cli/types/struct.InstallCargoPluginInfo.html @@ -1,28 +1,29 @@ -InstallCargoPluginInfo in cli::types - Rust
pub struct InstallCargoPluginInfo {
+InstallCargoPluginInfo in cli::types - Rust
+    
pub struct InstallCargoPluginInfo {
     pub crate_name: Option<String>,
     pub min_version: Option<String>,
     pub install_command: Option<String>,
     pub force: Option<bool>,
 }
Expand description

Holds instructions how to install the cargo plugin

-

Fields§

§crate_name: Option<String>

The provided crate to install

-
§min_version: Option<String>

Minimal version

-
§install_command: Option<String>

Optional alternate ‘install’ command

-
§force: Option<bool>

Optional add force flag (if needed), default is true

-

Trait Implementations§

source§

impl Clone for InstallCargoPluginInfo

source§

fn clone(&self) -> InstallCargoPluginInfo

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 InstallCargoPluginInfo

source§

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

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

impl<'de> Deserialize<'de> for InstallCargoPluginInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<InstallCargoPluginInfo> for InstallCargoPluginInfo

source§

fn eq(&self, other: &InstallCargoPluginInfo) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for InstallCargoPluginInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§crate_name: Option<String>

The provided crate to install

+
§min_version: Option<String>

Minimal version

+
§install_command: Option<String>

Optional alternate ‘install’ command

+
§force: Option<bool>

Optional add force flag (if needed), default is true

+

Trait Implementations§

source§

impl Clone for InstallCargoPluginInfo

source§

fn clone(&self) -> InstallCargoPluginInfo

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 InstallCargoPluginInfo

source§

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

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

impl<'de> Deserialize<'de> for InstallCargoPluginInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for InstallCargoPluginInfo

source§

fn eq(&self, other: &InstallCargoPluginInfo) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for InstallCargoPluginInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.InstallCrateInfo.html b/docs/api/cli/types/struct.InstallCrateInfo.html index a816e9f2d..d51ea272e 100644 --- a/docs/api/cli/types/struct.InstallCrateInfo.html +++ b/docs/api/cli/types/struct.InstallCrateInfo.html @@ -1,4 +1,5 @@ -InstallCrateInfo in cli::types - Rust

Struct cli::types::InstallCrateInfo

source ·
pub struct InstallCrateInfo {
+InstallCrateInfo in cli::types - Rust
+    

Struct cli::types::InstallCrateInfo

source ·
pub struct InstallCrateInfo {
     pub crate_name: String,
     pub rustup_component_name: Option<String>,
     pub binary: String,
@@ -8,29 +9,29 @@
     pub install_command: Option<String>,
     pub force: Option<bool>,
 }
Expand description

Holds instructions how to install the crate

-

Fields§

§crate_name: String

The provided crate to install

-
§rustup_component_name: Option<String>

If defined, the component to install via rustup

-
§binary: String

The binary file name to be used to test if the crate is already installed

-
§test_arg: TestArg

Test arguments that will be used to check that the crate is installed.

-
§min_version: Option<String>

Minimal version

-
§version: Option<String>

Exact version

-
§install_command: Option<String>

Optional alternate ‘install’ command

-
§force: Option<bool>

Optional add force flag (if needed), default is true

-

Trait Implementations§

source§

impl Clone for InstallCrateInfo

source§

fn clone(&self) -> InstallCrateInfo

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 InstallCrateInfo

source§

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

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

impl<'de> Deserialize<'de> for InstallCrateInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<InstallCrateInfo> for InstallCrateInfo

source§

fn eq(&self, other: &InstallCrateInfo) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for InstallCrateInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§crate_name: String

The provided crate to install

+
§rustup_component_name: Option<String>

If defined, the component to install via rustup

+
§binary: String

The binary file name to be used to test if the crate is already installed

+
§test_arg: TestArg

Test arguments that will be used to check that the crate is installed.

+
§min_version: Option<String>

Minimal version

+
§version: Option<String>

Exact version

+
§install_command: Option<String>

Optional alternate ‘install’ command

+
§force: Option<bool>

Optional add force flag (if needed), default is true

+

Trait Implementations§

source§

impl Clone for InstallCrateInfo

source§

fn clone(&self) -> InstallCrateInfo

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 InstallCrateInfo

source§

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

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

impl<'de> Deserialize<'de> for InstallCrateInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for InstallCrateInfo

source§

fn eq(&self, other: &InstallCrateInfo) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for InstallCrateInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.InstallRustupComponentInfo.html b/docs/api/cli/types/struct.InstallRustupComponentInfo.html index 74534caea..beb706f4d 100644 --- a/docs/api/cli/types/struct.InstallRustupComponentInfo.html +++ b/docs/api/cli/types/struct.InstallRustupComponentInfo.html @@ -1,26 +1,27 @@ -InstallRustupComponentInfo in cli::types - Rust
pub struct InstallRustupComponentInfo {
+InstallRustupComponentInfo in cli::types - Rust
+    
pub struct InstallRustupComponentInfo {
     pub rustup_component_name: String,
     pub binary: Option<String>,
     pub test_arg: Option<TestArg>,
 }
Expand description

Holds instructions how to install a rustup component

-

Fields§

§rustup_component_name: String

The component to install via rustup

-
§binary: Option<String>

The binary file name to be used to test if the crate is already installed

-
§test_arg: Option<TestArg>

Test argument that will be used to check that the crate is installed

-

Trait Implementations§

source§

impl Clone for InstallRustupComponentInfo

source§

fn clone(&self) -> InstallRustupComponentInfo

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 InstallRustupComponentInfo

source§

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

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

impl<'de> Deserialize<'de> for InstallRustupComponentInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq<InstallRustupComponentInfo> for InstallRustupComponentInfo

source§

fn eq(&self, other: &InstallRustupComponentInfo) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for InstallRustupComponentInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§rustup_component_name: String

The component to install via rustup

+
§binary: Option<String>

The binary file name to be used to test if the crate is already installed

+
§test_arg: Option<TestArg>

Test argument that will be used to check that the crate is installed

+

Trait Implementations§

source§

impl Clone for InstallRustupComponentInfo

source§

fn clone(&self) -> InstallRustupComponentInfo

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 InstallRustupComponentInfo

source§

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

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

impl<'de> Deserialize<'de> for InstallRustupComponentInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for InstallRustupComponentInfo

source§

fn eq(&self, other: &InstallRustupComponentInfo) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for InstallRustupComponentInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.ModifyConfig.html b/docs/api/cli/types/struct.ModifyConfig.html index a684e485f..13998d136 100644 --- a/docs/api/cli/types/struct.ModifyConfig.html +++ b/docs/api/cli/types/struct.ModifyConfig.html @@ -1,24 +1,25 @@ -ModifyConfig in cli::types - Rust

Struct cli::types::ModifyConfig

source ·
pub struct ModifyConfig {
+ModifyConfig in cli::types - Rust
+    

Struct cli::types::ModifyConfig

source ·
pub struct ModifyConfig {
     pub private: Option<bool>,
     pub namespace: Option<String>,
 }
Expand description

Holds properties to modify the core tasks

-

Fields§

§private: Option<bool>

If true, all core tasks will be set to private (default false)

-
§namespace: Option<String>

If set to some value, all core tasks are modified to: namespace::name for example default::build

-

Implementations§

source§

impl ModifyConfig

source

pub fn is_modifications_defined(self: &ModifyConfig) -> bool

Returns true if config modifications is needed based on the current state

-
source

pub fn get_namespace_prefix(self: &ModifyConfig) -> String

Returns the namespace prefix for task names

-

Trait Implementations§

source§

impl Clone for ModifyConfig

source§

fn clone(&self) -> ModifyConfig

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 ModifyConfig

source§

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

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

impl<'de> Deserialize<'de> for ModifyConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ModifyConfig

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§private: Option<bool>

If true, all core tasks will be set to private (default false)

+
§namespace: Option<String>

If set to some value, all core tasks are modified to: namespace::name for example default::build

+

Implementations§

source§

impl ModifyConfig

source

pub fn is_modifications_defined(self: &ModifyConfig) -> bool

Returns true if config modifications is needed based on the current state

+
source

pub fn get_namespace_prefix(self: &ModifyConfig) -> String

Returns the namespace prefix for task names

+

Trait Implementations§

source§

impl Clone for ModifyConfig

source§

fn clone(&self) -> ModifyConfig

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 ModifyConfig

source§

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

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

impl<'de> Deserialize<'de> for ModifyConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ModifyConfig

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.PackageInfo.html b/docs/api/cli/types/struct.PackageInfo.html index edb4c25e8..b0094c2a1 100644 --- a/docs/api/cli/types/struct.PackageInfo.html +++ b/docs/api/cli/types/struct.PackageInfo.html @@ -1,4 +1,5 @@ -PackageInfo in cli::types - Rust

Struct cli::types::PackageInfo

source ·
pub struct PackageInfo {
+PackageInfo in cli::types - Rust
+    

Struct cli::types::PackageInfo

source ·
pub struct PackageInfo {
     pub name: Option<String>,
     pub version: Option<String>,
     pub description: Option<String>,
@@ -7,24 +8,24 @@
     pub homepage: Option<String>,
     pub repository: Option<String>,
 }
Expand description

Holds crate package information loaded from the Cargo.toml file package section.

-

Fields§

§name: Option<String>

name

-
§version: Option<String>

version

-
§description: Option<String>

description

-
§license: Option<String>

license

-
§documentation: Option<String>

documentation link

-
§homepage: Option<String>

homepage link

-
§repository: Option<String>

repository link

-

Implementations§

source§

impl PackageInfo

source

pub fn new() -> PackageInfo

Creates and returns a new instance.

-

Trait Implementations§

source§

impl Clone for PackageInfo

source§

fn clone(&self) -> PackageInfo

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 PackageInfo

source§

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

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

impl Default for PackageInfo

source§

fn default() -> PackageInfo

Returns the “default value” for a 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§name: Option<String>

name

+
§version: Option<String>

version

+
§description: Option<String>

description

+
§license: Option<String>

license

+
§documentation: Option<String>

documentation link

+
§homepage: Option<String>

homepage link

+
§repository: Option<String>

repository link

+

Implementations§

source§

impl PackageInfo

source

pub fn new() -> PackageInfo

Creates and returns a new instance.

+

Trait Implementations§

source§

impl Clone for PackageInfo

source§

fn clone(&self) -> PackageInfo

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 PackageInfo

source§

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

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

impl Default for PackageInfo

source§

fn default() -> PackageInfo

Returns the “default value” for a 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.PlatformOverrideTask.html b/docs/api/cli/types/struct.PlatformOverrideTask.html index 254b0f5fd..835ef92c9 100644 --- a/docs/api/cli/types/struct.PlatformOverrideTask.html +++ b/docs/api/cli/types/struct.PlatformOverrideTask.html @@ -1,4 +1,5 @@ -PlatformOverrideTask in cli::types - Rust
pub struct PlatformOverrideTask {
Show 26 fields +PlatformOverrideTask in cli::types - Rust +
pub struct PlatformOverrideTask {
Show 26 fields pub clear: Option<bool>, pub disabled: Option<bool>, pub private: Option<bool>, @@ -26,50 +27,50 @@ pub dependencies: Option<Vec<DependencyIdentifier>>, pub toolchain: Option<ToolchainSpecifier>,
}
Expand description

Holds a single task configuration for a specific platform as an override of another task

-

Fields§

§clear: Option<bool>

if true, it should ignore all data in base task

-
§disabled: Option<bool>

if true, the command/script of this task will not be invoked, dependencies however will be

-
§private: Option<bool>

if true, the task is hidden from the list of available tasks and also cannot be invoked directly from cli

-
§deprecated: Option<DeprecationInfo>

if not false, this task is defined as deprecated

-
§extend: Option<String>

Extend any task based on the defined name

-
§plugin: Option<String>

Optional plugin used to execute the task

-
§watch: Option<TaskWatchOptions>

set to true to watch for file changes and invoke the task operation

-
§condition: Option<TaskCondition>

if provided all condition values must be met in order for the task to be invoked (will not stop dependencies)

-
§condition_script: Option<Vec<String>>

if script exit code is not 0, the command/script of this task will not be invoked, dependencies however will be

-
§ignore_errors: Option<bool>

if true, any error while executing the task will be printed but will not break the build

-
§force: Option<bool>

DEPRECATED, replaced with ignore_errors

-
§env_files: Option<Vec<EnvFile>>

The env files to setup before running the task commands

-
§env: Option<IndexMap<String, EnvValue>>

The env vars to setup before running the task commands

-
§cwd: Option<String>

The working directory for the task to execute its command/script

-
§install_crate: Option<InstallCrate>

if defined, the provided crate will be installed (if needed) before running the task

-
§install_crate_args: Option<Vec<String>>

additional cargo install arguments

-
§install_script: Option<ScriptValue>

if defined, the provided script will be executed before running the task

-
§command: Option<String>

The command to execute

-
§args: Option<Vec<String>>

The command args

-
§script: Option<ScriptValue>

If command is not defined, and script is defined, the provided script will be executed

-
§script_runner: Option<String>

The script runner (defaults to cmd in windows and sh for other platforms)

-
§script_runner_args: Option<Vec<String>>

The script runner arguments before the script file path

-
§script_extension: Option<String>

The script file extension

-
§run_task: Option<RunTaskInfo>

The task name to execute

-
§dependencies: Option<Vec<DependencyIdentifier>>

A list of tasks to execute before this task

-
§toolchain: Option<ToolchainSpecifier>

The rust toolchain used to invoke the command or install the needed crates/components

-

Implementations§

source§

impl PlatformOverrideTask

source

pub fn extend(self: &mut PlatformOverrideTask, task: &mut Task)

Copies values from the task into self.

+

Fields§

§clear: Option<bool>

if true, it should ignore all data in base task

+
§disabled: Option<bool>

if true, the command/script of this task will not be invoked, dependencies however will be

+
§private: Option<bool>

if true, the task is hidden from the list of available tasks and also cannot be invoked directly from cli

+
§deprecated: Option<DeprecationInfo>

if not false, this task is defined as deprecated

+
§extend: Option<String>

Extend any task based on the defined name

+
§plugin: Option<String>

Optional plugin used to execute the task

+
§watch: Option<TaskWatchOptions>

set to true to watch for file changes and invoke the task operation

+
§condition: Option<TaskCondition>

if provided all condition values must be met in order for the task to be invoked (will not stop dependencies)

+
§condition_script: Option<Vec<String>>

if script exit code is not 0, the command/script of this task will not be invoked, dependencies however will be

+
§ignore_errors: Option<bool>

if true, any error while executing the task will be printed but will not break the build

+
§force: Option<bool>

DEPRECATED, replaced with ignore_errors

+
§env_files: Option<Vec<EnvFile>>

The env files to setup before running the task commands

+
§env: Option<IndexMap<String, EnvValue>>

The env vars to setup before running the task commands

+
§cwd: Option<String>

The working directory for the task to execute its command/script

+
§install_crate: Option<InstallCrate>

if defined, the provided crate will be installed (if needed) before running the task

+
§install_crate_args: Option<Vec<String>>

additional cargo install arguments

+
§install_script: Option<ScriptValue>

if defined, the provided script will be executed before running the task

+
§command: Option<String>

The command to execute

+
§args: Option<Vec<String>>

The command args

+
§script: Option<ScriptValue>

If command is not defined, and script is defined, the provided script will be executed

+
§script_runner: Option<String>

The script runner (defaults to cmd in windows and sh for other platforms)

+
§script_runner_args: Option<Vec<String>>

The script runner arguments before the script file path

+
§script_extension: Option<String>

The script file extension

+
§run_task: Option<RunTaskInfo>

The task name to execute

+
§dependencies: Option<Vec<DependencyIdentifier>>

A list of tasks to execute before this task

+
§toolchain: Option<ToolchainSpecifier>

The rust toolchain used to invoke the command or install the needed crates/components

+

Implementations§

source§

impl PlatformOverrideTask

source

pub fn extend(self: &mut PlatformOverrideTask, task: &mut Task)

Copies values from the task into self.

Arguments
  • task - The task to copy from
-

Trait Implementations§

source§

impl Clone for PlatformOverrideTask

source§

fn clone(&self) -> PlatformOverrideTask

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 PlatformOverrideTask

source§

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

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

impl<'de> Deserialize<'de> for PlatformOverrideTask

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for PlatformOverrideTask

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Clone for PlatformOverrideTask

source§

fn clone(&self) -> PlatformOverrideTask

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 PlatformOverrideTask

source§

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

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

impl<'de> Deserialize<'de> for PlatformOverrideTask

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for PlatformOverrideTask

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.RunTaskDetails.html b/docs/api/cli/types/struct.RunTaskDetails.html index ede15e726..d31abdb95 100644 --- a/docs/api/cli/types/struct.RunTaskDetails.html +++ b/docs/api/cli/types/struct.RunTaskDetails.html @@ -1,26 +1,27 @@ -RunTaskDetails in cli::types - Rust

Struct cli::types::RunTaskDetails

source ·
pub struct RunTaskDetails {
+RunTaskDetails in cli::types - Rust
+    

Struct cli::types::RunTaskDetails

source ·
pub struct RunTaskDetails {
     pub name: RunTaskName,
     pub fork: Option<bool>,
     pub parallel: Option<bool>,
     pub cleanup_task: Option<String>,
 }
Expand description

Holds the run task information

-

Fields§

§name: RunTaskName

The task name

-
§fork: Option<bool>

True to fork the task to a new sub process

-
§parallel: Option<bool>

True to run all tasks in parallel (default false)

-
§cleanup_task: Option<String>

Cleanup task name

-

Trait Implementations§

source§

impl Clone for RunTaskDetails

source§

fn clone(&self) -> RunTaskDetails

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 RunTaskDetails

source§

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

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

impl<'de> Deserialize<'de> for RunTaskDetails

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RunTaskDetails

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§name: RunTaskName

The task name

+
§fork: Option<bool>

True to fork the task to a new sub process

+
§parallel: Option<bool>

True to run all tasks in parallel (default false)

+
§cleanup_task: Option<String>

Cleanup task name

+

Trait Implementations§

source§

impl Clone for RunTaskDetails

source§

fn clone(&self) -> RunTaskDetails

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 RunTaskDetails

source§

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

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

impl<'de> Deserialize<'de> for RunTaskDetails

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RunTaskDetails

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.RunTaskRoutingInfo.html b/docs/api/cli/types/struct.RunTaskRoutingInfo.html index ccd07b110..f16123c26 100644 --- a/docs/api/cli/types/struct.RunTaskRoutingInfo.html +++ b/docs/api/cli/types/struct.RunTaskRoutingInfo.html @@ -1,4 +1,5 @@ -RunTaskRoutingInfo in cli::types - Rust
pub struct RunTaskRoutingInfo {
+RunTaskRoutingInfo in cli::types - Rust
+    
pub struct RunTaskRoutingInfo {
     pub name: RunTaskName,
     pub fork: Option<bool>,
     pub parallel: Option<bool>,
@@ -6,25 +7,25 @@
     pub condition: Option<TaskCondition>,
     pub condition_script: Option<Vec<String>>,
 }
Expand description

Holds the run task routing information

-

Fields§

§name: RunTaskName

The task name

-
§fork: Option<bool>

True to fork the task to a new sub process

-
§parallel: Option<bool>

True to run all tasks in parallel (default false)

-
§cleanup_task: Option<String>

Cleanup task name

-
§condition: Option<TaskCondition>

if provided all condition values must be met in order for the task to be invoked

-
§condition_script: Option<Vec<String>>

if script exit code is not 0, the task will not be invoked

-

Trait Implementations§

source§

impl Clone for RunTaskRoutingInfo

source§

fn clone(&self) -> RunTaskRoutingInfo

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 RunTaskRoutingInfo

source§

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

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

impl<'de> Deserialize<'de> for RunTaskRoutingInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RunTaskRoutingInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§name: RunTaskName

The task name

+
§fork: Option<bool>

True to fork the task to a new sub process

+
§parallel: Option<bool>

True to run all tasks in parallel (default false)

+
§cleanup_task: Option<String>

Cleanup task name

+
§condition: Option<TaskCondition>

if provided all condition values must be met in order for the task to be invoked

+
§condition_script: Option<Vec<String>>

if script exit code is not 0, the task will not be invoked

+

Trait Implementations§

source§

impl Clone for RunTaskRoutingInfo

source§

fn clone(&self) -> RunTaskRoutingInfo

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 RunTaskRoutingInfo

source§

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

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

impl<'de> Deserialize<'de> for RunTaskRoutingInfo

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RunTaskRoutingInfo

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.RustVersionCondition.html b/docs/api/cli/types/struct.RustVersionCondition.html index 76f31ec01..96e2fe2bc 100644 --- a/docs/api/cli/types/struct.RustVersionCondition.html +++ b/docs/api/cli/types/struct.RustVersionCondition.html @@ -1,24 +1,25 @@ -RustVersionCondition in cli::types - Rust
pub struct RustVersionCondition {
+RustVersionCondition in cli::types - Rust
+    
pub struct RustVersionCondition {
     pub min: Option<String>,
     pub max: Option<String>,
     pub equal: Option<String>,
 }
Expand description

Rust version condition structure

-

Fields§

§min: Option<String>

min version number

-
§max: Option<String>

max version number

-
§equal: Option<String>

specific version number

-

Trait Implementations§

source§

impl Clone for RustVersionCondition

source§

fn clone(&self) -> RustVersionCondition

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 RustVersionCondition

source§

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

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

impl<'de> Deserialize<'de> for RustVersionCondition

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RustVersionCondition

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§min: Option<String>

min version number

+
§max: Option<String>

max version number

+
§equal: Option<String>

specific version number

+

Trait Implementations§

source§

impl Clone for RustVersionCondition

source§

fn clone(&self) -> RustVersionCondition

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 RustVersionCondition

source§

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

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

impl<'de> Deserialize<'de> for RustVersionCondition

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for RustVersionCondition

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.ScriptSections.html b/docs/api/cli/types/struct.ScriptSections.html index d74736cc0..aaf9914cb 100644 --- a/docs/api/cli/types/struct.ScriptSections.html +++ b/docs/api/cli/types/struct.ScriptSections.html @@ -1,24 +1,25 @@ -ScriptSections in cli::types - Rust

Struct cli::types::ScriptSections

source ·
pub struct ScriptSections {
+ScriptSections in cli::types - Rust
+    

Struct cli::types::ScriptSections

source ·
pub struct ScriptSections {
     pub pre: Option<String>,
     pub main: Option<String>,
     pub post: Option<String>,
 }
Expand description

Script content split to parts to enable a more fine tuned extension capability

-

Fields§

§pre: Option<String>

Script section

-
§main: Option<String>

Script section

-
§post: Option<String>

Script section

-

Trait Implementations§

source§

impl Clone for ScriptSections

source§

fn clone(&self) -> ScriptSections

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 ScriptSections

source§

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

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

impl<'de> Deserialize<'de> for ScriptSections

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ScriptSections

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§pre: Option<String>

Script section

+
§main: Option<String>

Script section

+
§post: Option<String>

Script section

+

Trait Implementations§

source§

impl Clone for ScriptSections

source§

fn clone(&self) -> ScriptSections

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 ScriptSections

source§

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

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

impl<'de> Deserialize<'de> for ScriptSections

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for ScriptSections

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.Step.html b/docs/api/cli/types/struct.Step.html index 8cbb3ced7..0eff16295 100644 --- a/docs/api/cli/types/struct.Step.html +++ b/docs/api/cli/types/struct.Step.html @@ -1,20 +1,21 @@ -Step in cli::types - Rust

Struct cli::types::Step

source ·
pub struct Step {
+Step in cli::types - Rust
+    

Struct cli::types::Step

source ·
pub struct Step {
     pub name: String,
     pub config: Task,
 }
Expand description

Execution plan step to execute

-

Fields§

§name: String

The task name

-
§config: Task

The task config

-

Trait Implementations§

source§

impl Clone for Step

source§

fn clone(&self) -> Step

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 Step

source§

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

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

impl Serialize for Step

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Step

§

impl Send for Step

§

impl Sync for Step

§

impl Unpin for Step

§

impl UnwindSafe for Step

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§name: String

The task name

+
§config: Task

The task config

+

Trait Implementations§

source§

impl Clone for Step

source§

fn clone(&self) -> Step

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 Step

source§

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

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

impl Serialize for Step

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Step

§

impl Send for Step

§

impl Sync for Step

§

impl Unpin for Step

§

impl UnwindSafe for Step

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/api/cli/types/struct.Task.html b/docs/api/cli/types/struct.Task.html index 753bac5a0..60d75a81a 100644 --- a/docs/api/cli/types/struct.Task.html +++ b/docs/api/cli/types/struct.Task.html @@ -1,4 +1,5 @@ -Task in cli::types - Rust

Struct cli::types::Task

source ·
pub struct Task {
Show 36 fields +Task in cli::types - Rust +

Struct cli::types::Task

source ·
pub struct Task {
Show 36 fields pub clear: Option<bool>, pub description: Option<String>, pub category: Option<String>, @@ -36,69 +37,69 @@ pub windows: Option<PlatformOverrideTask>, pub mac: Option<PlatformOverrideTask>,
}
Expand description

Holds a single task configuration such as command and dependencies list

-

Fields§

§clear: Option<bool>

if true, it should ignore all data in base task

-
§description: Option<String>

Task description

-
§category: Option<String>

Category name used to document the task

-
§disabled: Option<bool>

if true, the command/script of this task will not be invoked, dependencies however will be

-
§private: Option<bool>

if true, the task is hidden from the list of available tasks and also cannot be invoked directly from cli

-
§deprecated: Option<DeprecationInfo>

if not false, this task is defined as deprecated

-
§extend: Option<String>

Extend any task based on the defined name

-
§workspace: Option<bool>

set to false to notify cargo-make that this is not a workspace and should not call task for every member (same as –no-workspace CLI flag)

-
§plugin: Option<String>

Optional plugin used to execute the task

-
§watch: Option<TaskWatchOptions>

set to true to watch for file changes and invoke the task operation

-
§condition: Option<TaskCondition>

if provided all condition values must be met in order for the task to be invoked (will not stop dependencies)

-
§condition_script: Option<Vec<String>>

if script exit code is not 0, the command/script of this task will not be invoked, dependencies however will be

-
§ignore_errors: Option<bool>

if true, any error while executing the task will be printed but will not break the build

-
§force: Option<bool>

DEPRECATED, replaced with ignore_errors

-
§env_files: Option<Vec<EnvFile>>

The env files to setup before running the task commands

-
§env: Option<IndexMap<String, EnvValue>>

The env vars to setup before running the task commands

-
§cwd: Option<String>

The working directory for the task to execute its command/script

-
§alias: Option<String>

if defined, task points to another task and all other properties are ignored

-
§linux_alias: Option<String>

acts like alias if runtime OS is Linux (takes precedence over alias)

-
§windows_alias: Option<String>

acts like alias if runtime OS is Windows (takes precedence over alias)

-
§mac_alias: Option<String>

acts like alias if runtime OS is Mac (takes precedence over alias)

-
§install_crate: Option<InstallCrate>

if defined, the provided crate will be installed (if needed) before running the task

-
§install_crate_args: Option<Vec<String>>

additional cargo install arguments

-
§install_script: Option<ScriptValue>

if defined, the provided script will be executed before running the task

-
§command: Option<String>

The command to execute

-
§args: Option<Vec<String>>

The command args

-
§script: Option<ScriptValue>

If command is not defined, and script is defined, the provided script will be executed

-
§script_runner: Option<String>

The script runner (defaults to cmd in windows and sh for other platforms)

-
§script_runner_args: Option<Vec<String>>

The script runner arguments before the script file path

-
§script_extension: Option<String>

The script file extension

-
§run_task: Option<RunTaskInfo>

The task name to execute

-
§dependencies: Option<Vec<DependencyIdentifier>>

A list of tasks to execute before this task

-
§toolchain: Option<ToolchainSpecifier>

The rust toolchain used to invoke the command or install the needed crates/components

-
§linux: Option<PlatformOverrideTask>

override task if runtime OS is Linux (takes precedence over alias)

-
§windows: Option<PlatformOverrideTask>

override task if runtime OS is Windows (takes precedence over alias)

-
§mac: Option<PlatformOverrideTask>

override task if runtime OS is Mac (takes precedence over alias)

-

Implementations§

source§

impl Task

source

pub fn new() -> Task

Creates and returns a new instance.

-
source

pub fn apply(self: &mut Task, modify_config: &ModifyConfig)

Apply modifications

-
source

pub fn extend(self: &mut Task, task: &Task)

Copies values from the task into self.

+

Fields§

§clear: Option<bool>

if true, it should ignore all data in base task

+
§description: Option<String>

Task description

+
§category: Option<String>

Category name used to document the task

+
§disabled: Option<bool>

if true, the command/script of this task will not be invoked, dependencies however will be

+
§private: Option<bool>

if true, the task is hidden from the list of available tasks and also cannot be invoked directly from cli

+
§deprecated: Option<DeprecationInfo>

if not false, this task is defined as deprecated

+
§extend: Option<String>

Extend any task based on the defined name

+
§workspace: Option<bool>

set to false to notify cargo-make that this is not a workspace and should not call task for every member (same as –no-workspace CLI flag)

+
§plugin: Option<String>

Optional plugin used to execute the task

+
§watch: Option<TaskWatchOptions>

set to true to watch for file changes and invoke the task operation

+
§condition: Option<TaskCondition>

if provided all condition values must be met in order for the task to be invoked (will not stop dependencies)

+
§condition_script: Option<Vec<String>>

if script exit code is not 0, the command/script of this task will not be invoked, dependencies however will be

+
§ignore_errors: Option<bool>

if true, any error while executing the task will be printed but will not break the build

+
§force: Option<bool>

DEPRECATED, replaced with ignore_errors

+
§env_files: Option<Vec<EnvFile>>

The env files to setup before running the task commands

+
§env: Option<IndexMap<String, EnvValue>>

The env vars to setup before running the task commands

+
§cwd: Option<String>

The working directory for the task to execute its command/script

+
§alias: Option<String>

if defined, task points to another task and all other properties are ignored

+
§linux_alias: Option<String>

acts like alias if runtime OS is Linux (takes precedence over alias)

+
§windows_alias: Option<String>

acts like alias if runtime OS is Windows (takes precedence over alias)

+
§mac_alias: Option<String>

acts like alias if runtime OS is Mac (takes precedence over alias)

+
§install_crate: Option<InstallCrate>

if defined, the provided crate will be installed (if needed) before running the task

+
§install_crate_args: Option<Vec<String>>

additional cargo install arguments

+
§install_script: Option<ScriptValue>

if defined, the provided script will be executed before running the task

+
§command: Option<String>

The command to execute

+
§args: Option<Vec<String>>

The command args

+
§script: Option<ScriptValue>

If command is not defined, and script is defined, the provided script will be executed

+
§script_runner: Option<String>

The script runner (defaults to cmd in windows and sh for other platforms)

+
§script_runner_args: Option<Vec<String>>

The script runner arguments before the script file path

+
§script_extension: Option<String>

The script file extension

+
§run_task: Option<RunTaskInfo>

The task name to execute

+
§dependencies: Option<Vec<DependencyIdentifier>>

A list of tasks to execute before this task

+
§toolchain: Option<ToolchainSpecifier>

The rust toolchain used to invoke the command or install the needed crates/components

+
§linux: Option<PlatformOverrideTask>

override task if runtime OS is Linux (takes precedence over alias)

+
§windows: Option<PlatformOverrideTask>

override task if runtime OS is Windows (takes precedence over alias)

+
§mac: Option<PlatformOverrideTask>

override task if runtime OS is Mac (takes precedence over alias)

+

Implementations§

source§

impl Task

source

pub fn new() -> Task

Creates and returns a new instance.

+
source

pub fn apply(self: &mut Task, modify_config: &ModifyConfig)

Apply modifications

+
source

pub fn extend(self: &mut Task, task: &Task)

Copies values from the task into self.

Arguments
  • task - The task to copy from
-
source

pub fn should_ignore_errors(self: &Task) -> bool

Returns true if the task ignore_errors attribute is defined and true

-
source

pub fn get_normalized_task(self: &mut Task) -> Task

Returns a new task based on the override information and current platform.

-
source

pub fn get_alias(self: &Task) -> Option<String>

Returns the alias value based on the current platform and task definition.

-
source

pub fn get_actions_count(self: &Task) -> u8

Returns the amount of actions defined on the task

-
source

pub fn is_actionable(self: &Task) -> bool

Returns true if the task has any actions on its own +

source

pub fn should_ignore_errors(self: &Task) -> bool

Returns true if the task ignore_errors attribute is defined and true

+
source

pub fn get_normalized_task(self: &mut Task) -> Task

Returns a new task based on the override information and current platform.

+
source

pub fn get_alias(self: &Task) -> Option<String>

Returns the alias value based on the current platform and task definition.

+
source

pub fn get_actions_count(self: &Task) -> u8

Returns the amount of actions defined on the task

+
source

pub fn is_actionable(self: &Task) -> bool

Returns true if the task has any actions on its own or if it modifies the environment in any way.

-
source

pub fn is_valid(self: &Task) -> bool

Returns true if the task is valid

-

Trait Implementations§

source§

impl Clone for Task

source§

fn clone(&self) -> Task

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 Task

source§

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

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

impl Default for Task

source§

fn default() -> Task

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Task

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Task

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Task

§

impl Send for Task

§

impl Sync for Task

§

impl Unpin for Task

§

impl UnwindSafe for Task

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+
source

pub fn is_valid(self: &Task) -> bool

Returns true if the task is valid

+

Trait Implementations§

source§

impl Clone for Task

source§

fn clone(&self) -> Task

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 Task

source§

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

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

impl Default for Task

source§

fn default() -> Task

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Task

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Task

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Task

§

impl Send for Task

§

impl Sync for Task

§

impl Unpin for Task

§

impl UnwindSafe for Task

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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.TaskCondition.html b/docs/api/cli/types/struct.TaskCondition.html index 26daed71a..f5035bc44 100644 --- a/docs/api/cli/types/struct.TaskCondition.html +++ b/docs/api/cli/types/struct.TaskCondition.html @@ -1,4 +1,5 @@ -TaskCondition in cli::types - Rust

Struct cli::types::TaskCondition

source ·
pub struct TaskCondition {
Show 15 fields +TaskCondition in cli::types - Rust +

Struct cli::types::TaskCondition

source ·
pub struct TaskCondition {
Show 15 fields pub fail_message: Option<String>, pub profiles: Option<Vec<String>>, pub os: Option<Vec<String>>, @@ -15,34 +16,34 @@ pub files_not_exist: Option<Vec<String>>, pub files_modified: Option<FilesFilesModifiedCondition>,
}
Expand description

Holds condition attributes

-

Fields§

§fail_message: Option<String>

Failure message

-
§profiles: Option<Vec<String>>

Profile names (development, …)

-
§os: Option<Vec<String>>

As defined in the cfg target_os

-
§platforms: Option<Vec<String>>

Platform names (linux, windows, mac)

-
§channels: Option<Vec<String>>

Channel names (stable, beta, nightly)

-
§env_set: Option<Vec<String>>

Environment variables which must be defined

-
§env_not_set: Option<Vec<String>>

Environment variables which must not be defined

-
§env: Option<IndexMap<String, String>>

Environment variables and their values

-
§env_true: Option<Vec<String>>

Environment variables which are defined as true

-
§env_false: Option<Vec<String>>

Environment variables which are defined as false

-
§env_contains: Option<IndexMap<String, String>>

Environment variables and the values which they are required to contain

-
§rust_version: Option<RustVersionCondition>

Rust version condition

-
§files_exist: Option<Vec<String>>

Files exist

-
§files_not_exist: Option<Vec<String>>

Files which do not exist

-
§files_modified: Option<FilesFilesModifiedCondition>

Files modified since last execution

-

Trait Implementations§

source§

impl Clone for TaskCondition

source§

fn clone(&self) -> TaskCondition

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 TaskCondition

source§

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

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

impl<'de> Deserialize<'de> for TaskCondition

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for TaskCondition

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+

Fields§

§fail_message: Option<String>

Failure message

+
§profiles: Option<Vec<String>>

Profile names (development, …)

+
§os: Option<Vec<String>>

As defined in the cfg target_os

+
§platforms: Option<Vec<String>>

Platform names (linux, windows, mac)

+
§channels: Option<Vec<String>>

Channel names (stable, beta, nightly)

+
§env_set: Option<Vec<String>>

Environment variables which must be defined

+
§env_not_set: Option<Vec<String>>

Environment variables which must not be defined

+
§env: Option<IndexMap<String, String>>

Environment variables and their values

+
§env_true: Option<Vec<String>>

Environment variables which are defined as true

+
§env_false: Option<Vec<String>>

Environment variables which are defined as false

+
§env_contains: Option<IndexMap<String, String>>

Environment variables and the values which they are required to contain

+
§rust_version: Option<RustVersionCondition>

Rust version condition

+
§files_exist: Option<Vec<String>>

Files exist

+
§files_not_exist: Option<Vec<String>>

Files which do not exist

+
§files_modified: Option<FilesFilesModifiedCondition>

Files modified since last execution

+

Trait Implementations§

source§

impl Clone for TaskCondition

source§

fn clone(&self) -> TaskCondition

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 TaskCondition

source§

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

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

impl<'de> Deserialize<'de> for TaskCondition

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for TaskCondition

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. 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
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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.TaskIdentifier.html b/docs/api/cli/types/struct.TaskIdentifier.html index d9eb7a309..2a21f311d 100644 --- a/docs/api/cli/types/struct.TaskIdentifier.html +++ b/docs/api/cli/types/struct.TaskIdentifier.html @@ -1,32 +1,33 @@ -TaskIdentifier in cli::types - Rust

Struct cli::types::TaskIdentifier

source ·
pub struct TaskIdentifier {
+TaskIdentifier in cli::types - Rust
+    

Struct cli::types::TaskIdentifier

source ·
pub struct TaskIdentifier {
     pub name: String,
     pub path: Option<String>,
 }
Expand description

An identifier for a task

-

Fields§

§name: String

The task name to execute

-
§path: Option<String>

The path to the makefile the task resides in

-

Implementations§

source§

impl TaskIdentifier

source

pub fn from_name(name: &str) -> Self

Create a new TaskIdentifier referencing a task in the current file

-

Trait Implementations§

source§

impl Clone for TaskIdentifier

source§

fn clone(&self) -> TaskIdentifier

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 TaskIdentifier

source§

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

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

impl<'de> Deserialize<'de> for TaskIdentifier

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for TaskIdentifier

source§

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

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

impl Into<TaskIdentifier> for DependencyIdentifier

source§

fn into(self) -> TaskIdentifier

Converts this type into the (usually inferred) input type.
source§

impl PartialEq<TaskIdentifier> for TaskIdentifier

source§

fn eq(&self, other: &TaskIdentifier) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Serialize for TaskIdentifier

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for TaskIdentifier

source§

impl StructuralEq for TaskIdentifier

source§

impl StructuralPartialEq for TaskIdentifier

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
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
source§

impl<Q, K> Equivalent<K> for Qwhere +

Fields§

§name: String

The task name to execute

+
§path: Option<String>

The path to the makefile the task resides in

+

Implementations§

source§

impl TaskIdentifier

source

pub fn from_name(name: &str) -> Self

Create a new TaskIdentifier referencing a task in the current file

+

Trait Implementations§

source§

impl Clone for TaskIdentifier

source§

fn clone(&self) -> TaskIdentifier

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 TaskIdentifier

source§

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

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

impl<'de> Deserialize<'de> for TaskIdentifier

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for TaskIdentifier

source§

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

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

impl Into<TaskIdentifier> for DependencyIdentifier

source§

fn into(self) -> TaskIdentifier

Converts this type into the (usually inferred) input type.
source§

impl PartialEq for TaskIdentifier

source§

fn eq(&self, other: &TaskIdentifier) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Serialize for TaskIdentifier

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for TaskIdentifier

source§

impl StructuralEq for TaskIdentifier

source§

impl StructuralPartialEq for TaskIdentifier

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
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
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ K: Borrow<Q> + ?Sized,
§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

\ No newline at end of file +
§

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
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<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/docs/api/cli/types/struct.TestArg.html b/docs/api/cli/types/struct.TestArg.html index 93af37afb..832da8ccb 100644 --- a/docs/api/cli/types/struct.TestArg.html +++ b/docs/api/cli/types/struct.TestArg.html @@ -1,27 +1,28 @@ -TestArg in cli::types - Rust

Struct cli::types::TestArg

source ·
pub struct TestArg {
+TestArg in cli::types - Rust
+    

Struct cli::types::TestArg

source ·
pub struct TestArg {
     pub inner: Vec<String>,
 }
Expand description

Arguments used to check whether a crate or rustup component is installed.

Deserialize into an array of strings. Allows both a single string (which will become a single-element array) or a sequence of strings.

-

Fields§

§inner: Vec<String>

Content of the arguments

-

Methods from Deref<Target = Vec<String>>§

1.0.0 · source

pub fn capacity(&self) -> usize

Returns the total number of elements the vector can hold without +

Fields§

§inner: Vec<String>

Content of the arguments

+

Methods from Deref<Target = Vec<String>>§

1.0.0 · source

pub fn capacity(&self) -> usize

Returns the total number of elements the vector can hold without reallocating.

Examples
let mut vec: Vec<i32> = Vec::with_capacity(10);
 vec.push(42);
 assert!(vec.capacity() >= 10);
-
1.0.0 · source

pub fn reserve(&mut self, additional: usize)

Reserves capacity for at least additional more elements to be inserted +

1.0.0 · source

pub fn reserve(&mut self, additional: usize)

Reserves capacity for at least additional more elements to be inserted in the given Vec<T>. The collection may reserve more space to speculatively avoid frequent reallocations. After calling reserve, capacity will be greater than or equal to self.len() + additional. Does nothing if capacity is already sufficient.

Panics
-

Panics if the new capacity exceeds isize::MAX bytes.

+

Panics if the new capacity exceeds isize::MAX bytes.

Examples
let mut vec = vec![1];
 vec.reserve(10);
 assert!(vec.capacity() >= 11);
-
1.0.0 · source

pub fn reserve_exact(&mut self, additional: usize)

Reserves the minimum capacity for at least additional more elements to +

1.0.0 · source

pub fn reserve_exact(&mut self, additional: usize)

Reserves the minimum capacity for at least additional more elements to be inserted in the given Vec<T>. Unlike reserve, this will not deliberately over-allocate to speculatively avoid frequent allocations. After calling reserve_exact, capacity will be greater than or equal to @@ -31,12 +32,12 @@

Examples
requests. Therefore, capacity can not be relied upon to be precisely minimal. Prefer reserve if future insertions are expected.

Panics
-

Panics if the new capacity exceeds isize::MAX bytes.

+

Panics if the new capacity exceeds isize::MAX bytes.

Examples
let mut vec = vec![1];
 vec.reserve_exact(10);
 assert!(vec.capacity() >= 11);
-
1.57.0 · source

pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>

Tries to reserve capacity for at least additional more elements to be inserted +

1.57.0 · source

pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>

Tries to reserve capacity for at least additional more elements to be inserted in the given Vec<T>. The collection may reserve more space to speculatively avoid frequent reallocations. After calling try_reserve, capacity will be greater than or equal to self.len() + additional if it returns @@ -51,17 +52,17 @@

Examples
fn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> { let mut output = Vec::new(); - // Pre-reserve the memory, exiting if we can't + // Pre-reserve the memory, exiting if we can't output.try_reserve(data.len())?; - // Now we know this can't OOM in the middle of our complex work + // Now we know this can't OOM in the middle of our complex work output.extend(data.iter().map(|&val| { val * 2 + 5 // very complicated })); Ok(output) }
-
1.57.0 · source

pub fn try_reserve_exact( +

1.57.0 · source

pub fn try_reserve_exact( &mut self, additional: usize ) -> Result<(), TryReserveError>

Tries to reserve the minimum capacity for at least additional @@ -82,17 +83,17 @@

Examples
fn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> { let mut output = Vec::new(); - // Pre-reserve the memory, exiting if we can't + // Pre-reserve the memory, exiting if we can't output.try_reserve_exact(data.len())?; - // Now we know this can't OOM in the middle of our complex work + // Now we know this can't OOM in the middle of our complex work output.extend(data.iter().map(|&val| { val * 2 + 5 // very complicated })); Ok(output) }
-
1.0.0 · source

pub fn shrink_to_fit(&mut self)

Shrinks the capacity of the vector as much as possible.

+
1.0.0 · source

pub fn shrink_to_fit(&mut self)

Shrinks the capacity of the vector as much as possible.

It will drop down as close as possible to the length but the allocator may still inform the vector that there is space for a few more elements.

Examples
@@ -101,7 +102,7 @@
Examples
assert!(vec.capacity() >= 10); vec.shrink_to_fit(); assert!(vec.capacity() >= 3);
-
1.56.0 · source

pub fn shrink_to(&mut self, min_capacity: usize)

Shrinks the capacity of the vector with a lower bound.

+
1.56.0 · source

pub fn shrink_to(&mut self, min_capacity: usize)

Shrinks the capacity of the vector with a lower bound.

The capacity will remain at least as large as both the length and the supplied value.

If the current capacity is less than the lower limit, this is a no-op.

@@ -113,10 +114,10 @@
Examples
assert!(vec.capacity() >= 4); vec.shrink_to(0); assert!(vec.capacity() >= 3);
-
1.0.0 · source

pub fn truncate(&mut self, len: usize)

Shortens the vector, keeping the first len elements and dropping +

1.0.0 · source

pub fn truncate(&mut self, len: usize)

Shortens the vector, keeping the first len elements and dropping the rest.

-

If len is greater than the vector’s current length, this has no -effect.

+

If len is greater or equal to the vector’s current length, this has +no effect.

The drain method can emulate truncate, but causes the excess elements to be returned instead of dropped.

Note that this method has no effect on the allocated capacity @@ -139,19 +140,19 @@

Examples
let mut vec = vec![1, 2, 3];
 vec.truncate(0);
 assert_eq!(vec, []);
-
1.7.0 · source

pub fn as_slice(&self) -> &[T]

Extracts a slice containing the entire vector.

+
1.7.0 · source

pub fn as_slice(&self) -> &[T]

Extracts a slice containing the entire vector.

Equivalent to &s[..].

Examples
use std::io::{self, Write};
 let buffer = vec![1, 2, 3, 5, 8];
 io::sink().write(buffer.as_slice()).unwrap();
-
1.7.0 · source

pub fn as_mut_slice(&mut self) -> &mut [T]

Extracts a mutable slice of the entire vector.

+
1.7.0 · source

pub fn as_mut_slice(&mut self) -> &mut [T]

Extracts a mutable slice of the entire vector.

Equivalent to &mut s[..].

Examples
use std::io::{self, Read};
 let mut buffer = vec![0; 3];
 io::repeat(0b101).read_exact(buffer.as_mut_slice()).unwrap();
-
1.37.0 · source

pub fn as_ptr(&self) -> *const T

Returns a raw pointer to the vector’s buffer, or a dangling raw pointer +

1.37.0 · source

pub fn as_ptr(&self) -> *const T

Returns a raw pointer to the vector’s buffer, or a dangling raw pointer valid for zero sized reads if the vector didn’t allocate.

The caller must ensure that the vector outlives the pointer this function returns, or else it will end up pointing to garbage. @@ -160,6 +161,13 @@

Examples

The caller must also ensure that the memory the pointer (non-transitively) points to is never written to (except inside an UnsafeCell) using this pointer or any pointer derived from it. If you need to mutate the contents of the slice, use as_mut_ptr.

+

This method guarantees that for the purpose of the aliasing model, this method +does not materialize a reference to the underlying slice, and thus the returned pointer +will remain valid when mixed with other calls to as_ptr and as_mut_ptr. +Note that calling other methods that materialize mutable references to the slice, +or mutable references to specific elements you are planning on accessing through this pointer, +as well as writing to those elements, may still invalidate this pointer. +See the second example below for how this guarantee can be used.

Examples
let x = vec![1, 2, 4];
 let x_ptr = x.as_ptr();
@@ -169,12 +177,31 @@ 
Examples
assert_eq!(*x_ptr.add(i), 1 << i); } }
-
1.37.0 · source

pub fn as_mut_ptr(&mut self) -> *mut T

Returns an unsafe mutable pointer to the vector’s buffer, or a dangling +

Due to the aliasing guarantee, the following code is legal:

+ +
unsafe {
+    let mut v = vec![0, 1, 2];
+    let ptr1 = v.as_ptr();
+    let _ = ptr1.read();
+    let ptr2 = v.as_mut_ptr().offset(2);
+    ptr2.write(2);
+    // Notably, the write to `ptr2` did *not* invalidate `ptr1`
+    // because it mutated a different element:
+    let _ = ptr1.read();
+}
+
1.37.0 · source

pub fn as_mut_ptr(&mut self) -> *mut T

Returns an unsafe mutable pointer to the vector’s buffer, or a dangling raw pointer valid for zero sized reads if the vector didn’t allocate.

The caller must ensure that the vector outlives the pointer this function returns, or else it will end up pointing to garbage. Modifying the vector may cause its buffer to be reallocated, which would also make any pointers to it invalid.

+

This method guarantees that for the purpose of the aliasing model, this method +does not materialize a reference to the underlying slice, and thus the returned pointer +will remain valid when mixed with other calls to as_ptr and as_mut_ptr. +Note that calling other methods that materialize references to the slice, +or references to specific elements you are planning on accessing through this pointer, +may still invalidate this pointer. +See the second example below for how this guarantee can be used.

Examples
// Allocate vector big enough for 4 elements.
 let size = 4;
@@ -189,8 +216,19 @@ 
Examples
x.set_len(size); } assert_eq!(&*x, &[0, 1, 2, 3]);
-
source

pub fn allocator(&self) -> &A

🔬This is a nightly-only experimental API. (allocator_api)

Returns a reference to the underlying allocator.

-
1.0.0 · source

pub unsafe fn set_len(&mut self, new_len: usize)

Forces the length of the vector to new_len.

+

Due to the aliasing guarantee, the following code is legal:

+ +
unsafe {
+    let mut v = vec![0];
+    let ptr1 = v.as_mut_ptr();
+    ptr1.write(1);
+    let ptr2 = v.as_mut_ptr();
+    ptr2.write(2);
+    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:
+    ptr1.write(3);
+}
+
source

pub fn allocator(&self) -> &A

🔬This is a nightly-only experimental API. (allocator_api)

Returns a reference to the underlying allocator.

+
1.0.0 · source

pub unsafe fn set_len(&mut self, new_len: usize)

Forces the length of the vector to new_len.

This is a low-level operation that maintains none of the normal invariants of the type. Normally changing the length of a vector is done using one of the safe operations instead, such as @@ -205,7 +243,7 @@

Examples
is serving as a buffer for other code, particularly over FFI:

pub fn get_dictionary(&self) -> Option<Vec<u8>> {
-    // Per the FFI method's docs, "32768 bytes is always enough".
+    // Per the FFI method's docs, "32768 bytes is always enough".
     let mut dict = Vec::with_capacity(32_768);
     let mut dict_length = 0;
     // SAFETY: When `deflateGetDictionary` returns `Z_OK`, it holds that:
@@ -238,21 +276,21 @@ 
Examples
}

Normally, here, one would use clear instead to correctly drop the contents and thus not leak memory.

-
1.0.0 · source

pub fn swap_remove(&mut self, index: usize) -> T

Removes an element from the vector and returns it.

+
1.0.0 · source

pub fn swap_remove(&mut self, index: usize) -> T

Removes an element from the vector and returns it.

The removed element is replaced by the last element of the vector.

This does not preserve ordering, but is O(1). If you need to preserve the element order, use remove instead.

Panics

Panics if index is out of bounds.

Examples
-
let mut v = vec!["foo", "bar", "baz", "qux"];
+
let mut v = vec!["foo", "bar", "baz", "qux"];
 
-assert_eq!(v.swap_remove(1), "bar");
-assert_eq!(v, ["foo", "qux", "baz"]);
+assert_eq!(v.swap_remove(1), "bar");
+assert_eq!(v, ["foo", "qux", "baz"]);
 
-assert_eq!(v.swap_remove(0), "foo");
-assert_eq!(v, ["baz", "qux"]);
-
1.0.0 · source

pub fn insert(&mut self, index: usize, element: T)

Inserts an element at position index within the vector, shifting all +assert_eq!(v.swap_remove(0), "foo"); +assert_eq!(v, ["baz", "qux"]);

+
1.0.0 · source

pub fn insert(&mut self, index: usize, element: T)

Inserts an element at position index within the vector, shifting all elements after it to the right.

Panics

Panics if index > len.

@@ -262,7 +300,7 @@
Examples
assert_eq!(vec, [1, 4, 2, 3]); vec.insert(4, 5); assert_eq!(vec, [1, 4, 2, 3, 5]);
-
1.0.0 · source

pub fn remove(&mut self, index: usize) -> T

Removes and returns the element at position index within the vector, +

1.0.0 · source

pub fn remove(&mut self, index: usize) -> T

Removes and returns the element at position index within the vector, shifting all elements after it to the left.

Note: Because this shifts over the remaining elements, it has a worst-case performance of O(n). If you don’t need the order of elements @@ -275,8 +313,8 @@

Examples
let mut v = vec![1, 2, 3];
 assert_eq!(v.remove(1), 2);
 assert_eq!(v, [1, 3]);
-
1.0.0 · source

pub fn retain<F>(&mut self, f: F)where - F: FnMut(&T) -> bool,

Retains only the elements specified by the predicate.

+
1.0.0 · source

pub fn retain<F>(&mut self, f: F)
where + F: FnMut(&T) -> bool,

Retains only the elements specified by the predicate.

In other words, remove all elements e for which f(&e) returns false. This method operates in place, visiting each element exactly once in the original order, and preserves the order of the retained elements.

@@ -292,8 +330,8 @@
Examples
let mut iter = keep.iter(); vec.retain(|_| *iter.next().unwrap()); assert_eq!(vec, [2, 3, 5]);
-
1.61.0 · source

pub fn retain_mut<F>(&mut self, f: F)where - F: FnMut(&mut T) -> bool,

Retains only the elements specified by the predicate, passing a mutable reference to it.

+
1.61.0 · source

pub fn retain_mut<F>(&mut self, f: F)
where + F: FnMut(&mut T) -> bool,

Retains only the elements specified by the predicate, passing a mutable reference to it.

In other words, remove all elements e such that f(&mut e) returns false. This method operates in place, visiting each element exactly once in the original order, and preserves the order of the retained elements.

@@ -306,9 +344,9 @@
Examples
false }); assert_eq!(vec, [2, 3, 4]);
-
1.16.0 · source

pub fn dedup_by_key<F, K>(&mut self, key: F)where +

1.16.0 · source

pub fn dedup_by_key<F, K>(&mut self, key: F)
where F: FnMut(&mut T) -> K, - K: PartialEq<K>,

Removes all but the first of consecutive elements in the vector that resolve to the same + K: PartialEq,

Removes all but the first of consecutive elements in the vector that resolve to the same key.

If the vector is sorted, this removes all duplicates.

Examples
@@ -317,27 +355,27 @@
Examples
vec.dedup_by_key(|i| *i / 10); assert_eq!(vec, [10, 20, 30, 20]);
-
1.16.0 · source

pub fn dedup_by<F>(&mut self, same_bucket: F)where - F: FnMut(&mut T, &mut T) -> bool,

Removes all but the first of consecutive elements in the vector satisfying a given equality +

1.16.0 · source

pub fn dedup_by<F>(&mut self, same_bucket: F)
where + F: FnMut(&mut T, &mut T) -> bool,

Removes all but the first of consecutive elements in the vector satisfying a given equality relation.

The same_bucket function is passed references to two elements from the vector and must determine if the elements compare equal. The elements are passed in opposite order from their order in the slice, so if same_bucket(a, b) returns true, a is removed.

If the vector is sorted, this removes all duplicates.

Examples
-
let mut vec = vec!["foo", "bar", "Bar", "baz", "bar"];
+
let mut vec = vec!["foo", "bar", "Bar", "baz", "bar"];
 
 vec.dedup_by(|a, b| a.eq_ignore_ascii_case(b));
 
-assert_eq!(vec, ["foo", "bar", "baz", "bar"]);
-
1.0.0 · source

pub fn push(&mut self, value: T)

Appends an element to the back of a collection.

+assert_eq!(vec, ["foo", "bar", "baz", "bar"]);
+
1.0.0 · source

pub fn push(&mut self, value: T)

Appends an element to the back of a collection.

Panics
-

Panics if the new capacity exceeds isize::MAX bytes.

+

Panics if the new capacity exceeds isize::MAX bytes.

Examples
let mut vec = vec![1, 2];
 vec.push(3);
 assert_eq!(vec, [1, 2, 3]);
-
source

pub fn push_within_capacity(&mut self, value: T) -> Result<(), T>

🔬This is a nightly-only experimental API. (vec_push_within_capacity)

Appends an element if there is sufficient spare capacity, otherwise an error is returned +

source

pub fn push_within_capacity(&mut self, value: T) -> Result<(), T>

🔬This is a nightly-only experimental API. (vec_push_within_capacity)

Appends an element if there is sufficient spare capacity, otherwise an error is returned with the element.

Unlike push this method will not reallocate when there’s insufficient capacity. The caller should use reserve or try_reserve to ensure that there is enough capacity.

@@ -359,7 +397,7 @@
Examples
Ok(vec) } assert_eq!(from_iter_fallible(0..100), Ok(Vec::from_iter(0..100)));
-
1.0.0 · source

pub fn pop(&mut self) -> Option<T>

Removes the last element from a vector and returns it, or None if it +

1.0.0 · source

pub fn pop(&mut self) -> Option<T>

Removes the last element from a vector and returns it, or None if it is empty.

If you’d like to pop the first element, consider using VecDeque::pop_front instead.

@@ -367,17 +405,17 @@
Examples
let mut vec = vec![1, 2, 3];
 assert_eq!(vec.pop(), Some(3));
 assert_eq!(vec, [1, 2]);
-
1.4.0 · source

pub fn append(&mut self, other: &mut Vec<T, A>)

Moves all the elements of other into self, leaving other empty.

+
1.4.0 · source

pub fn append(&mut self, other: &mut Vec<T, A>)

Moves all the elements of other into self, leaving other empty.

Panics
-

Panics if the new capacity exceeds isize::MAX bytes.

+

Panics if the new capacity exceeds isize::MAX bytes.

Examples
let mut vec = vec![1, 2, 3];
 let mut vec2 = vec![4, 5, 6];
 vec.append(&mut vec2);
 assert_eq!(vec, [1, 2, 3, 4, 5, 6]);
 assert_eq!(vec2, []);
-
1.6.0 · source

pub fn drain<R>(&mut self, range: R) -> Drain<'_, T, A>where - R: RangeBounds<usize>,

Removes the specified range from the vector in bulk, returning all +

1.6.0 · source

pub fn drain<R>(&mut self, range: R) -> Drain<'_, T, A>
where + R: RangeBounds<usize>,

Removes the specified range from the vector in bulk, returning all removed elements as an iterator. If the iterator is dropped before being fully consumed, it drops the remaining removed elements.

The returned iterator keeps a mutable borrow on the vector to optimize @@ -398,7 +436,7 @@

Examples
// A full range clears the vector, like `clear()` does v.drain(..); assert_eq!(v, &[]);
-
1.0.0 · source

pub fn clear(&mut self)

Clears the vector, removing all values.

+
1.0.0 · source

pub fn clear(&mut self)

Clears the vector, removing all values.

Note that this method has no effect on the allocated capacity of the vector.

Examples
@@ -407,20 +445,20 @@
Examples
v.clear(); assert!(v.is_empty());
-
1.0.0 · source

pub fn len(&self) -> usize

Returns the number of elements in the vector, also referred to +

1.0.0 · source

pub fn len(&self) -> usize

Returns the number of elements in the vector, also referred to as its ‘length’.

Examples
let a = vec![1, 2, 3];
 assert_eq!(a.len(), 3);
-
1.0.0 · source

pub fn is_empty(&self) -> bool

Returns true if the vector contains no elements.

+
1.0.0 · source

pub fn is_empty(&self) -> bool

Returns true if the vector contains no elements.

Examples
let mut v = Vec::new();
 assert!(v.is_empty());
 
 v.push(1);
 assert!(!v.is_empty());
-
1.4.0 · source

pub fn split_off(&mut self, at: usize) -> Vec<T, A>where - A: Clone,

Splits the collection into two at the given index.

+
1.4.0 · source

pub fn split_off(&mut self, at: usize) -> Vec<T, A>
where + A: Clone,

Splits the collection into two at the given index.

Returns a newly allocated vector containing the elements in the range [at, len). After the call, the original vector will be left containing the elements [0, at) with its previous capacity unchanged.

@@ -431,8 +469,8 @@
Examples
let vec2 = vec.split_off(1); assert_eq!(vec, [1]); assert_eq!(vec2, [2, 3]);
-
1.33.0 · source

pub fn resize_with<F>(&mut self, new_len: usize, f: F)where - F: FnMut() -> T,

Resizes the Vec in-place so that len is equal to new_len.

+
1.33.0 · source

pub fn resize_with<F>(&mut self, new_len: usize, f: F)
where + F: FnMut() -> T,

Resizes the Vec in-place so that len is equal to new_len.

If new_len is greater than len, the Vec is extended by the difference, with each additional slot filled with the result of calling the closure f. The return values from f will end up @@ -451,7 +489,7 @@

Examples
let mut p = 1; vec.resize_with(4, || { p *= 2; p }); assert_eq!(vec, [2, 4, 8, 16]);
-
1.60.0 · source

pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]

Returns the remaining spare capacity of the vector as a slice of +

1.60.0 · source

pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]

Returns the remaining spare capacity of the vector as a slice of MaybeUninit<T>.

The returned slice can be used to fill the vector with data (e.g. by reading from a file) before marking the data as initialized using the @@ -472,7 +510,7 @@

Examples
} assert_eq!(&v, &[0, 1, 2]);
-
source

pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit<T>])

🔬This is a nightly-only experimental API. (vec_split_at_spare)

Returns vector content as a slice of T, along with the remaining spare +

source

pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit<T>])

🔬This is a nightly-only experimental API. (vec_split_at_spare)

Returns vector content as a slice of T, along with the remaining spare capacity of the vector as a slice of MaybeUninit<T>.

The returned spare capacity slice can be used to fill the vector with data (e.g. by reading from a file) before marking the data as initialized using @@ -506,7 +544,7 @@

Examples
} assert_eq!(&v, &[1, 1, 2, 4, 8, 12, 16]);
-
1.5.0 · source

pub fn resize(&mut self, new_len: usize, value: T)

Resizes the Vec in-place so that len is equal to new_len.

+
1.5.0 · source

pub fn resize(&mut self, new_len: usize, value: T)

Resizes the Vec in-place so that len is equal to new_len.

If new_len is greater than len, the Vec is extended by the difference, with each additional slot filled with value. If new_len is less than len, the Vec is simply truncated.

@@ -516,14 +554,14 @@
Examples
Clone), use Vec::resize_with. If you only need to resize to a smaller size, use Vec::truncate.

Examples
-
let mut vec = vec!["hello"];
-vec.resize(3, "world");
-assert_eq!(vec, ["hello", "world", "world"]);
+
let mut vec = vec!["hello"];
+vec.resize(3, "world");
+assert_eq!(vec, ["hello", "world", "world"]);
 
 let mut vec = vec![1, 2, 3, 4];
 vec.resize(2, 0);
 assert_eq!(vec, [1, 2]);
-
1.6.0 · source

pub fn extend_from_slice(&mut self, other: &[T])

Clones and appends all elements in a slice to the Vec.

+
1.6.0 · source

pub fn extend_from_slice(&mut self, other: &[T])

Clones and appends all elements in a slice to the Vec.

Iterates over the slice other, clones each element, and then appends it to this Vec. The other slice is traversed in-order.

Note that this function is same as extend except that it is @@ -534,8 +572,8 @@

Examples
let mut vec = vec![1];
 vec.extend_from_slice(&[2, 3, 4]);
 assert_eq!(vec, [1, 2, 3, 4]);
-
1.53.0 · source

pub fn extend_from_within<R>(&mut self, src: R)where - R: RangeBounds<usize>,

Copies elements from src range to the end of the vector.

+
1.53.0 · source

pub fn extend_from_within<R>(&mut self, src: R)
where + R: RangeBounds<usize>,

Copies elements from src range to the end of the vector.

Panics

Panics if the starting point is greater than the end point or if the end point is greater than the length of the vector.

@@ -550,7 +588,7 @@
Examples
vec.extend_from_within(4..8); assert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1, 4, 2, 3, 4]);
-
1.0.0 · source

pub fn dedup(&mut self)

Removes consecutive repeated elements in the vector according to the +

1.0.0 · source

pub fn dedup(&mut self)

Removes consecutive repeated elements in the vector according to the PartialEq trait implementation.

If the vector is sorted, this removes all duplicates.

Examples
@@ -559,13 +597,13 @@
Examples
vec.dedup(); assert_eq!(vec, [1, 2, 3, 2]);
-
1.21.0 · source

pub fn splice<R, I>( +

1.21.0 · source

pub fn splice<R, I>( &mut self, range: R, replace_with: I -) -> Splice<'_, <I as IntoIterator>::IntoIter, A>where +) -> Splice<'_, <I as IntoIterator>::IntoIter, A>
where R: RangeBounds<usize>, - I: IntoIterator<Item = T>,

Creates a splicing iterator that replaces the specified range in the vector + I: IntoIterator<Item = T>,

Creates a splicing iterator that replaces the specified range in the vector with the given replace_with iterator and yields the removed items. replace_with does not need to be the same length as range.

range is removed even if the iterator is not consumed until the end.

@@ -588,11 +626,14 @@
Examples
let u: Vec<_> = v.splice(1..3, new).collect(); assert_eq!(v, &[1, 7, 8, 9, 4]); assert_eq!(u, &[2, 3]);
-
source

pub fn drain_filter<F>(&mut self, filter: F) -> DrainFilter<'_, T, F, A>where - F: FnMut(&mut T) -> bool,

🔬This is a nightly-only experimental API. (drain_filter)

Creates an iterator which uses a closure to determine if an element should be removed.

+
source

pub fn extract_if<F>(&mut self, filter: F) -> ExtractIf<'_, T, F, A>
where + F: FnMut(&mut T) -> bool,

🔬This is a nightly-only experimental API. (extract_if)

Creates an iterator which uses a closure to determine if an element should be removed.

If the closure returns true, then the element is removed and yielded. If the closure returns false, the element will remain in the vector and will not be yielded by the iterator.

+

If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating +or the iteration short-circuits, then the remaining elements will be retained. +Use retain with a negated predicate if you do not need the returned iterator.

Using this method is equivalent to the following code:

let mut i = 0;
@@ -605,98 +646,28 @@ 
Examples
} }
-

But drain_filter is easier to use. drain_filter is also more efficient, +

But extract_if is easier to use. extract_if is also more efficient, because it can backshift the elements of the array in bulk.

-

Note that drain_filter also lets you mutate every element in the filter closure, +

Note that extract_if also lets you mutate every element in the filter closure, regardless of whether you choose to keep or remove it.

Examples

Splitting an array into evens and odds, reusing the original allocation:

-
#![feature(drain_filter)]
+
#![feature(extract_if)]
 let mut numbers = vec![1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15];
 
-let evens = numbers.drain_filter(|x| *x % 2 == 0).collect::<Vec<_>>();
+let evens = numbers.extract_if(|x| *x % 2 == 0).collect::<Vec<_>>();
 let odds = numbers;
 
 assert_eq!(evens, vec![2, 4, 6, 8, 14]);
 assert_eq!(odds, vec![1, 3, 5, 9, 11, 13, 15]);
-

Methods from Deref<Target = [T]>§

1.23.0 · source

pub fn is_ascii(&self) -> bool

Checks if all bytes in this slice are within the ASCII range.

-
source

pub fn as_ascii(&self) -> Option<&[AsciiChar]>

🔬This is a nightly-only experimental API. (ascii_char)

If this slice is_ascii, returns it as a slice of -ASCII characters, otherwise returns None.

-
source

pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

🔬This is a nightly-only experimental API. (ascii_char)

Converts this slice of bytes into a slice of ASCII characters, -without checking whether they’re valid.

-
Safety
-

Every byte in the slice must be in 0..=127, or else this is UB.

-
1.23.0 · source

pub fn eq_ignore_ascii_case(&self, other: &[u8]) -> bool

Checks that two slices are an ASCII case-insensitive match.

-

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), -but without allocating and copying temporaries.

-
1.23.0 · source

pub fn make_ascii_uppercase(&mut self)

Converts this slice to its ASCII upper case equivalent in-place.

-

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, -but non-ASCII letters are unchanged.

-

To return a new uppercased value without modifying the existing one, use -to_ascii_uppercase.

-
1.23.0 · source

pub fn make_ascii_lowercase(&mut self)

Converts this slice to its ASCII lower case equivalent in-place.

-

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, -but non-ASCII letters are unchanged.

-

To return a new lowercased value without modifying the existing one, use -to_ascii_lowercase.

-
1.60.0 · source

pub fn escape_ascii(&self) -> EscapeAscii<'_>

Returns an iterator that produces an escaped version of this slice, -treating it as an ASCII string.

-
Examples
-

-let s = b"0\t\r\n'\"\\\x9d";
-let escaped = s.escape_ascii().to_string();
-assert_eq!(escaped, "0\\t\\r\\n\\'\\\"\\\\\\x9d");
-
source

pub fn trim_ascii_start(&self) -> &[u8]

🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

Returns a byte slice with leading ASCII whitespace bytes removed.

-

‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

-
Examples
-
#![feature(byte_slice_trim_ascii)]
-
-assert_eq!(b" \t hello world\n".trim_ascii_start(), b"hello world\n");
-assert_eq!(b"  ".trim_ascii_start(), b"");
-assert_eq!(b"".trim_ascii_start(), b"");
-
source

pub fn trim_ascii_end(&self) -> &[u8]

🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

Returns a byte slice with trailing ASCII whitespace bytes removed.

-

‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

-
Examples
-
#![feature(byte_slice_trim_ascii)]
-
-assert_eq!(b"\r hello world\n ".trim_ascii_end(), b"\r hello world");
-assert_eq!(b"  ".trim_ascii_end(), b"");
-assert_eq!(b"".trim_ascii_end(), b"");
-
source

pub fn trim_ascii(&self) -> &[u8]

🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

Returns a byte slice with leading and trailing ASCII whitespace bytes -removed.

-

‘Whitespace’ refers to the definition used by -u8::is_ascii_whitespace.

-
Examples
-
#![feature(byte_slice_trim_ascii)]
-
-assert_eq!(b"\r hello world\n ".trim_ascii(), b"hello world");
-assert_eq!(b"  ".trim_ascii(), b"");
-assert_eq!(b"".trim_ascii(), b"");
-
source

pub fn sort_floats(&mut self)

🔬This is a nightly-only experimental API. (sort_floats)

Sorts the slice of floats.

-

This sort is in-place (i.e. does not allocate), O(n * log(n)) worst-case, and uses -the ordering defined by f64::total_cmp.

-
Current implementation
-

This uses the same sorting algorithm as sort_unstable_by.

-
Examples
-
#![feature(sort_floats)]
-let mut v = [2.6, -5e-8, f64::NAN, 8.29, f64::INFINITY, -1.0, 0.0, -f64::INFINITY, -0.0];
-
-v.sort_floats();
-let sorted = [-f64::INFINITY, -1.0, -5e-8, -0.0, 0.0, 2.6, 8.29, f64::INFINITY, f64::NAN];
-assert_eq!(&v[..8], &sorted[..8]);
-assert!(v[8].is_nan());
-
source

pub fn as_str(&self) -> &str

🔬This is a nightly-only experimental API. (ascii_char)

Views this slice of ASCII characters as a UTF-8 str.

-
source

pub fn as_bytes(&self) -> &[u8]

🔬This is a nightly-only experimental API. (ascii_char)

Views this slice of ASCII characters as a slice of u8 bytes.

-
source

pub fn flatten(&self) -> &[T]

🔬This is a nightly-only experimental API. (slice_flatten)

Takes a &[[T; N]], and flattens it to a &[T].

+

Methods from Deref<Target = [T]>§

source

pub fn flatten(&self) -> &[T]

🔬This is a nightly-only experimental API. (slice_flatten)

Takes a &[[T; N]], and flattens it to a &[T].

Panics

This panics if the length of the resulting slice would overflow a usize.

This is only possible when flattening a slice of arrays of zero-sized types, and thus tends to be irrelevant in practice. If size_of::<T>() > 0, this will never panic.

-
Examples
+
Examples
#![feature(slice_flatten)]
 
 assert_eq!([[1, 2, 3], [4, 5, 6]].flatten(), &[1, 2, 3, 4, 5, 6]);
@@ -711,13 +682,13 @@ 
Examples
let empty_slice_of_arrays: &[[u32; 10]] = &[]; assert!(empty_slice_of_arrays.flatten().is_empty());
-
source

pub fn flatten_mut(&mut self) -> &mut [T]

🔬This is a nightly-only experimental API. (slice_flatten)

Takes a &mut [[T; N]], and flattens it to a &mut [T].

+
source

pub fn flatten_mut(&mut self) -> &mut [T]

🔬This is a nightly-only experimental API. (slice_flatten)

Takes a &mut [[T; N]], and flattens it to a &mut [T].

Panics

This panics if the length of the resulting slice would overflow a usize.

This is only possible when flattening a slice of arrays of zero-sized types, and thus tends to be irrelevant in practice. If size_of::<T>() > 0, this will never panic.

-
Examples
+
Examples
#![feature(slice_flatten)]
 
 fn add_5_to_all(slice: &mut [i32]) {
@@ -729,52 +700,96 @@ 
Examples
let mut array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; add_5_to_all(array.flatten_mut()); assert_eq!(array, [[6, 7, 8], [9, 10, 11], [12, 13, 14]]);
-
source

pub fn sort_floats(&mut self)

🔬This is a nightly-only experimental API. (sort_floats)

Sorts the slice of floats.

-

This sort is in-place (i.e. does not allocate), O(n * log(n)) worst-case, and uses -the ordering defined by f32::total_cmp.

-
Current implementation
-

This uses the same sorting algorithm as sort_unstable_by.

-
Examples
-
#![feature(sort_floats)]
-let mut v = [2.6, -5e-8, f32::NAN, 8.29, f32::INFINITY, -1.0, 0.0, -f32::INFINITY, -0.0];
+
source

pub fn as_str(&self) -> &str

🔬This is a nightly-only experimental API. (ascii_char)

Views this slice of ASCII characters as a UTF-8 str.

+
source

pub fn as_bytes(&self) -> &[u8]

🔬This is a nightly-only experimental API. (ascii_char)

Views this slice of ASCII characters as a slice of u8 bytes.

+
1.23.0 · source

pub fn is_ascii(&self) -> bool

Checks if all bytes in this slice are within the ASCII range.

+
source

pub fn as_ascii(&self) -> Option<&[AsciiChar]>

🔬This is a nightly-only experimental API. (ascii_char)

If this slice is_ascii, returns it as a slice of +ASCII characters, otherwise returns None.

+
source

pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar]

🔬This is a nightly-only experimental API. (ascii_char)

Converts this slice of bytes into a slice of ASCII characters, +without checking whether they’re valid.

+
Safety
+

Every byte in the slice must be in 0..=127, or else this is UB.

+
1.23.0 · source

pub fn eq_ignore_ascii_case(&self, other: &[u8]) -> bool

Checks that two slices are an ASCII case-insensitive match.

+

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), +but without allocating and copying temporaries.

+
1.23.0 · source

pub fn make_ascii_uppercase(&mut self)

Converts this slice to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase.

+
1.23.0 · source

pub fn make_ascii_lowercase(&mut self)

Converts this slice to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase.

+
1.60.0 · source

pub fn escape_ascii(&self) -> EscapeAscii<'_>

Returns an iterator that produces an escaped version of this slice, +treating it as an ASCII string.

+
Examples
+

+let s = b"0\t\r\n'\"\\\x9d";
+let escaped = s.escape_ascii().to_string();
+assert_eq!(escaped, "0\\t\\r\\n\\'\\\"\\\\\\x9d");
+
source

pub fn trim_ascii_start(&self) -> &[u8]

🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

Returns a byte slice with leading ASCII whitespace bytes removed.

+

‘Whitespace’ refers to the definition used by +u8::is_ascii_whitespace.

+
Examples
+
#![feature(byte_slice_trim_ascii)]
 
-v.sort_floats();
-let sorted = [-f32::INFINITY, -1.0, -5e-8, -0.0, 0.0, 2.6, 8.29, f32::INFINITY, f32::NAN];
-assert_eq!(&v[..8], &sorted[..8]);
-assert!(v[8].is_nan());
-
1.0.0 · source

pub fn len(&self) -> usize

Returns the number of elements in the slice.

-
Examples
+assert_eq!(b" \t hello world\n".trim_ascii_start(), b"hello world\n"); +assert_eq!(b" ".trim_ascii_start(), b""); +assert_eq!(b"".trim_ascii_start(), b"");
+
source

pub fn trim_ascii_end(&self) -> &[u8]

🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

Returns a byte slice with trailing ASCII whitespace bytes removed.

+

‘Whitespace’ refers to the definition used by +u8::is_ascii_whitespace.

+
Examples
+
#![feature(byte_slice_trim_ascii)]
+
+assert_eq!(b"\r hello world\n ".trim_ascii_end(), b"\r hello world");
+assert_eq!(b"  ".trim_ascii_end(), b"");
+assert_eq!(b"".trim_ascii_end(), b"");
+
source

pub fn trim_ascii(&self) -> &[u8]

🔬This is a nightly-only experimental API. (byte_slice_trim_ascii)

Returns a byte slice with leading and trailing ASCII whitespace bytes +removed.

+

‘Whitespace’ refers to the definition used by +u8::is_ascii_whitespace.

+
Examples
+
#![feature(byte_slice_trim_ascii)]
+
+assert_eq!(b"\r hello world\n ".trim_ascii(), b"hello world");
+assert_eq!(b"  ".trim_ascii(), b"");
+assert_eq!(b"".trim_ascii(), b"");
+
1.0.0 · source

pub fn len(&self) -> usize

Returns the number of elements in the slice.

+
Examples
let a = [1, 2, 3];
 assert_eq!(a.len(), 3);
-
1.0.0 · source

pub fn is_empty(&self) -> bool

Returns true if the slice has a length of 0.

-
Examples
+
1.0.0 · source

pub fn is_empty(&self) -> bool

Returns true if the slice has a length of 0.

+
Examples
let a = [1, 2, 3];
 assert!(!a.is_empty());
-
1.0.0 · source

pub fn first(&self) -> Option<&T>

Returns the first element of the slice, or None if it is empty.

-
Examples
+
1.0.0 · source

pub fn first(&self) -> Option<&T>

Returns the first element of the slice, or None if it is empty.

+
Examples
let v = [10, 40, 30];
 assert_eq!(Some(&10), v.first());
 
 let w: &[i32] = &[];
 assert_eq!(None, w.first());
-
1.0.0 · source

pub fn first_mut(&mut self) -> Option<&mut T>

Returns a mutable pointer to the first element of the slice, or None if it is empty.

-
Examples
+
1.0.0 · source

pub fn first_mut(&mut self) -> Option<&mut T>

Returns a mutable pointer to the first element of the slice, or None if it is empty.

+
Examples
let x = &mut [0, 1, 2];
 
 if let Some(first) = x.first_mut() {
     *first = 5;
 }
 assert_eq!(x, &[5, 1, 2]);
-
1.5.0 · source

pub fn split_first(&self) -> Option<(&T, &[T])>

Returns the first and all the rest of the elements of the slice, or None if it is empty.

-
Examples
+
1.5.0 · source

pub fn split_first(&self) -> Option<(&T, &[T])>

Returns the first and all the rest of the elements of the slice, or None if it is empty.

+
Examples
let x = &[0, 1, 2];
 
 if let Some((first, elements)) = x.split_first() {
     assert_eq!(first, &0);
     assert_eq!(elements, &[1, 2]);
 }
-
1.5.0 · source

pub fn split_first_mut(&mut self) -> Option<(&mut T, &mut [T])>

Returns the first and all the rest of the elements of the slice, or None if it is empty.

-
Examples
+
1.5.0 · source

pub fn split_first_mut(&mut self) -> Option<(&mut T, &mut [T])>

Returns the first and all the rest of the elements of the slice, or None if it is empty.

+
Examples
let x = &mut [0, 1, 2];
 
 if let Some((first, elements)) = x.split_first_mut() {
@@ -783,16 +798,16 @@ 
Examples
elements[1] = 5; } assert_eq!(x, &[3, 4, 5]);
-
1.5.0 · source

pub fn split_last(&self) -> Option<(&T, &[T])>

Returns the last and all the rest of the elements of the slice, or None if it is empty.

-
Examples
+
1.5.0 · source

pub fn split_last(&self) -> Option<(&T, &[T])>

Returns the last and all the rest of the elements of the slice, or None if it is empty.

+
Examples
let x = &[0, 1, 2];
 
 if let Some((last, elements)) = x.split_last() {
     assert_eq!(last, &2);
     assert_eq!(elements, &[0, 1]);
 }
-
1.5.0 · source

pub fn split_last_mut(&mut self) -> Option<(&mut T, &mut [T])>

Returns the last and all the rest of the elements of the slice, or None if it is empty.

-
Examples
+
1.5.0 · source

pub fn split_last_mut(&mut self) -> Option<(&mut T, &mut [T])>

Returns the last and all the rest of the elements of the slice, or None if it is empty.

+
Examples
let x = &mut [0, 1, 2];
 
 if let Some((last, elements)) = x.split_last_mut() {
@@ -801,23 +816,121 @@ 
Examples
elements[1] = 5; } assert_eq!(x, &[4, 5, 3]);
-
1.0.0 · source

pub fn last(&self) -> Option<&T>

Returns the last element of the slice, or None if it is empty.

-
Examples
+
1.0.0 · source

pub fn last(&self) -> Option<&T>

Returns the last element of the slice, or None if it is empty.

+
Examples
let v = [10, 40, 30];
 assert_eq!(Some(&30), v.last());
 
 let w: &[i32] = &[];
 assert_eq!(None, w.last());
-
1.0.0 · source

pub fn last_mut(&mut self) -> Option<&mut T>

Returns a mutable pointer to the last item in the slice.

-
Examples
+
1.0.0 · source

pub fn last_mut(&mut self) -> Option<&mut T>

Returns a mutable pointer to the last item in the slice.

+
Examples
let x = &mut [0, 1, 2];
 
 if let Some(last) = x.last_mut() {
     *last = 10;
 }
 assert_eq!(x, &[0, 1, 10]);
-
1.0.0 · source

pub fn get<I>(&self, index: I) -> Option<&<I as SliceIndex<[T]>>::Output>where - I: SliceIndex<[T]>,

Returns a reference to an element or subslice depending on the type of +

source

pub fn first_chunk<const N: usize>(&self) -> Option<&[T; N]>

🔬This is a nightly-only experimental API. (slice_first_last_chunk)

Returns the first N elements of the slice, or None if it has fewer than N elements.

+
Examples
+
#![feature(slice_first_last_chunk)]
+
+let u = [10, 40, 30];
+assert_eq!(Some(&[10, 40]), u.first_chunk::<2>());
+
+let v: &[i32] = &[10];
+assert_eq!(None, v.first_chunk::<2>());
+
+let w: &[i32] = &[];
+assert_eq!(Some(&[]), w.first_chunk::<0>());
+
source

pub fn first_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]>

🔬This is a nightly-only experimental API. (slice_first_last_chunk)

Returns a mutable reference to the first N elements of the slice, +or None if it has fewer than N elements.

+
Examples
+
#![feature(slice_first_last_chunk)]
+
+let x = &mut [0, 1, 2];
+
+if let Some(first) = x.first_chunk_mut::<2>() {
+    first[0] = 5;
+    first[1] = 4;
+}
+assert_eq!(x, &[5, 4, 2]);
+
source

pub fn split_first_chunk<const N: usize>(&self) -> Option<(&[T; N], &[T])>

🔬This is a nightly-only experimental API. (slice_first_last_chunk)

Returns the first N elements of the slice and the remainder, +or None if it has fewer than N elements.

+
Examples
+
#![feature(slice_first_last_chunk)]
+
+let x = &[0, 1, 2];
+
+if let Some((first, elements)) = x.split_first_chunk::<2>() {
+    assert_eq!(first, &[0, 1]);
+    assert_eq!(elements, &[2]);
+}
+
source

pub fn split_first_chunk_mut<const N: usize>( + &mut self +) -> Option<(&mut [T; N], &mut [T])>

🔬This is a nightly-only experimental API. (slice_first_last_chunk)

Returns a mutable reference to the first N elements of the slice and the remainder, +or None if it has fewer than N elements.

+
Examples
+
#![feature(slice_first_last_chunk)]
+
+let x = &mut [0, 1, 2];
+
+if let Some((first, elements)) = x.split_first_chunk_mut::<2>() {
+    first[0] = 3;
+    first[1] = 4;
+    elements[0] = 5;
+}
+assert_eq!(x, &[3, 4, 5]);
+
source

pub fn split_last_chunk<const N: usize>(&self) -> Option<(&[T; N], &[T])>

🔬This is a nightly-only experimental API. (slice_first_last_chunk)

Returns the last N elements of the slice and the remainder, +or None if it has fewer than N elements.

+
Examples
+
#![feature(slice_first_last_chunk)]
+
+let x = &[0, 1, 2];
+
+if let Some((last, elements)) = x.split_last_chunk::<2>() {
+    assert_eq!(last, &[1, 2]);
+    assert_eq!(elements, &[0]);
+}
+
source

pub fn split_last_chunk_mut<const N: usize>( + &mut self +) -> Option<(&mut [T; N], &mut [T])>

🔬This is a nightly-only experimental API. (slice_first_last_chunk)

Returns the last and all the rest of the elements of the slice, or None if it is empty.

+
Examples
+
#![feature(slice_first_last_chunk)]
+
+let x = &mut [0, 1, 2];
+
+if let Some((last, elements)) = x.split_last_chunk_mut::<2>() {
+    last[0] = 3;
+    last[1] = 4;
+    elements[0] = 5;
+}
+assert_eq!(x, &[5, 3, 4]);
+
source

pub fn last_chunk<const N: usize>(&self) -> Option<&[T; N]>

🔬This is a nightly-only experimental API. (slice_first_last_chunk)

Returns the last element of the slice, or None if it is empty.

+
Examples
+
#![feature(slice_first_last_chunk)]
+
+let u = [10, 40, 30];
+assert_eq!(Some(&[40, 30]), u.last_chunk::<2>());
+
+let v: &[i32] = &[10];
+assert_eq!(None, v.last_chunk::<2>());
+
+let w: &[i32] = &[];
+assert_eq!(Some(&[]), w.last_chunk::<0>());
+
source

pub fn last_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]>

🔬This is a nightly-only experimental API. (slice_first_last_chunk)

Returns a mutable pointer to the last item in the slice.

+
Examples
+
#![feature(slice_first_last_chunk)]
+
+let x = &mut [0, 1, 2];
+
+if let Some(last) = x.last_chunk_mut::<2>() {
+    last[0] = 10;
+    last[1] = 20;
+}
+assert_eq!(x, &[0, 10, 20]);
+
1.0.0 · source

pub fn get<I>(&self, index: I) -> Option<&<I as SliceIndex<[T]>>::Output>
where + I: SliceIndex<[T]>,

Returns a reference to an element or subslice depending on the type of index.

  • If given a position, returns a reference to the element at that @@ -825,52 +938,60 @@
    Examples
  • If given a range, returns the subslice corresponding to that range, or None if out of bounds.
-
Examples
+
Examples
let v = [10, 40, 30];
 assert_eq!(Some(&40), v.get(1));
 assert_eq!(Some(&[10, 40][..]), v.get(0..2));
 assert_eq!(None, v.get(3));
 assert_eq!(None, v.get(0..4));
-
1.0.0 · source

pub fn get_mut<I>( +

1.0.0 · source

pub fn get_mut<I>( &mut self, index: I -) -> Option<&mut <I as SliceIndex<[T]>>::Output>where - I: SliceIndex<[T]>,

Returns a mutable reference to an element or subslice depending on the +) -> Option<&mut <I as SliceIndex<[T]>>::Output>

where + I: SliceIndex<[T]>,

Returns a mutable reference to an element or subslice depending on the type of index (see get) or None if the index is out of bounds.

-
Examples
+
Examples
let x = &mut [0, 1, 2];
 
 if let Some(elem) = x.get_mut(1) {
     *elem = 42;
 }
 assert_eq!(x, &[0, 42, 2]);
-
1.0.0 · source

pub unsafe fn get_unchecked<I>( +

1.0.0 · source

pub unsafe fn get_unchecked<I>( &self, index: I -) -> &<I as SliceIndex<[T]>>::Outputwhere - I: SliceIndex<[T]>,

Returns a reference to an element or subslice, without doing bounds +) -> &<I as SliceIndex<[T]>>::Output

where + I: SliceIndex<[T]>,

Returns a reference to an element or subslice, without doing bounds checking.

For a safe alternative see get.

Safety

Calling this method with an out-of-bounds index is undefined behavior even if the resulting reference is not used.

-
Examples
+

You can think of this like .get(index).unwrap_unchecked(). It’s UB +to call .get_unchecked(len), even if you immediately convert to a +pointer. And it’s UB to call .get_unchecked(..len + 1), +.get_unchecked(..=len), or similar.

+
Examples
let x = &[1, 2, 4];
 
 unsafe {
     assert_eq!(x.get_unchecked(1), &2);
 }
-
1.0.0 · source

pub unsafe fn get_unchecked_mut<I>( +

1.0.0 · source

pub unsafe fn get_unchecked_mut<I>( &mut self, index: I -) -> &mut <I as SliceIndex<[T]>>::Outputwhere - I: SliceIndex<[T]>,

Returns a mutable reference to an element or subslice, without doing +) -> &mut <I as SliceIndex<[T]>>::Output

where + I: SliceIndex<[T]>,

Returns a mutable reference to an element or subslice, without doing bounds checking.

For a safe alternative see get_mut.

Safety

Calling this method with an out-of-bounds index is undefined behavior even if the resulting reference is not used.

-
Examples
+

You can think of this like .get_mut(index).unwrap_unchecked(). It’s +UB to call .get_unchecked_mut(len), even if you immediately convert +to a pointer. And it’s UB to call .get_unchecked_mut(..len + 1), +.get_unchecked_mut(..=len), or similar.

+
Examples
let x = &mut [1, 2, 4];
 
 unsafe {
@@ -878,7 +999,7 @@ 
Examples
*elem = 13; } assert_eq!(x, &[1, 13, 4]);
-
1.0.0 · source

pub fn as_ptr(&self) -> *const T

Returns a raw pointer to the slice’s buffer.

+
1.0.0 · source

pub fn as_ptr(&self) -> *const T

Returns a raw pointer to the slice’s buffer.

The caller must ensure that the slice outlives the pointer this function returns, or else it will end up pointing to garbage.

The caller must also ensure that the memory the pointer (non-transitively) points to @@ -886,7 +1007,7 @@

Examples
derived from it. If you need to mutate the contents of the slice, use as_mut_ptr.

Modifying the container referenced by this slice may cause its buffer to be reallocated, which would also make any pointers to it invalid.

-
Examples
+
Examples
let x = &[1, 2, 4];
 let x_ptr = x.as_ptr();
 
@@ -895,12 +1016,12 @@ 
Examples
assert_eq!(x.get_unchecked(i), &*x_ptr.add(i)); } }
-
1.0.0 · source

pub fn as_mut_ptr(&mut self) -> *mut T

Returns an unsafe mutable pointer to the slice’s buffer.

+
1.0.0 · source

pub fn as_mut_ptr(&mut self) -> *mut T

Returns an unsafe mutable pointer to the slice’s buffer.

The caller must ensure that the slice outlives the pointer this function returns, or else it will end up pointing to garbage.

Modifying the container referenced by this slice may cause its buffer to be reallocated, which would also make any pointers to it invalid.

-
Examples
+
Examples
let x = &mut [1, 2, 4];
 let x_ptr = x.as_mut_ptr();
 
@@ -910,7 +1031,7 @@ 
Examples
} } assert_eq!(x, &[3, 4, 6]);
-
1.48.0 · source

pub fn as_ptr_range(&self) -> Range<*const T>

Returns the two raw pointers spanning the slice.

+
1.48.0 · source

pub fn as_ptr_range(&self) -> Range<*const T>

Returns the two raw pointers spanning the slice.

The returned range is half-open, which means that the end pointer points one past the last element of the slice. This way, an empty slice is represented by two equal pointers, and the difference between @@ -930,7 +1051,7 @@

Examples
assert!(a.as_ptr_range().contains(&x)); assert!(!a.as_ptr_range().contains(&y));
-
1.48.0 · source

pub fn as_mut_ptr_range(&mut self) -> Range<*mut T>

Returns the two unsafe mutable pointers spanning the slice.

+
1.48.0 · source

pub fn as_mut_ptr_range(&mut self) -> Range<*mut T>

Returns the two unsafe mutable pointers spanning the slice.

The returned range is half-open, which means that the end pointer points one past the last element of the slice. This way, an empty slice is represented by two equal pointers, and the difference between @@ -941,7 +1062,8 @@

Examples

This function is useful for interacting with foreign interfaces which use two pointers to refer to a range of elements in memory, as is common in C++.

-
1.0.0 · source

pub fn swap(&mut self, a: usize, b: usize)

Swaps two elements in the slice.

+
1.0.0 · source

pub fn swap(&mut self, a: usize, b: usize)

Swaps two elements in the slice.

+

If a equals to b, it’s guaranteed that elements won’t change value.

Arguments
  • a - The index of the first element
  • @@ -949,11 +1071,11 @@
    Arguments
Panics

Panics if a or b are out of bounds.

-
Examples
-
let mut v = ["a", "b", "c", "d", "e"];
+
Examples
+
let mut v = ["a", "b", "c", "d", "e"];
 v.swap(2, 4);
-assert!(v == ["a", "b", "e", "d", "c"]);
-
source

pub unsafe fn swap_unchecked(&mut self, a: usize, b: usize)

🔬This is a nightly-only experimental API. (slice_swap_unchecked)

Swaps two elements in the slice, without doing bounds checking.

+assert!(v == ["a", "b", "e", "d", "c"]);
+
source

pub unsafe fn swap_unchecked(&mut self, a: usize, b: usize)

🔬This is a nightly-only experimental API. (slice_swap_unchecked)

Swaps two elements in the slice, without doing bounds checking.

For a safe alternative see swap.

Arguments
    @@ -963,21 +1085,21 @@
    Arguments
    Safety

    Calling this method with an out-of-bounds index is undefined behavior. The caller has to ensure that a < self.len() and b < self.len().

    -
    Examples
    +
    Examples
    #![feature(slice_swap_unchecked)]
     
    -let mut v = ["a", "b", "c", "d"];
    +let mut v = ["a", "b", "c", "d"];
     // SAFETY: we know that 1 and 3 are both indices of the slice
     unsafe { v.swap_unchecked(1, 3) };
    -assert!(v == ["a", "d", "c", "b"]);
    -
1.0.0 · source

pub fn reverse(&mut self)

Reverses the order of elements in the slice, in place.

-
Examples
+assert!(v == ["a", "d", "c", "b"]);
+
1.0.0 · source

pub fn reverse(&mut self)

Reverses the order of elements in the slice, in place.

+
Examples
let mut v = [1, 2, 3];
 v.reverse();
 assert!(v == [3, 2, 1]);
-
1.0.0 · source

pub fn iter(&self) -> Iter<'_, T>

Returns an iterator over the slice.

+
1.0.0 · source

pub fn iter(&self) -> Iter<'_, T>

Returns an iterator over the slice.

The iterator yields all items from start to end.

-
Examples
+
Examples
let x = &[1, 2, 4];
 let mut iterator = x.iter();
 
@@ -985,29 +1107,29 @@ 
Examples
assert_eq!(iterator.next(), Some(&2)); assert_eq!(iterator.next(), Some(&4)); assert_eq!(iterator.next(), None);
-
1.0.0 · source

pub fn iter_mut(&mut self) -> IterMut<'_, T>

Returns an iterator that allows modifying each value.

+
1.0.0 · source

pub fn iter_mut(&mut self) -> IterMut<'_, T>

Returns an iterator that allows modifying each value.

The iterator yields all items from start to end.

-
Examples
+
Examples
let x = &mut [1, 2, 4];
 for elem in x.iter_mut() {
     *elem += 2;
 }
 assert_eq!(x, &[3, 4, 6]);
-
1.0.0 · source

pub fn windows(&self, size: usize) -> Windows<'_, T>

Returns an iterator over all contiguous windows of length +

1.0.0 · source

pub fn windows(&self, size: usize) -> Windows<'_, T>

Returns an iterator over all contiguous windows of length size. The windows overlap. If the slice is shorter than size, the iterator returns no values.

Panics

Panics if size is 0.

-
Examples
-
let slice = ['r', 'u', 's', 't'];
-let mut iter = slice.windows(2);
-assert_eq!(iter.next().unwrap(), &['r', 'u']);
-assert_eq!(iter.next().unwrap(), &['u', 's']);
-assert_eq!(iter.next().unwrap(), &['s', 't']);
+
Examples
+
let slice = ['l', 'o', 'r', 'e', 'm'];
+let mut iter = slice.windows(3);
+assert_eq!(iter.next().unwrap(), &['l', 'o', 'r']);
+assert_eq!(iter.next().unwrap(), &['o', 'r', 'e']);
+assert_eq!(iter.next().unwrap(), &['r', 'e', 'm']);
 assert!(iter.next().is_none());

If the slice is shorter than size:

-
let slice = ['f', 'o', 'o'];
+
let slice = ['f', 'o', 'o'];
 let mut iter = slice.windows(4);
 assert!(iter.next().is_none());

There’s no windows_mut, as that existing would let safe code violate the @@ -1017,14 +1139,14 @@

Examples
use std::cell::Cell;
 
-let mut array = ['R', 'u', 's', 't', ' ', '2', '0', '1', '5'];
+let mut array = ['R', 'u', 's', 't', ' ', '2', '0', '1', '5'];
 let slice = &mut array[..];
 let slice_of_cells: &[Cell<char>] = Cell::from_mut(slice).as_slice_of_cells();
 for w in slice_of_cells.windows(3) {
     Cell::swap(&w[0], &w[2]);
 }
-assert_eq!(array, ['s', 't', ' ', '2', '0', '1', '5', 'u', 'R']);
-
1.0.0 · source

pub fn chunks(&self, chunk_size: usize) -> Chunks<'_, T>

Returns an iterator over chunk_size elements of the slice at a time, starting at the +assert_eq!(array, ['s', 't', ' ', '2', '0', '1', '5', 'u', 'R']);

+
1.0.0 · source

pub fn chunks(&self, chunk_size: usize) -> Chunks<'_, T>

Returns an iterator over chunk_size elements of the slice at a time, starting at the beginning of the slice.

The chunks are slices and do not overlap. If chunk_size does not divide the length of the slice, then the last chunk will not have length chunk_size.

@@ -1033,14 +1155,14 @@
Examples
slice.

Panics

Panics if chunk_size is 0.

-
Examples
-
let slice = ['l', 'o', 'r', 'e', 'm'];
+
Examples
+
let slice = ['l', 'o', 'r', 'e', 'm'];
 let mut iter = slice.chunks(2);
-assert_eq!(iter.next().unwrap(), &['l', 'o']);
-assert_eq!(iter.next().unwrap(), &['r', 'e']);
-assert_eq!(iter.next().unwrap(), &['m']);
+assert_eq!(iter.next().unwrap(), &['l', 'o']);
+assert_eq!(iter.next().unwrap(), &['r', 'e']);
+assert_eq!(iter.next().unwrap(), &['m']);
 assert!(iter.next().is_none());
-
1.0.0 · source

pub fn chunks_mut(&mut self, chunk_size: usize) -> ChunksMut<'_, T>

Returns an iterator over chunk_size elements of the slice at a time, starting at the +

1.0.0 · source

pub fn chunks_mut(&mut self, chunk_size: usize) -> ChunksMut<'_, T>

Returns an iterator over chunk_size elements of the slice at a time, starting at the beginning of the slice.

The chunks are mutable slices, and do not overlap. If chunk_size does not divide the length of the slice, then the last chunk will not have length chunk_size.

@@ -1049,7 +1171,7 @@
Examples
the end of the slice.

Panics

Panics if chunk_size is 0.

-
Examples
+
Examples
let v = &mut [0, 0, 0, 0, 0];
 let mut count = 1;
 
@@ -1060,7 +1182,7 @@ 
Examples
count += 1; } assert_eq!(v, &[1, 1, 2, 2, 3]);
-
1.31.0 · source

pub fn chunks_exact(&self, chunk_size: usize) -> ChunksExact<'_, T>

Returns an iterator over chunk_size elements of the slice at a time, starting at the +

1.31.0 · source

pub fn chunks_exact(&self, chunk_size: usize) -> ChunksExact<'_, T>

Returns an iterator over chunk_size elements of the slice at a time, starting at the beginning of the slice.

The chunks are slices and do not overlap. If chunk_size does not divide the length of the slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved @@ -1071,14 +1193,14 @@

Examples
chunk, and rchunks_exact for the same iterator but starting at the end of the slice.

Panics

Panics if chunk_size is 0.

-
Examples
-
let slice = ['l', 'o', 'r', 'e', 'm'];
+
Examples
+
let slice = ['l', 'o', 'r', 'e', 'm'];
 let mut iter = slice.chunks_exact(2);
-assert_eq!(iter.next().unwrap(), &['l', 'o']);
-assert_eq!(iter.next().unwrap(), &['r', 'e']);
+assert_eq!(iter.next().unwrap(), &['l', 'o']);
+assert_eq!(iter.next().unwrap(), &['r', 'e']);
 assert!(iter.next().is_none());
-assert_eq!(iter.remainder(), &['m']);
-
1.31.0 · source

pub fn chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut<'_, T>

Returns an iterator over chunk_size elements of the slice at a time, starting at the +assert_eq!(iter.remainder(), &['m']);

+
1.31.0 · source

pub fn chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut<'_, T>

Returns an iterator over chunk_size elements of the slice at a time, starting at the beginning of the slice.

The chunks are mutable slices, and do not overlap. If chunk_size does not divide the length of the slice, then the last up to chunk_size-1 elements will be omitted and can be @@ -1090,7 +1212,7 @@

Examples
the slice.

Panics

Panics if chunk_size is 0.

-
Examples
+
Examples
let v = &mut [0, 0, 0, 0, 0];
 let mut count = 1;
 
@@ -1101,7 +1223,7 @@ 
Examples
count += 1; } assert_eq!(v, &[1, 1, 2, 2, 0]);
-
source

pub unsafe fn as_chunks_unchecked<const N: usize>(&self) -> &[[T; N]]

🔬This is a nightly-only experimental API. (slice_as_chunks)

Splits the slice into a slice of N-element arrays, +

source

pub unsafe fn as_chunks_unchecked<const N: usize>(&self) -> &[[T; N]]

🔬This is a nightly-only experimental API. (slice_as_chunks)

Splits the slice into a slice of N-element arrays, assuming that there’s no remainder.

Safety

This may only be called when

@@ -1109,55 +1231,55 @@
Safety
  • The slice splits exactly into N-element chunks (aka self.len() % N == 0).
  • N != 0.
  • -
    Examples
    +
    Examples
    #![feature(slice_as_chunks)]
    -let slice: &[char] = &['l', 'o', 'r', 'e', 'm', '!'];
    +let slice: &[char] = &['l', 'o', 'r', 'e', 'm', '!'];
     let chunks: &[[char; 1]] =
         // SAFETY: 1-element chunks never have remainder
         unsafe { slice.as_chunks_unchecked() };
    -assert_eq!(chunks, &[['l'], ['o'], ['r'], ['e'], ['m'], ['!']]);
    +assert_eq!(chunks, &[['l'], ['o'], ['r'], ['e'], ['m'], ['!']]);
     let chunks: &[[char; 3]] =
         // SAFETY: The slice length (6) is a multiple of 3
         unsafe { slice.as_chunks_unchecked() };
    -assert_eq!(chunks, &[['l', 'o', 'r'], ['e', 'm', '!']]);
    +assert_eq!(chunks, &[['l', 'o', 'r'], ['e', 'm', '!']]);
     
     // These would be unsound:
     // let chunks: &[[_; 5]] = slice.as_chunks_unchecked() // The slice length is not a multiple of 5
     // let chunks: &[[_; 0]] = slice.as_chunks_unchecked() // Zero-length chunks are never allowed
    -
    source

    pub fn as_chunks<const N: usize>(&self) -> (&[[T; N]], &[T])

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, +

    source

    pub fn as_chunks<const N: usize>(&self) -> (&[[T; N]], &[T])

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, starting at the beginning of the slice, and a remainder slice with length strictly less than N.

    Panics

    Panics if N is 0. This check will most probably get changed to a compile time error before this method gets stabilized.

    -
    Examples
    +
    Examples
    #![feature(slice_as_chunks)]
    -let slice = ['l', 'o', 'r', 'e', 'm'];
    +let slice = ['l', 'o', 'r', 'e', 'm'];
     let (chunks, remainder) = slice.as_chunks();
    -assert_eq!(chunks, &[['l', 'o'], ['r', 'e']]);
    -assert_eq!(remainder, &['m']);
    +assert_eq!(chunks, &[['l', 'o'], ['r', 'e']]); +assert_eq!(remainder, &['m']);

    If you expect the slice to be an exact multiple, you can combine let-else with an empty slice pattern:

    #![feature(slice_as_chunks)]
    -let slice = ['R', 'u', 's', 't'];
    +let slice = ['R', 'u', 's', 't'];
     let (chunks, []) = slice.as_chunks::<2>() else {
    -    panic!("slice didn't have even length")
    +    panic!("slice didn't have even length")
     };
    -assert_eq!(chunks, &[['R', 'u'], ['s', 't']]);
    -
    source

    pub fn as_rchunks<const N: usize>(&self) -> (&[T], &[[T; N]])

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, +assert_eq!(chunks, &[['R', 'u'], ['s', 't']]);

    +
    source

    pub fn as_rchunks<const N: usize>(&self) -> (&[T], &[[T; N]])

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, starting at the end of the slice, and a remainder slice with length strictly less than N.

    Panics

    Panics if N is 0. This check will most probably get changed to a compile time error before this method gets stabilized.

    -
    Examples
    +
    Examples
    #![feature(slice_as_chunks)]
    -let slice = ['l', 'o', 'r', 'e', 'm'];
    +let slice = ['l', 'o', 'r', 'e', 'm'];
     let (remainder, chunks) = slice.as_rchunks();
    -assert_eq!(remainder, &['l']);
    -assert_eq!(chunks, &[['o', 'r'], ['e', 'm']]);
    -
    source

    pub fn array_chunks<const N: usize>(&self) -> ArrayChunks<'_, T, N>

    🔬This is a nightly-only experimental API. (array_chunks)

    Returns an iterator over N elements of the slice at a time, starting at the +assert_eq!(remainder, &['l']); +assert_eq!(chunks, &[['o', 'r'], ['e', 'm']]);

    +
    source

    pub fn array_chunks<const N: usize>(&self) -> ArrayChunks<'_, T, N>

    🔬This is a nightly-only experimental API. (array_chunks)

    Returns an iterator over N elements of the slice at a time, starting at the beginning of the slice.

    The chunks are array references and do not overlap. If N does not divide the length of the slice, then the last up to N-1 elements will be omitted and can be @@ -1166,15 +1288,15 @@

    Examples
    Panics

    Panics if N is 0. This check will most probably get changed to a compile time error before this method gets stabilized.

    -
    Examples
    +
    Examples
    #![feature(array_chunks)]
    -let slice = ['l', 'o', 'r', 'e', 'm'];
    +let slice = ['l', 'o', 'r', 'e', 'm'];
     let mut iter = slice.array_chunks();
    -assert_eq!(iter.next().unwrap(), &['l', 'o']);
    -assert_eq!(iter.next().unwrap(), &['r', 'e']);
    +assert_eq!(iter.next().unwrap(), &['l', 'o']);
    +assert_eq!(iter.next().unwrap(), &['r', 'e']);
     assert!(iter.next().is_none());
    -assert_eq!(iter.remainder(), &['m']);
    -
    source

    pub unsafe fn as_chunks_unchecked_mut<const N: usize>( +assert_eq!(iter.remainder(), &['m']); +

    source

    pub unsafe fn as_chunks_unchecked_mut<const N: usize>( &mut self ) -> &mut [[T; N]]

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, assuming that there’s no remainder.

    @@ -1184,30 +1306,30 @@
    Safety
  • The slice splits exactly into N-element chunks (aka self.len() % N == 0).
  • N != 0.
  • -
    Examples
    +
    Examples
    #![feature(slice_as_chunks)]
    -let slice: &mut [char] = &mut ['l', 'o', 'r', 'e', 'm', '!'];
    +let slice: &mut [char] = &mut ['l', 'o', 'r', 'e', 'm', '!'];
     let chunks: &mut [[char; 1]] =
         // SAFETY: 1-element chunks never have remainder
         unsafe { slice.as_chunks_unchecked_mut() };
    -chunks[0] = ['L'];
    -assert_eq!(chunks, &[['L'], ['o'], ['r'], ['e'], ['m'], ['!']]);
    +chunks[0] = ['L'];
    +assert_eq!(chunks, &[['L'], ['o'], ['r'], ['e'], ['m'], ['!']]);
     let chunks: &mut [[char; 3]] =
         // SAFETY: The slice length (6) is a multiple of 3
         unsafe { slice.as_chunks_unchecked_mut() };
    -chunks[1] = ['a', 'x', '?'];
    -assert_eq!(slice, &['L', 'o', 'r', 'a', 'x', '?']);
    +chunks[1] = ['a', 'x', '?'];
    +assert_eq!(slice, &['L', 'o', 'r', 'a', 'x', '?']);
     
     // These would be unsound:
     // let chunks: &[[_; 5]] = slice.as_chunks_unchecked_mut() // The slice length is not a multiple of 5
     // let chunks: &[[_; 0]] = slice.as_chunks_unchecked_mut() // Zero-length chunks are never allowed
    -
    source

    pub fn as_chunks_mut<const N: usize>(&mut self) -> (&mut [[T; N]], &mut [T])

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, +

    source

    pub fn as_chunks_mut<const N: usize>(&mut self) -> (&mut [[T; N]], &mut [T])

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, starting at the beginning of the slice, and a remainder slice with length strictly less than N.

    Panics

    Panics if N is 0. This check will most probably get changed to a compile time error before this method gets stabilized.

    -
    Examples
    +
    Examples
    #![feature(slice_as_chunks)]
     let v = &mut [0, 0, 0, 0, 0];
     let mut count = 1;
    @@ -1219,13 +1341,13 @@ 
    Examples
    count += 1; } assert_eq!(v, &[1, 1, 2, 2, 9]);
    -
    source

    pub fn as_rchunks_mut<const N: usize>(&mut self) -> (&mut [T], &mut [[T; N]])

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, +

    source

    pub fn as_rchunks_mut<const N: usize>(&mut self) -> (&mut [T], &mut [[T; N]])

    🔬This is a nightly-only experimental API. (slice_as_chunks)

    Splits the slice into a slice of N-element arrays, starting at the end of the slice, and a remainder slice with length strictly less than N.

    Panics

    Panics if N is 0. This check will most probably get changed to a compile time error before this method gets stabilized.

    -
    Examples
    +
    Examples
    #![feature(slice_as_chunks)]
     let v = &mut [0, 0, 0, 0, 0];
     let mut count = 1;
    @@ -1237,7 +1359,7 @@ 
    Examples
    count += 1; } assert_eq!(v, &[9, 1, 1, 2, 2]);
    -
    source

    pub fn array_chunks_mut<const N: usize>(&mut self) -> ArrayChunksMut<'_, T, N>

    🔬This is a nightly-only experimental API. (array_chunks)

    Returns an iterator over N elements of the slice at a time, starting at the +

    source

    pub fn array_chunks_mut<const N: usize>(&mut self) -> ArrayChunksMut<'_, T, N>

    🔬This is a nightly-only experimental API. (array_chunks)

    Returns an iterator over N elements of the slice at a time, starting at the beginning of the slice.

    The chunks are mutable array references and do not overlap. If N does not divide the length of the slice, then the last up to N-1 elements will be omitted and @@ -1246,7 +1368,7 @@

    Examples
    Panics

    Panics if N is 0. This check will most probably get changed to a compile time error before this method gets stabilized.

    -
    Examples
    +
    Examples
    #![feature(array_chunks)]
     let v = &mut [0, 0, 0, 0, 0];
     let mut count = 1;
    @@ -1256,14 +1378,14 @@ 
    Examples
    count += 1; } assert_eq!(v, &[1, 1, 2, 2, 0]);
    -
    source

    pub fn array_windows<const N: usize>(&self) -> ArrayWindows<'_, T, N>

    🔬This is a nightly-only experimental API. (array_windows)

    Returns an iterator over overlapping windows of N elements of a slice, +

    source

    pub fn array_windows<const N: usize>(&self) -> ArrayWindows<'_, T, N>

    🔬This is a nightly-only experimental API. (array_windows)

    Returns an iterator over overlapping windows of N elements of a slice, starting at the beginning of the slice.

    This is the const generic equivalent of windows.

    If N is greater than the size of the slice, it will return no windows.

    Panics

    Panics if N is 0. This check will most probably get changed to a compile time error before this method gets stabilized.

    -
    Examples
    +
    Examples
    #![feature(array_windows)]
     let slice = [0, 1, 2, 3];
     let mut iter = slice.array_windows();
    @@ -1271,7 +1393,7 @@ 
    Examples
    assert_eq!(iter.next().unwrap(), &[1, 2]); assert_eq!(iter.next().unwrap(), &[2, 3]); assert!(iter.next().is_none());
    -
    1.31.0 · source

    pub fn rchunks(&self, chunk_size: usize) -> RChunks<'_, T>

    Returns an iterator over chunk_size elements of the slice at a time, starting at the end +

    1.31.0 · source

    pub fn rchunks(&self, chunk_size: usize) -> RChunks<'_, T>

    Returns an iterator over chunk_size elements of the slice at a time, starting at the end of the slice.

    The chunks are slices and do not overlap. If chunk_size does not divide the length of the slice, then the last chunk will not have length chunk_size.

    @@ -1280,14 +1402,14 @@
    Examples
    of the slice.

    Panics

    Panics if chunk_size is 0.

    -
    Examples
    -
    let slice = ['l', 'o', 'r', 'e', 'm'];
    +
    Examples
    +
    let slice = ['l', 'o', 'r', 'e', 'm'];
     let mut iter = slice.rchunks(2);
    -assert_eq!(iter.next().unwrap(), &['e', 'm']);
    -assert_eq!(iter.next().unwrap(), &['o', 'r']);
    -assert_eq!(iter.next().unwrap(), &['l']);
    +assert_eq!(iter.next().unwrap(), &['e', 'm']);
    +assert_eq!(iter.next().unwrap(), &['o', 'r']);
    +assert_eq!(iter.next().unwrap(), &['l']);
     assert!(iter.next().is_none());
    -
    1.31.0 · source

    pub fn rchunks_mut(&mut self, chunk_size: usize) -> RChunksMut<'_, T>

    Returns an iterator over chunk_size elements of the slice at a time, starting at the end +

    1.31.0 · source

    pub fn rchunks_mut(&mut self, chunk_size: usize) -> RChunksMut<'_, T>

    Returns an iterator over chunk_size elements of the slice at a time, starting at the end of the slice.

    The chunks are mutable slices, and do not overlap. If chunk_size does not divide the length of the slice, then the last chunk will not have length chunk_size.

    @@ -1296,7 +1418,7 @@
    Examples
    beginning of the slice.

    Panics

    Panics if chunk_size is 0.

    -
    Examples
    +
    Examples
    let v = &mut [0, 0, 0, 0, 0];
     let mut count = 1;
     
    @@ -1307,7 +1429,7 @@ 
    Examples
    count += 1; } assert_eq!(v, &[3, 2, 2, 1, 1]);
    -
    1.31.0 · source

    pub fn rchunks_exact(&self, chunk_size: usize) -> RChunksExact<'_, T>

    Returns an iterator over chunk_size elements of the slice at a time, starting at the +

    1.31.0 · source

    pub fn rchunks_exact(&self, chunk_size: usize) -> RChunksExact<'_, T>

    Returns an iterator over chunk_size elements of the slice at a time, starting at the end of the slice.

    The chunks are slices and do not overlap. If chunk_size does not divide the length of the slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved @@ -1319,14 +1441,14 @@

    Examples
    slice.

    Panics

    Panics if chunk_size is 0.

    -
    Examples
    -
    let slice = ['l', 'o', 'r', 'e', 'm'];
    +
    Examples
    +
    let slice = ['l', 'o', 'r', 'e', 'm'];
     let mut iter = slice.rchunks_exact(2);
    -assert_eq!(iter.next().unwrap(), &['e', 'm']);
    -assert_eq!(iter.next().unwrap(), &['o', 'r']);
    +assert_eq!(iter.next().unwrap(), &['e', 'm']);
    +assert_eq!(iter.next().unwrap(), &['o', 'r']);
     assert!(iter.next().is_none());
    -assert_eq!(iter.remainder(), &['l']);
    -
    1.31.0 · source

    pub fn rchunks_exact_mut(&mut self, chunk_size: usize) -> RChunksExactMut<'_, T>

    Returns an iterator over chunk_size elements of the slice at a time, starting at the end +assert_eq!(iter.remainder(), &['l']);

    +
    1.31.0 · source

    pub fn rchunks_exact_mut(&mut self, chunk_size: usize) -> RChunksExactMut<'_, T>

    Returns an iterator over chunk_size elements of the slice at a time, starting at the end of the slice.

    The chunks are mutable slices, and do not overlap. If chunk_size does not divide the length of the slice, then the last up to chunk_size-1 elements will be omitted and can be @@ -1338,7 +1460,7 @@

    Examples
    of the slice.

    Panics

    Panics if chunk_size is 0.

    -
    Examples
    +
    Examples
    let v = &mut [0, 0, 0, 0, 0];
     let mut count = 1;
     
    @@ -1349,13 +1471,13 @@ 
    Examples
    count += 1; } assert_eq!(v, &[0, 2, 2, 1, 1]);
    -
    source

    pub fn group_by<F>(&self, pred: F) -> GroupBy<'_, T, F>where - F: FnMut(&T, &T) -> bool,

    🔬This is a nightly-only experimental API. (slice_group_by)

    Returns an iterator over the slice producing non-overlapping runs +

    source

    pub fn group_by<F>(&self, pred: F) -> GroupBy<'_, T, F>
    where + F: FnMut(&T, &T) -> bool,

    🔬This is a nightly-only experimental API. (slice_group_by)

    Returns an iterator over the slice producing non-overlapping runs of elements using the predicate to separate them.

    The predicate is called on two elements following themselves, it means the predicate is called on slice[0] and slice[1] then on slice[1] and slice[2] and so on.

    -
    Examples
    +
    Examples
    #![feature(slice_group_by)]
     
     let slice = &[1, 1, 1, 3, 3, 2, 2, 2];
    @@ -1378,13 +1500,13 @@ 
    Examples
    assert_eq!(iter.next(), Some(&[2, 3][..])); assert_eq!(iter.next(), Some(&[2, 3, 4][..])); assert_eq!(iter.next(), None);
    -
    source

    pub fn group_by_mut<F>(&mut self, pred: F) -> GroupByMut<'_, T, F>where - F: FnMut(&T, &T) -> bool,

    🔬This is a nightly-only experimental API. (slice_group_by)

    Returns an iterator over the slice producing non-overlapping mutable +

    source

    pub fn group_by_mut<F>(&mut self, pred: F) -> GroupByMut<'_, T, F>
    where + F: FnMut(&T, &T) -> bool,

    🔬This is a nightly-only experimental API. (slice_group_by)

    Returns an iterator over the slice producing non-overlapping mutable runs of elements using the predicate to separate them.

    The predicate is called on two elements following themselves, it means the predicate is called on slice[0] and slice[1] then on slice[1] and slice[2] and so on.

    -
    Examples
    +
    Examples
    #![feature(slice_group_by)]
     
     let slice = &mut [1, 1, 1, 3, 3, 2, 2, 2];
    @@ -1407,13 +1529,13 @@ 
    Examples
    assert_eq!(iter.next(), Some(&mut [2, 3][..])); assert_eq!(iter.next(), Some(&mut [2, 3, 4][..])); assert_eq!(iter.next(), None);
    -
    1.0.0 · source

    pub fn split_at(&self, mid: usize) -> (&[T], &[T])

    Divides one slice into two at an index.

    +
    1.0.0 · source

    pub fn split_at(&self, mid: usize) -> (&[T], &[T])

    Divides one slice into two at an index.

    The first will contain all indices from [0, mid) (excluding the index mid itself) and the second will contain all indices from [mid, len) (excluding the index len itself).

    Panics

    Panics if mid > len.

    -
    Examples
    +
    Examples
    let v = [1, 2, 3, 4, 5, 6];
     
     {
    @@ -1433,13 +1555,13 @@ 
    Examples
    assert_eq!(left, [1, 2, 3, 4, 5, 6]); assert_eq!(right, []); }
    -
    1.0.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T])

    Divides one mutable slice into two at an index.

    +
    1.0.0 · source

    pub fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T])

    Divides one mutable slice into two at an index.

    The first will contain all indices from [0, mid) (excluding the index mid itself) and the second will contain all indices from [mid, len) (excluding the index len itself).

    Panics

    Panics if mid > len.

    -
    Examples
    +
    Examples
    let mut v = [1, 0, 3, 0, 5, 6];
     let (left, right) = v.split_at_mut(2);
     assert_eq!(left, [1, 0]);
    @@ -1447,7 +1569,7 @@ 
    Examples
    left[1] = 2; right[1] = 4; assert_eq!(v, [1, 2, 3, 4, 5, 6]);
    -
    source

    pub unsafe fn split_at_unchecked(&self, mid: usize) -> (&[T], &[T])

    🔬This is a nightly-only experimental API. (slice_split_at_unchecked)

    Divides one slice into two at an index, without doing bounds checking.

    +
    source

    pub unsafe fn split_at_unchecked(&self, mid: usize) -> (&[T], &[T])

    🔬This is a nightly-only experimental API. (slice_split_at_unchecked)

    Divides one slice into two at an index, without doing bounds checking.

    The first will contain all indices from [0, mid) (excluding the index mid itself) and the second will contain all indices from [mid, len) (excluding the index len itself).

    @@ -1456,7 +1578,7 @@
    Safety

    Calling this method with an out-of-bounds index is undefined behavior even if the resulting reference is not used. The caller has to ensure that 0 <= mid <= self.len().

    -
    Examples
    +
    Examples
    #![feature(slice_split_at_unchecked)]
     
     let v = [1, 2, 3, 4, 5, 6];
    @@ -1478,7 +1600,7 @@ 
    Examples
    assert_eq!(left, [1, 2, 3, 4, 5, 6]); assert_eq!(right, []); }
    -
    source

    pub unsafe fn split_at_mut_unchecked( +

    source

    pub unsafe fn split_at_mut_unchecked( &mut self, mid: usize ) -> (&mut [T], &mut [T])

    🔬This is a nightly-only experimental API. (slice_split_at_unchecked)

    Divides one mutable slice into two at an index, without doing bounds checking.

    @@ -1490,7 +1612,7 @@
    Safety

    Calling this method with an out-of-bounds index is undefined behavior even if the resulting reference is not used. The caller has to ensure that 0 <= mid <= self.len().

    -
    Examples
    +
    Examples
    #![feature(slice_split_at_unchecked)]
     
     let mut v = [1, 0, 3, 0, 5, 6];
    @@ -1503,13 +1625,13 @@ 
    Examples
    right[1] = 4; } assert_eq!(v, [1, 2, 3, 4, 5, 6]);
    -
    source

    pub fn split_array_ref<const N: usize>(&self) -> (&[T; N], &[T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one slice into an array and a remainder slice at an index.

    +
    source

    pub fn split_array_ref<const N: usize>(&self) -> (&[T; N], &[T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one slice into an array and a remainder slice at an index.

    The array will contain all indices from [0, N) (excluding the index N itself) and the slice will contain all indices from [N, len) (excluding the index len itself).

    Panics

    Panics if N > len.

    -
    Examples
    +
    Examples
    #![feature(split_array)]
     
     let v = &[1, 2, 3, 4, 5, 6][..];
    @@ -1531,13 +1653,13 @@ 
    Examples
    assert_eq!(left, &[1, 2, 3, 4, 5, 6]); assert_eq!(right, []); }
    -
    source

    pub fn split_array_mut<const N: usize>(&mut self) -> (&mut [T; N], &mut [T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable slice into an array and a remainder slice at an index.

    +
    source

    pub fn split_array_mut<const N: usize>(&mut self) -> (&mut [T; N], &mut [T])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable slice into an array and a remainder slice at an index.

    The array will contain all indices from [0, N) (excluding the index N itself) and the slice will contain all indices from [N, len) (excluding the index len itself).

    Panics

    Panics if N > len.

    -
    Examples
    +
    Examples
    #![feature(split_array)]
     
     let mut v = &mut [1, 0, 3, 0, 5, 6][..];
    @@ -1547,14 +1669,14 @@ 
    Examples
    left[1] = 2; right[1] = 4; assert_eq!(v, [1, 2, 3, 4, 5, 6]);
    -
    source

    pub fn rsplit_array_ref<const N: usize>(&self) -> (&[T], &[T; N])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one slice into an array and a remainder slice at an index from +

    source

    pub fn rsplit_array_ref<const N: usize>(&self) -> (&[T], &[T; N])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one slice into an array and a remainder slice at an index from the end.

    The slice will contain all indices from [0, len - N) (excluding the index len - N itself) and the array will contain all indices from [len - N, len) (excluding the index len itself).

    Panics

    Panics if N > len.

    -
    Examples
    +
    Examples
    #![feature(split_array)]
     
     let v = &[1, 2, 3, 4, 5, 6][..];
    @@ -1576,14 +1698,14 @@ 
    Examples
    assert_eq!(left, []); assert_eq!(right, &[1, 2, 3, 4, 5, 6]); }
    -
    source

    pub fn rsplit_array_mut<const N: usize>(&mut self) -> (&mut [T], &mut [T; N])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable slice into an array and a remainder slice at an +

    source

    pub fn rsplit_array_mut<const N: usize>(&mut self) -> (&mut [T], &mut [T; N])

    🔬This is a nightly-only experimental API. (split_array)

    Divides one mutable slice into an array and a remainder slice at an index from the end.

    The slice will contain all indices from [0, len - N) (excluding the index N itself) and the array will contain all indices from [len - N, len) (excluding the index len itself).

    Panics

    Panics if N > len.

    -
    Examples
    +
    Examples
    #![feature(split_array)]
     
     let mut v = &mut [1, 0, 3, 0, 5, 6][..];
    @@ -1593,10 +1715,10 @@ 
    Examples
    left[1] = 2; right[1] = 4; assert_eq!(v, [1, 2, 3, 4, 5, 6]);
    -
    1.0.0 · source

    pub fn split<F>(&self, pred: F) -> Split<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match +

    1.0.0 · source

    pub fn split<F>(&self, pred: F) -> Split<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match pred. The matched element is not contained in the subslices.

    -
    Examples
    +
    Examples
    let slice = [10, 40, 33, 20];
     let mut iter = slice.split(|num| num % 3 == 0);
     
    @@ -1624,21 +1746,21 @@ 
    Examples
    assert_eq!(iter.next().unwrap(), &[]); assert_eq!(iter.next().unwrap(), &[20]); assert!(iter.next().is_none());
    -
    1.0.0 · source

    pub fn split_mut<F>(&mut self, pred: F) -> SplitMut<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over mutable subslices separated by elements that +

    1.0.0 · source

    pub fn split_mut<F>(&mut self, pred: F) -> SplitMut<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over mutable subslices separated by elements that match pred. The matched element is not contained in the subslices.

    -
    Examples
    +
    Examples
    let mut v = [10, 40, 30, 20, 60, 50];
     
     for group in v.split_mut(|num| *num % 3 == 0) {
         group[0] = 1;
     }
     assert_eq!(v, [1, 40, 30, 1, 60, 1]);
    -
    1.51.0 · source

    pub fn split_inclusive<F>(&self, pred: F) -> SplitInclusive<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match +

    1.51.0 · source

    pub fn split_inclusive<F>(&self, pred: F) -> SplitInclusive<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match pred. The matched element is contained in the end of the previous subslice as a terminator.

    -
    Examples
    +
    Examples
    let slice = [10, 40, 33, 20];
     let mut iter = slice.split_inclusive(|num| num % 3 == 0);
     
    @@ -1655,11 +1777,11 @@ 
    Examples
    assert_eq!(iter.next().unwrap(), &[3]); assert_eq!(iter.next().unwrap(), &[10, 40, 33]); assert!(iter.next().is_none());
    -
    1.51.0 · source

    pub fn split_inclusive_mut<F>(&mut self, pred: F) -> SplitInclusiveMut<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over mutable subslices separated by elements that +

    1.51.0 · source

    pub fn split_inclusive_mut<F>(&mut self, pred: F) -> SplitInclusiveMut<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over mutable subslices separated by elements that match pred. The matched element is contained in the previous subslice as a terminator.

    -
    Examples
    +
    Examples
    let mut v = [10, 40, 30, 20, 60, 50];
     
     for group in v.split_inclusive_mut(|num| *num % 3 == 0) {
    @@ -1667,11 +1789,11 @@ 
    Examples
    group[terminator_idx] = 1; } assert_eq!(v, [10, 40, 1, 20, 1, 1]);
    -
    1.27.0 · source

    pub fn rsplit<F>(&self, pred: F) -> RSplit<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match +

    1.27.0 · source

    pub fn rsplit<F>(&self, pred: F) -> RSplit<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match pred, starting at the end of the slice and working backwards. The matched element is not contained in the subslices.

    -
    Examples
    +
    Examples
    let slice = [11, 22, 33, 0, 44, 55];
     let mut iter = slice.rsplit(|num| *num == 0);
     
    @@ -1688,11 +1810,11 @@ 
    Examples
    assert_eq!(it.next().unwrap(), &[1, 1]); assert_eq!(it.next().unwrap(), &[]); assert_eq!(it.next(), None);
    -
    1.27.0 · source

    pub fn rsplit_mut<F>(&mut self, pred: F) -> RSplitMut<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over mutable subslices separated by elements that +

    1.27.0 · source

    pub fn rsplit_mut<F>(&mut self, pred: F) -> RSplitMut<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over mutable subslices separated by elements that match pred, starting at the end of the slice and working backwards. The matched element is not contained in the subslices.

    -
    Examples
    +
    Examples
    let mut v = [100, 400, 300, 200, 600, 500];
     
     let mut count = 0;
    @@ -1701,69 +1823,97 @@ 
    Examples
    group[0] = count; } assert_eq!(v, [3, 400, 300, 2, 600, 1]);
    -
    1.0.0 · source

    pub fn splitn<F>(&self, n: usize, pred: F) -> SplitN<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match +

    1.0.0 · source

    pub fn splitn<F>(&self, n: usize, pred: F) -> SplitN<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match pred, limited to returning at most n items. The matched element is not contained in the subslices.

    The last element returned, if any, will contain the remainder of the slice.

    -
    Examples
    +
    Examples

    Print the slice split once by numbers divisible by 3 (i.e., [10, 40], [20, 60, 50]):

    let v = [10, 40, 30, 20, 60, 50];
     
     for group in v.splitn(2, |num| *num % 3 == 0) {
    -    println!("{group:?}");
    +    println!("{group:?}");
     }
    -
    1.0.0 · source

    pub fn splitn_mut<F>(&mut self, n: usize, pred: F) -> SplitNMut<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over mutable subslices separated by elements that match +

    1.0.0 · source

    pub fn splitn_mut<F>(&mut self, n: usize, pred: F) -> SplitNMut<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over mutable subslices separated by elements that match pred, limited to returning at most n items. The matched element is not contained in the subslices.

    The last element returned, if any, will contain the remainder of the slice.

    -
    Examples
    +
    Examples
    let mut v = [10, 40, 30, 20, 60, 50];
     
     for group in v.splitn_mut(2, |num| *num % 3 == 0) {
         group[0] = 1;
     }
     assert_eq!(v, [1, 40, 30, 1, 60, 50]);
    -
    1.0.0 · source

    pub fn rsplitn<F>(&self, n: usize, pred: F) -> RSplitN<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match +

    1.0.0 · source

    pub fn rsplitn<F>(&self, n: usize, pred: F) -> RSplitN<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match pred limited to returning at most n items. This starts at the end of the slice and works backwards. The matched element is not contained in the subslices.

    The last element returned, if any, will contain the remainder of the slice.

    -
    Examples
    +
    Examples

    Print the slice split once, starting from the end, by numbers divisible by 3 (i.e., [50], [10, 40, 30, 20]):

    let v = [10, 40, 30, 20, 60, 50];
     
     for group in v.rsplitn(2, |num| *num % 3 == 0) {
    -    println!("{group:?}");
    +    println!("{group:?}");
     }
    -
    1.0.0 · source

    pub fn rsplitn_mut<F>(&mut self, n: usize, pred: F) -> RSplitNMut<'_, T, F>where - F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match +

    1.0.0 · source

    pub fn rsplitn_mut<F>(&mut self, n: usize, pred: F) -> RSplitNMut<'_, T, F>
    where + F: FnMut(&T) -> bool,

    Returns an iterator over subslices separated by elements that match pred limited to returning at most n items. This starts at the end of the slice and works backwards. The matched element is not contained in the subslices.

    The last element returned, if any, will contain the remainder of the slice.

    -
    Examples
    +
    Examples
    let mut s = [10, 40, 30, 20, 60, 50];
     
     for group in s.rsplitn_mut(2, |num| *num % 3 == 0) {
         group[0] = 1;
     }
     assert_eq!(s, [1, 40, 30, 20, 60, 1]);
    -
    1.0.0 · source

    pub fn contains(&self, x: &T) -> boolwhere - T: PartialEq<T>,

    Returns true if the slice contains an element with the given value.

    +
    source

    pub fn split_once<F>(&self, pred: F) -> Option<(&[T], &[T])>
    where + F: FnMut(&T) -> bool,

    🔬This is a nightly-only experimental API. (slice_split_once)

    Splits the slice on the first element that matches the specified +predicate.

    +

    If any matching elements are present in the slice, returns the prefix +before the match and suffix after. The matching element itself is not +included. If no elements match, returns None.

    +
    Examples
    +
    #![feature(slice_split_once)]
    +let s = [1, 2, 3, 2, 4];
    +assert_eq!(s.split_once(|&x| x == 2), Some((
    +    &[1][..],
    +    &[3, 2, 4][..]
    +)));
    +assert_eq!(s.split_once(|&x| x == 0), None);
    +
    source

    pub fn rsplit_once<F>(&self, pred: F) -> Option<(&[T], &[T])>
    where + F: FnMut(&T) -> bool,

    🔬This is a nightly-only experimental API. (slice_split_once)

    Splits the slice on the last element that matches the specified +predicate.

    +

    If any matching elements are present in the slice, returns the prefix +before the match and suffix after. The matching element itself is not +included. If no elements match, returns None.

    +
    Examples
    +
    #![feature(slice_split_once)]
    +let s = [1, 2, 3, 2, 4];
    +assert_eq!(s.rsplit_once(|&x| x == 2), Some((
    +    &[1, 2, 3][..],
    +    &[4][..]
    +)));
    +assert_eq!(s.rsplit_once(|&x| x == 0), None);
    +
    1.0.0 · source

    pub fn contains(&self, x: &T) -> bool
    where + T: PartialEq,

    Returns true if the slice contains an element with the given value.

    This operation is O(n).

    Note that if you have a sorted slice, binary_search may be faster.

    -
    Examples
    +
    Examples
    let v = [10, 40, 30];
     assert!(v.contains(&30));
     assert!(!v.contains(&50));
    @@ -1771,12 +1921,12 @@
    Examples
    with one (for example, String implements PartialEq<str>), you can use iter().any:

    -
    let v = [String::from("hello"), String::from("world")]; // slice of `String`
    -assert!(v.iter().any(|e| e == "hello")); // search with `&str`
    -assert!(!v.iter().any(|e| e == "hi"));
    -
    1.0.0 · source

    pub fn starts_with(&self, needle: &[T]) -> boolwhere - T: PartialEq<T>,

    Returns true if needle is a prefix of the slice.

    -
    Examples
    +
    let v = [String::from("hello"), String::from("world")]; // slice of `String`
    +assert!(v.iter().any(|e| e == "hello")); // search with `&str`
    +assert!(!v.iter().any(|e| e == "hi"));
    +
    1.0.0 · source

    pub fn starts_with(&self, needle: &[T]) -> bool
    where + T: PartialEq,

    Returns true if needle is a prefix of the slice.

    +
    Examples
    let v = [10, 40, 30];
     assert!(v.starts_with(&[10]));
     assert!(v.starts_with(&[10, 40]));
    @@ -1788,9 +1938,9 @@ 
    Examples
    assert!(v.starts_with(&[])); let v: &[u8] = &[]; assert!(v.starts_with(&[]));
    -
    1.0.0 · source

    pub fn ends_with(&self, needle: &[T]) -> boolwhere - T: PartialEq<T>,

    Returns true if needle is a suffix of the slice.

    -
    Examples
    +
    1.0.0 · source

    pub fn ends_with(&self, needle: &[T]) -> bool
    where + T: PartialEq,

    Returns true if needle is a suffix of the slice.

    +
    Examples
    let v = [10, 40, 30];
     assert!(v.ends_with(&[30]));
     assert!(v.ends_with(&[40, 30]));
    @@ -1802,36 +1952,36 @@ 
    Examples
    assert!(v.ends_with(&[])); let v: &[u8] = &[]; assert!(v.ends_with(&[]));
    -
    1.51.0 · source

    pub fn strip_prefix<P>(&self, prefix: &P) -> Option<&[T]>where +

    1.51.0 · source

    pub fn strip_prefix<P>(&self, prefix: &P) -> Option<&[T]>
    where P: SlicePattern<Item = T> + ?Sized, - T: PartialEq<T>,

    Returns a subslice with the prefix removed.

    + T: PartialEq,

    Returns a subslice with the prefix removed.

    If the slice starts with prefix, returns the subslice after the prefix, wrapped in Some. If prefix is empty, simply returns the original slice.

    If the slice does not start with prefix, returns None.

    -
    Examples
    +
    Examples
    let v = &[10, 40, 30];
     assert_eq!(v.strip_prefix(&[10]), Some(&[40, 30][..]));
     assert_eq!(v.strip_prefix(&[10, 40]), Some(&[30][..]));
     assert_eq!(v.strip_prefix(&[50]), None);
     assert_eq!(v.strip_prefix(&[10, 50]), None);
     
    -let prefix : &str = "he";
    -assert_eq!(b"hello".strip_prefix(prefix.as_bytes()),
    -           Some(b"llo".as_ref()));
    -
    1.51.0 · source

    pub fn strip_suffix<P>(&self, suffix: &P) -> Option<&[T]>where +let prefix : &str = "he"; +assert_eq!(b"hello".strip_prefix(prefix.as_bytes()), + Some(b"llo".as_ref())); +

    1.51.0 · source

    pub fn strip_suffix<P>(&self, suffix: &P) -> Option<&[T]>
    where P: SlicePattern<Item = T> + ?Sized, - T: PartialEq<T>,

    Returns a subslice with the suffix removed.

    + T: PartialEq,

    Returns a subslice with the suffix removed.

    If the slice ends with suffix, returns the subslice before the suffix, wrapped in Some. If suffix is empty, simply returns the original slice.

    If the slice does not end with suffix, returns None.

    -
    Examples
    +
    Examples
    let v = &[10, 40, 30];
     assert_eq!(v.strip_suffix(&[30]), Some(&[10, 40][..]));
     assert_eq!(v.strip_suffix(&[40, 30]), Some(&[10][..]));
     assert_eq!(v.strip_suffix(&[50]), None);
     assert_eq!(v.strip_suffix(&[50, 30]), None);
    -

    Binary searches this slice for a given element. +

    Binary searches this slice for a given element. If the slice is not sorted, the returned result is unspecified and meaningless.

    If the value is found then Result::Ok is returned, containing the @@ -1842,7 +1992,7 @@

    Examples
    the index where a matching element could be inserted while maintaining sorted order.

    See also binary_search_by, binary_search_by_key, and partition_point.

    -
    Examples
    +
    Examples

    Looks up a series of four elements. The first is found, with a uniquely determined position; the second and third are not found; the fourth could match any position in [1, 4].

    @@ -1870,7 +2020,7 @@
    Examples
    assert!(s[low..high].iter().all(|&x| x == 1)); assert!(s[high..].iter().all(|&x| x > 1)); -// For something not found, the "range" of equal items is empty +// For something not found, the "range" of equal items is empty assert_eq!(s.partition_point(|x| x < &11), 9); assert_eq!(s.partition_point(|x| x <= &11), 9); assert_eq!(s.binary_search(&11), Err(9));
    @@ -1883,8 +2033,8 @@
    Examples
    // The above is equivalent to `let idx = s.binary_search(&num).unwrap_or_else(|x| x);` s.insert(idx, num); assert_eq!(s, [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]); -
    1.0.0 · source

    pub fn binary_search_by<'a, F>(&'a self, f: F) -> Result<usize, usize>where - F: FnMut(&'a T) -> Ordering,

    Binary searches this slice with a comparator function.

    +
    1.0.0 · source

    pub fn binary_search_by<'a, F>(&'a self, f: F) -> Result<usize, usize>
    where + F: FnMut(&'a T) -> Ordering,

    Binary searches this slice with a comparator function.

    The comparator function should return an order code that indicates whether its argument is Less, Equal or Greater the desired target. @@ -1899,7 +2049,7 @@

    Examples
    the index where a matching element could be inserted while maintaining sorted order.

    See also binary_search, binary_search_by_key, and partition_point.

    -
    Examples
    +
    Examples

    Looks up a series of four elements. The first is found, with a uniquely determined position; the second and third are not found; the fourth could match any position in [1, 4].

    @@ -1915,13 +2065,13 @@
    Examples
    let seek = 1; let r = s.binary_search_by(|probe| probe.cmp(&seek)); assert!(match r { Ok(1..=4) => true, _ => false, });
    -
    1.10.0 · source

    pub fn binary_search_by_key<'a, B, F>( +

    1.10.0 · source

    pub fn binary_search_by_key<'a, B, F>( &'a self, b: &B, f: F -) -> Result<usize, usize>where +) -> Result<usize, usize>
    where F: FnMut(&'a T) -> B, - B: Ord,

    Binary searches this slice with a key extraction function.

    + B: Ord,

    Binary searches this slice with a key extraction function.

    Assumes that the slice is sorted by the key, for instance with sort_by_key using the same key extraction function. If the slice is not sorted by the key, the returned result is @@ -1934,7 +2084,7 @@

    Examples
    the index where a matching element could be inserted while maintaining sorted order.

    See also binary_search, binary_search_by, and partition_point.

    -
    Examples
    +
    Examples

    Looks up a series of four elements in a slice of pairs sorted by their second elements. The first is found, with a uniquely determined position; the second and third are not found; the @@ -1949,11 +2099,11 @@

    Examples
    assert_eq!(s.binary_search_by_key(&100, |&(a, b)| b), Err(13)); let r = s.binary_search_by_key(&1, |&(a, b)| b); assert!(match r { Ok(1..=4) => true, _ => false, });
    -
    1.20.0 · source

    pub fn sort_unstable(&mut self)where - T: Ord,

    Sorts the slice, but might not preserve the order of equal elements.

    +
    1.20.0 · source

    pub fn sort_unstable(&mut self)
    where + T: Ord,

    Sorts the slice, but might not preserve the order of equal elements.

    This sort is unstable (i.e., may reorder equal elements), in-place (i.e., does not allocate), and O(n * log(n)) worst-case.

    -
    Current implementation
    +
    Current implementation

    The current algorithm is based on pattern-defeating quicksort by Orson Peters, which combines the fast average case of randomized quicksort with the fast worst case of heapsort, while achieving linear time on slices with certain patterns. It uses some @@ -1961,13 +2111,13 @@

    Current im deterministic behavior.

    It is typically faster than stable sorting, except in a few special cases, e.g., when the slice consists of several concatenated sorted sequences.

    -
    Examples
    +
    Examples
    let mut v = [-5, 4, 1, -3, 2];
     
     v.sort_unstable();
     assert!(v == [-5, -3, 1, 2, 4]);
    -
    1.20.0 · source

    pub fn sort_unstable_by<F>(&mut self, compare: F)where - F: FnMut(&T, &T) -> Ordering,

    Sorts the slice with a comparator function, but might not preserve the order of equal +

    1.20.0 · source

    pub fn sort_unstable_by<F>(&mut self, compare: F)
    where + F: FnMut(&T, &T) -> Ordering,

    Sorts the slice with a comparator function, but might not preserve the order of equal elements.

    This sort is unstable (i.e., may reorder equal elements), in-place (i.e., does not allocate), and O(n * log(n)) worst-case.

    @@ -1984,7 +2134,7 @@
    Examples
    let mut floats = [5f64, 4.0, 1.0, 3.0, 2.0];
     floats.sort_unstable_by(|a, b| a.partial_cmp(b).unwrap());
     assert_eq!(floats, [1.0, 2.0, 3.0, 4.0, 5.0]);
    -
    Current implementation
    +
    Current implementation

    The current algorithm is based on pattern-defeating quicksort by Orson Peters, which combines the fast average case of randomized quicksort with the fast worst case of heapsort, while achieving linear time on slices with certain patterns. It uses some @@ -1992,7 +2142,7 @@

    Current im deterministic behavior.

    It is typically faster than stable sorting, except in a few special cases, e.g., when the slice consists of several concatenated sorted sequences.

    -
    Examples
    +
    Examples
    let mut v = [5, 4, 1, 3, 2];
     v.sort_unstable_by(|a, b| a.cmp(b));
     assert!(v == [1, 2, 3, 4, 5]);
    @@ -2000,14 +2150,14 @@ 
    Examples
    // reverse sorting v.sort_unstable_by(|a, b| b.cmp(a)); assert!(v == [5, 4, 3, 2, 1]);
    -
    1.20.0 · source

    pub fn sort_unstable_by_key<K, F>(&mut self, f: F)where +

    1.20.0 · source

    pub fn sort_unstable_by_key<K, F>(&mut self, f: F)
    where F: FnMut(&T) -> K, - K: Ord,

    Sorts the slice with a key extraction function, but might not preserve the order of equal + K: Ord,

    Sorts the slice with a key extraction function, but might not preserve the order of equal elements.

    This sort is unstable (i.e., may reorder equal elements), in-place -(i.e., does not allocate), and O(m * n * log(n)) worst-case, where the key function is +(i.e., does not allocate), and O(m * n * log(n)) worst-case, where the key function is O(m).

    -
    Current implementation
    +
    Current implementation

    The current algorithm is based on pattern-defeating quicksort by Orson Peters, which combines the fast average case of randomized quicksort with the fast worst case of heapsort, while achieving linear time on slices with certain patterns. It uses some @@ -2016,31 +2166,32 @@

    Current im

    Due to its key calling strategy, sort_unstable_by_key is likely to be slower than sort_by_cached_key in cases where the key function is expensive.

    -
    Examples
    +
    Examples
    let mut v = [-5i32, 4, 1, -3, 2];
     
     v.sort_unstable_by_key(|k| k.abs());
     assert!(v == [1, 2, -3, 4, -5]);
    -
    1.49.0 · source

    pub fn select_nth_unstable( +

    1.49.0 · source

    pub fn select_nth_unstable( &mut self, index: usize -) -> (&mut [T], &mut T, &mut [T])where - T: Ord,

    Reorder the slice such that the element at index is at its final sorted position.

    +) -> (&mut [T], &mut T, &mut [T])
    where + T: Ord,

    Reorder the slice such that the element at index is at its final sorted position.

    This reordering has the additional property that any value at position i < index will be less than or equal to any value at a position j > index. Additionally, this reordering is unstable (i.e. any number of equal elements may end up at position index), in-place -(i.e. does not allocate), and O(n) on average. The worst-case performance is O(n log n). +(i.e. does not allocate), and runs in O(n) time. This function is also known as “kth element” in other libraries.

    It returns a triplet of the following from the reordered slice: the subslice prior to index, the element at index, and the subslice after index; accordingly, the values in those two subslices will respectively all be less-than-or-equal-to and greater-than-or-equal-to the value of the element at index.

    -
    Current implementation
    -

    The current algorithm is based on the quickselect portion of the same quicksort algorithm -used for sort_unstable.

    +
    Current implementation
    +

    The current algorithm is an introselect implementation based on Pattern Defeating Quicksort, which is also +the basis for sort_unstable. The fallback algorithm is Median of Medians using Tukey’s Ninther for +pivot selection, which guarantees linear runtime for all inputs.

    Panics

    Panics when index >= len(), meaning it always panics on empty slices.

    -
    Examples
    +
    Examples
    let mut v = [-5i32, 4, 1, -3, 2];
     
     // Find the median
    @@ -2052,30 +2203,30 @@ 
    Examples
    v == [-5, -3, 1, 2, 4] || v == [-3, -5, 1, 4, 2] || v == [-5, -3, 1, 4, 2]);
    -
    1.49.0 · source

    pub fn select_nth_unstable_by<F>( +

    1.49.0 · source

    pub fn select_nth_unstable_by<F>( &mut self, index: usize, compare: F -) -> (&mut [T], &mut T, &mut [T])where - F: FnMut(&T, &T) -> Ordering,

    Reorder the slice with a comparator function such that the element at index is at its +) -> (&mut [T], &mut T, &mut [T])

    where + F: FnMut(&T, &T) -> Ordering,

    Reorder the slice with a comparator function such that the element at index is at its final sorted position.

    This reordering has the additional property that any value at position i < index will be less than or equal to any value at a position j > index using the comparator function. Additionally, this reordering is unstable (i.e. any number of equal elements may end up at -position index), in-place (i.e. does not allocate), and O(n) on average. -The worst-case performance is O(n log n). This function is also known as -“kth element” in other libraries.

    +position index), in-place (i.e. does not allocate), and runs in O(n) time. +This function is also known as “kth element” in other libraries.

    It returns a triplet of the following from the slice reordered according to the provided comparator function: the subslice prior to index, the element at index, and the subslice after index; accordingly, the values in those two subslices will respectively all be less-than-or-equal-to and greater-than-or-equal-to the value of the element at index.

    -
    Current implementation
    -

    The current algorithm is based on the quickselect portion of the same quicksort algorithm -used for sort_unstable.

    +
    Current implementation
    +

    The current algorithm is an introselect implementation based on Pattern Defeating Quicksort, which is also +the basis for sort_unstable. The fallback algorithm is Median of Medians using Tukey’s Ninther for +pivot selection, which guarantees linear runtime for all inputs.

    Panics

    Panics when index >= len(), meaning it always panics on empty slices.

    -
    Examples
    +
    Examples
    let mut v = [-5i32, 4, 1, -3, 2];
     
     // Find the median as if the slice were sorted in descending order.
    @@ -2087,31 +2238,31 @@ 
    Examples
    v == [2, 4, 1, -3, -5] || v == [4, 2, 1, -5, -3] || v == [4, 2, 1, -3, -5]);
    -
    1.49.0 · source

    pub fn select_nth_unstable_by_key<K, F>( +

    1.49.0 · source

    pub fn select_nth_unstable_by_key<K, F>( &mut self, index: usize, f: F -) -> (&mut [T], &mut T, &mut [T])where +) -> (&mut [T], &mut T, &mut [T])
    where F: FnMut(&T) -> K, - K: Ord,

    Reorder the slice with a key extraction function such that the element at index is at its + K: Ord,

    Reorder the slice with a key extraction function such that the element at index is at its final sorted position.

    This reordering has the additional property that any value at position i < index will be less than or equal to any value at a position j > index using the key extraction function. Additionally, this reordering is unstable (i.e. any number of equal elements may end up at -position index), in-place (i.e. does not allocate), and O(n) on average. -The worst-case performance is O(n log n). +position index), in-place (i.e. does not allocate), and runs in O(n) time. This function is also known as “kth element” in other libraries.

    It returns a triplet of the following from the slice reordered according to the provided key extraction function: the subslice prior to index, the element at index, and the subslice after index; accordingly, the values in those two subslices will respectively all be less-than-or-equal-to and greater-than-or-equal-to the value of the element at index.

    -
    Current implementation
    -

    The current algorithm is based on the quickselect portion of the same quicksort algorithm -used for sort_unstable.

    +
    Current implementation
    +

    The current algorithm is an introselect implementation based on Pattern Defeating Quicksort, which is also +the basis for sort_unstable. The fallback algorithm is Median of Medians using Tukey’s Ninther for +pivot selection, which guarantees linear runtime for all inputs.

    Panics

    Panics when index >= len(), meaning it always panics on empty slices.

    -
    Examples
    +
    Examples
    let mut v = [-5i32, 4, 1, -3, 2];
     
     // Return the median as if the array were sorted according to absolute value.
    @@ -2123,13 +2274,13 @@ 
    Examples
    v == [1, 2, -3, -5, 4] || v == [2, 1, -3, 4, -5] || v == [2, 1, -3, -5, 4]);
    -
    source

    pub fn partition_dedup(&mut self) -> (&mut [T], &mut [T])where - T: PartialEq<T>,

    🔬This is a nightly-only experimental API. (slice_partition_dedup)

    Moves all consecutive repeated elements to the end of the slice according to the +

    source

    pub fn partition_dedup(&mut self) -> (&mut [T], &mut [T])
    where + T: PartialEq,

    🔬This is a nightly-only experimental API. (slice_partition_dedup)

    Moves all consecutive repeated elements to the end of the slice according to the PartialEq trait implementation.

    Returns two slices. The first contains no consecutive repeated elements. The second contains all the duplicates in no specified order.

    If the slice is sorted, the first returned slice contains no duplicates.

    -
    Examples
    +
    Examples
    #![feature(slice_partition_dedup)]
     
     let mut slice = [1, 2, 2, 3, 3, 2, 1, 1];
    @@ -2138,8 +2289,8 @@ 
    Examples
    assert_eq!(dedup, [1, 2, 3, 2, 1]); assert_eq!(duplicates, [2, 3, 1]);
    -
    source

    pub fn partition_dedup_by<F>(&mut self, same_bucket: F) -> (&mut [T], &mut [T])where - F: FnMut(&mut T, &mut T) -> bool,

    🔬This is a nightly-only experimental API. (slice_partition_dedup)

    Moves all but the first of consecutive elements to the end of the slice satisfying +

    source

    pub fn partition_dedup_by<F>(&mut self, same_bucket: F) -> (&mut [T], &mut [T])
    where + F: FnMut(&mut T, &mut T) -> bool,

    🔬This is a nightly-only experimental API. (slice_partition_dedup)

    Moves all but the first of consecutive elements to the end of the slice satisfying a given equality relation.

    Returns two slices. The first contains no consecutive repeated elements. The second contains all the duplicates in no specified order.

    @@ -2148,23 +2299,23 @@
    Examples
    from their order in the slice, so if same_bucket(a, b) returns true, a is moved at the end of the slice.

    If the slice is sorted, the first returned slice contains no duplicates.

    -
    Examples
    +
    Examples
    #![feature(slice_partition_dedup)]
     
    -let mut slice = ["foo", "Foo", "BAZ", "Bar", "bar", "baz", "BAZ"];
    +let mut slice = ["foo", "Foo", "BAZ", "Bar", "bar", "baz", "BAZ"];
     
     let (dedup, duplicates) = slice.partition_dedup_by(|a, b| a.eq_ignore_ascii_case(b));
     
    -assert_eq!(dedup, ["foo", "BAZ", "Bar", "baz"]);
    -assert_eq!(duplicates, ["bar", "Foo", "BAZ"]);
    -
    source

    pub fn partition_dedup_by_key<K, F>(&mut self, key: F) -> (&mut [T], &mut [T])where +assert_eq!(dedup, ["foo", "BAZ", "Bar", "baz"]); +assert_eq!(duplicates, ["bar", "Foo", "BAZ"]); +

    source

    pub fn partition_dedup_by_key<K, F>(&mut self, key: F) -> (&mut [T], &mut [T])
    where F: FnMut(&mut T) -> K, - K: PartialEq<K>,

    🔬This is a nightly-only experimental API. (slice_partition_dedup)

    Moves all but the first of consecutive elements to the end of the slice that resolve + K: PartialEq,

    🔬This is a nightly-only experimental API. (slice_partition_dedup)

    Moves all but the first of consecutive elements to the end of the slice that resolve to the same key.

    Returns two slices. The first contains no consecutive repeated elements. The second contains all the duplicates in no specified order.

    If the slice is sorted, the first returned slice contains no duplicates.

    -
    Examples
    +
    Examples
    #![feature(slice_partition_dedup)]
     
     let mut slice = [10, 20, 21, 30, 30, 20, 11, 13];
    @@ -2173,7 +2324,7 @@ 
    Examples
    assert_eq!(dedup, [10, 20, 30, 20, 11]); assert_eq!(duplicates, [21, 30, 13]);
    -
    1.26.0 · source

    pub fn rotate_left(&mut self, mid: usize)

    Rotates the slice in-place such that the first mid elements of the +

    1.26.0 · source

    pub fn rotate_left(&mut self, mid: usize)

    Rotates the slice in-place such that the first mid elements of the slice move to the end while the last self.len() - mid elements move to the front. After calling rotate_left, the element previously at index mid will become the first element in the slice.

    @@ -2183,16 +2334,16 @@
    Panics
    rotation.

    Complexity

    Takes linear (in self.len()) time.

    -
    Examples
    -
    let mut a = ['a', 'b', 'c', 'd', 'e', 'f'];
    +
    Examples
    +
    let mut a = ['a', 'b', 'c', 'd', 'e', 'f'];
     a.rotate_left(2);
    -assert_eq!(a, ['c', 'd', 'e', 'f', 'a', 'b']);
    +assert_eq!(a, ['c', 'd', 'e', 'f', 'a', 'b']);

    Rotating a subslice:

    -
    let mut a = ['a', 'b', 'c', 'd', 'e', 'f'];
    +
    let mut a = ['a', 'b', 'c', 'd', 'e', 'f'];
     a[1..5].rotate_left(1);
    -assert_eq!(a, ['a', 'c', 'd', 'e', 'b', 'f']);
    -
    1.26.0 · source

    pub fn rotate_right(&mut self, k: usize)

    Rotates the slice in-place such that the first self.len() - k +assert_eq!(a, ['a', 'c', 'd', 'e', 'b', 'f']);

    +
    1.26.0 · source

    pub fn rotate_right(&mut self, k: usize)

    Rotates the slice in-place such that the first self.len() - k elements of the slice move to the end while the last k elements move to the front. After calling rotate_right, the element previously at index self.len() - k will become the first element in the slice.

    @@ -2202,37 +2353,37 @@
    Panics
    rotation.

    Complexity

    Takes linear (in self.len()) time.

    -
    Examples
    -
    let mut a = ['a', 'b', 'c', 'd', 'e', 'f'];
    +
    Examples
    +
    let mut a = ['a', 'b', 'c', 'd', 'e', 'f'];
     a.rotate_right(2);
    -assert_eq!(a, ['e', 'f', 'a', 'b', 'c', 'd']);
    -

    Rotate a subslice:

    +assert_eq!(a, ['e', 'f', 'a', 'b', 'c', 'd']);
    +

    Rotating a subslice:

    -
    let mut a = ['a', 'b', 'c', 'd', 'e', 'f'];
    +
    let mut a = ['a', 'b', 'c', 'd', 'e', 'f'];
     a[1..5].rotate_right(1);
    -assert_eq!(a, ['a', 'e', 'b', 'c', 'd', 'f']);
    -
    1.50.0 · source

    pub fn fill(&mut self, value: T)where - T: Clone,

    Fills self with elements by cloning value.

    -
    Examples
    +assert_eq!(a, ['a', 'e', 'b', 'c', 'd', 'f']);
    +
    1.50.0 · source

    pub fn fill(&mut self, value: T)
    where + T: Clone,

    Fills self with elements by cloning value.

    +
    Examples
    let mut buf = vec![0; 10];
     buf.fill(1);
     assert_eq!(buf, vec![1; 10]);
    -
    1.51.0 · source

    pub fn fill_with<F>(&mut self, f: F)where - F: FnMut() -> T,

    Fills self with elements returned by calling a closure repeatedly.

    +
    1.51.0 · source

    pub fn fill_with<F>(&mut self, f: F)
    where + F: FnMut() -> T,

    Fills self with elements returned by calling a closure repeatedly.

    This method uses a closure to create new values. If you’d rather Clone a given value, use fill. If you want to use the Default trait to generate values, you can pass Default::default as the argument.

    -
    Examples
    +
    Examples
    let mut buf = vec![1; 10];
     buf.fill_with(Default::default);
     assert_eq!(buf, vec![0; 10]);
    -
    1.7.0 · source

    pub fn clone_from_slice(&mut self, src: &[T])where - T: Clone,

    Copies the elements from src into self.

    +
    1.7.0 · source

    pub fn clone_from_slice(&mut self, src: &[T])
    where + T: Clone,

    Copies the elements from src into self.

    The length of src must be the same as self.

    Panics

    This function will panic if the two slices have different lengths.

    -
    Examples
    +
    Examples

    Cloning two elements from a slice into another:

    let src = [1, 2, 3, 4];
    @@ -2240,7 +2391,7 @@ 
    Examples
    // Because the slices have to be the same length, // we slice the source slice from four elements -// to two. It will panic if we don't do this. +// to two. It will panic if we don't do this. dst.clone_from_slice(&src[2..]); assert_eq!(src, [1, 2, 3, 4]); @@ -2264,13 +2415,13 @@
    Examples
    } assert_eq!(slice, [4, 5, 3, 4, 5]);
    -
    1.9.0 · source

    pub fn copy_from_slice(&mut self, src: &[T])where - T: Copy,

    Copies all elements from src into self, using a memcpy.

    +
    1.9.0 · source

    pub fn copy_from_slice(&mut self, src: &[T])
    where + T: Copy,

    Copies all elements from src into self, using a memcpy.

    The length of src must be the same as self.

    If T does not implement Copy, use clone_from_slice.

    Panics

    This function will panic if the two slices have different lengths.

    -
    Examples
    +
    Examples

    Copying two elements from a slice into another:

    let src = [1, 2, 3, 4];
    @@ -2278,7 +2429,7 @@ 
    Examples
    // Because the slices have to be the same length, // we slice the source slice from four elements -// to two. It will panic if we don't do this. +// to two. It will panic if we don't do this. dst.copy_from_slice(&src[2..]); assert_eq!(src, [1, 2, 3, 4]); @@ -2302,9 +2453,9 @@
    Examples
    } assert_eq!(slice, [4, 5, 3, 4, 5]);
    -
    1.37.0 · source

    pub fn copy_within<R>(&mut self, src: R, dest: usize)where +

    1.37.0 · source

    pub fn copy_within<R>(&mut self, src: R, dest: usize)
    where R: RangeBounds<usize>, - T: Copy,

    Copies elements from one part of the slice to another part of itself, + T: Copy,

    Copies elements from one part of the slice to another part of itself, using a memmove.

    src is the range within self to copy from. dest is the starting index of the range within self to copy to, which will have the same @@ -2313,15 +2464,15 @@

    Examples
    Panics

    This function will panic if either range exceeds the end of the slice, or if the end of src is before the start.

    -
    Examples
    +
    Examples

    Copying four bytes within a slice:

    -
    let mut bytes = *b"Hello, World!";
    +
    let mut bytes = *b"Hello, World!";
     
     bytes.copy_within(1..5, 8);
     
    -assert_eq!(&bytes, b"Hello, Wello!");
    -
    1.27.0 · source

    pub fn swap_with_slice(&mut self, other: &mut [T])

    Swaps all elements in self with those in other.

    +assert_eq!(&bytes, b"Hello, Wello!");
    +
    1.27.0 · source

    pub fn swap_with_slice(&mut self, other: &mut [T])

    Swaps all elements in self with those in other.

    The length of other must be the same as self.

    Panics

    This function will panic if the two slices have different lengths.

    @@ -2353,7 +2504,7 @@
    Example
    } assert_eq!(slice, [4, 5, 3, 1, 2]);
    -
    1.30.0 · source

    pub unsafe fn align_to<U>(&self) -> (&[T], &[U], &[T])

    Transmute the slice to a slice of another type, ensuring alignment of the types is +

    1.30.0 · source

    pub unsafe fn align_to<U>(&self) -> (&[T], &[U], &[T])

    Transmute the slice to a slice of another type, ensuring alignment of the types is maintained.

    This method splits the slice into three distinct slices: prefix, correctly aligned middle slice of a new type, and the suffix slice. How exactly the slice is split up is not @@ -2366,7 +2517,7 @@

    Example
    Safety

    This method is essentially a transmute with respect to the elements in the returned middle slice, so all the usual caveats pertaining to transmute::<T, U> also apply here.

    -
    Examples
    +
    Examples

    Basic usage:

    unsafe {
    @@ -2376,7 +2527,7 @@ 
    Examples
    // more_efficient_algorithm_for_aligned_shorts(shorts); // less_efficient_algorithm_for_bytes(suffix); }
    -
    1.30.0 · source

    pub unsafe fn align_to_mut<U>(&mut self) -> (&mut [T], &mut [U], &mut [T])

    Transmute the mutable slice to a mutable slice of another type, ensuring alignment of the +

    1.30.0 · source

    pub unsafe fn align_to_mut<U>(&mut self) -> (&mut [T], &mut [U], &mut [T])

    Transmute the mutable slice to a mutable slice of another type, ensuring alignment of the types is maintained.

    This method splits the slice into three distinct slices: prefix, correctly aligned middle slice of a new type, and the suffix slice. How exactly the slice is split up is not @@ -2389,7 +2540,7 @@

    Examples
    Safety

    This method is essentially a transmute with respect to the elements in the returned middle slice, so all the usual caveats pertaining to transmute::<T, U> also apply here.

    -
    Examples
    +
    Examples

    Basic usage:

    unsafe {
    @@ -2399,10 +2550,10 @@ 
    Examples
    // more_efficient_algorithm_for_aligned_shorts(shorts); // less_efficient_algorithm_for_bytes(suffix); }
    -
    source

    pub fn as_simd<const LANES: usize>(&self) -> (&[T], &[Simd<T, LANES>], &[T])where +

    source

    pub fn as_simd<const LANES: usize>(&self) -> (&[T], &[Simd<T, LANES>], &[T])
    where Simd<T, LANES>: AsRef<[T; LANES]>, T: SimdElement, - LaneCount<LANES>: SupportedLaneCount,

    🔬This is a nightly-only experimental API. (portable_simd)

    Split a slice into a prefix, a middle of aligned SIMD types, and a suffix.

    + LaneCount<LANES>: SupportedLaneCount,
    🔬This is a nightly-only experimental API. (portable_simd)

    Split a slice into a prefix, a middle of aligned SIMD types, and a suffix.

    This is a safe wrapper around slice::align_to, so has the same weak postconditions as that method. You’re only assured that self.len() == prefix.len() + middle.len() * LANES + suffix.len().

    @@ -2422,9 +2573,9 @@
    Panics
    supported. It’s possible that, in the future, those restrictions might be lifted in a way that would make it possible to see panics from this method for something like LANES == 3.

    -
    Examples
    +
    Examples
    #![feature(portable_simd)]
    -use core::simd::SimdFloat;
    +use core::simd::prelude::*;
     
     let short = &[1, 2, 3];
     let (prefix, middle, suffix) = short.as_simd::<4>();
    @@ -2436,7 +2587,6 @@ 
    Examples
    fn basic_simd_sum(x: &[f32]) -> f32 { use std::ops::Add; - use std::simd::f32x4; let (prefix, middle, suffix) = x.as_simd(); let sums = f32x4::from_array([ prefix.iter().copied().sum(), @@ -2450,12 +2600,12 @@
    Examples
    let numbers: Vec<f32> = (1..101).map(|x| x as _).collect(); assert_eq!(basic_simd_sum(&numbers[1..99]), 4949.0);
    -
    source

    pub fn as_simd_mut<const LANES: usize>( +

    source

    pub fn as_simd_mut<const LANES: usize>( &mut self -) -> (&mut [T], &mut [Simd<T, LANES>], &mut [T])where +) -> (&mut [T], &mut [Simd<T, LANES>], &mut [T])
    where Simd<T, LANES>: AsMut<[T; LANES]>, T: SimdElement, - LaneCount<LANES>: SupportedLaneCount,

    🔬This is a nightly-only experimental API. (portable_simd)

    Split a mutable slice into a mutable prefix, a middle of aligned SIMD types, + LaneCount<LANES>: SupportedLaneCount,

    🔬This is a nightly-only experimental API. (portable_simd)

    Split a mutable slice into a mutable prefix, a middle of aligned SIMD types, and a mutable suffix.

    This is a safe wrapper around slice::align_to_mut, so has the same weak postconditions as that method. You’re only assured that @@ -2477,14 +2627,14 @@

    Panics
    supported. It’s possible that, in the future, those restrictions might be lifted in a way that would make it possible to see panics from this method for something like LANES == 3.

    -
    source

    pub fn is_sorted(&self) -> boolwhere - T: PartialOrd<T>,

    🔬This is a nightly-only experimental API. (is_sorted)

    Checks if the elements of this slice are sorted.

    +
    source

    pub fn is_sorted(&self) -> bool
    where + T: PartialOrd,

    🔬This is a nightly-only experimental API. (is_sorted)

    Checks if the elements of this slice are sorted.

    That is, for each element a and its following element b, a <= b must hold. If the slice yields exactly zero or one element, true is returned.

    Note that if Self::Item is only PartialOrd, but not Ord, the above definition implies that this function returns false if any two consecutive items are not comparable.

    -
    Examples
    +
    Examples
    #![feature(is_sorted)]
     let empty: [i32; 0] = [];
     
    @@ -2493,24 +2643,24 @@ 
    Examples
    assert!([0].is_sorted()); assert!(empty.is_sorted()); assert!(![0.0, 1.0, f32::NAN].is_sorted());
    -
    source

    pub fn is_sorted_by<'a, F>(&'a self, compare: F) -> boolwhere - F: FnMut(&'a T, &'a T) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (is_sorted)

    Checks if the elements of this slice are sorted using the given comparator function.

    +
    source

    pub fn is_sorted_by<'a, F>(&'a self, compare: F) -> bool
    where + F: FnMut(&'a T, &'a T) -> Option<Ordering>,

    🔬This is a nightly-only experimental API. (is_sorted)

    Checks if the elements of this slice are sorted using the given comparator function.

    Instead of using PartialOrd::partial_cmp, this function uses the given compare function to determine the ordering of two elements. Apart from that, it’s equivalent to is_sorted; see its documentation for more information.

    -
    source

    pub fn is_sorted_by_key<'a, F, K>(&'a self, f: F) -> boolwhere +

    source

    pub fn is_sorted_by_key<'a, F, K>(&'a self, f: F) -> bool
    where F: FnMut(&'a T) -> K, - K: PartialOrd<K>,

    🔬This is a nightly-only experimental API. (is_sorted)

    Checks if the elements of this slice are sorted using the given key extraction function.

    + K: PartialOrd,
    🔬This is a nightly-only experimental API. (is_sorted)

    Checks if the elements of this slice are sorted using the given key extraction function.

    Instead of comparing the slice’s elements directly, this function compares the keys of the elements, as determined by f. Apart from that, it’s equivalent to is_sorted; see its documentation for more information.

    -
    Examples
    +
    Examples
    #![feature(is_sorted)]
     
    -assert!(["c", "bb", "aaa"].is_sorted_by_key(|s| s.len()));
    +assert!(["c", "bb", "aaa"].is_sorted_by_key(|s| s.len()));
     assert!(![-2i32, -1, 0, 3].is_sorted_by_key(|n| n.abs()));
    -
    1.52.0 · source

    pub fn partition_point<P>(&self, pred: P) -> usizewhere - P: FnMut(&T) -> bool,

    Returns the index of the partition point according to the given predicate +

    1.52.0 · source

    pub fn partition_point<P>(&self, pred: P) -> usize
    where + P: FnMut(&T) -> bool,

    Returns the index of the partition point according to the given predicate (the index of the first element of the second partition).

    The slice is assumed to be partitioned according to the given predicate. This means that all elements for which the predicate returns true are at the start of the slice @@ -2520,7 +2670,7 @@

    Examples

    If this slice is not partitioned, the returned result is unspecified and meaningless, as this method performs a kind of binary search.

    See also binary_search, binary_search_by, and binary_search_by_key.

    -
    Examples
    +
    Examples
    let v = [1, 2, 3, 3, 5, 6, 7];
     let i = v.partition_point(|&x| x < 5);
     
    @@ -2542,127 +2692,127 @@ 
    Examples
    let idx = s.partition_point(|&x| x < num); s.insert(idx, num); assert_eq!(s, [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]);
    -
    source

    pub fn take<R, 'a>(self: &mut &'a [T], range: R) -> Option<&'a [T]>where - R: OneSidedRange<usize>,

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the subslice corresponding to the given range +

    source

    pub fn take<R, 'a>(self: &mut &'a [T], range: R) -> Option<&'a [T]>
    where + R: OneSidedRange<usize>,

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the subslice corresponding to the given range and returns a reference to it.

    Returns None and does not modify the slice if the given range is out of bounds.

    Note that this method only accepts one-sided ranges such as 2.. or ..6, but not 2..6.

    -
    Examples
    +
    Examples

    Taking the first three elements of a slice:

    #![feature(slice_take)]
     
    -let mut slice: &[_] = &['a', 'b', 'c', 'd'];
    +let mut slice: &[_] = &['a', 'b', 'c', 'd'];
     let mut first_three = slice.take(..3).unwrap();
     
    -assert_eq!(slice, &['d']);
    -assert_eq!(first_three, &['a', 'b', 'c']);
    +assert_eq!(slice, &['d']); +assert_eq!(first_three, &['a', 'b', 'c']);

    Taking the last two elements of a slice:

    #![feature(slice_take)]
     
    -let mut slice: &[_] = &['a', 'b', 'c', 'd'];
    +let mut slice: &[_] = &['a', 'b', 'c', 'd'];
     let mut tail = slice.take(2..).unwrap();
     
    -assert_eq!(slice, &['a', 'b']);
    -assert_eq!(tail, &['c', 'd']);
    +assert_eq!(slice, &['a', 'b']); +assert_eq!(tail, &['c', 'd']);

    Getting None when range is out of bounds:

    #![feature(slice_take)]
     
    -let mut slice: &[_] = &['a', 'b', 'c', 'd'];
    +let mut slice: &[_] = &['a', 'b', 'c', 'd'];
     
     assert_eq!(None, slice.take(5..));
     assert_eq!(None, slice.take(..5));
     assert_eq!(None, slice.take(..=4));
    -let expected: &[char] = &['a', 'b', 'c', 'd'];
    +let expected: &[char] = &['a', 'b', 'c', 'd'];
     assert_eq!(Some(expected), slice.take(..4));
    -
    source

    pub fn take_mut<R, 'a>(self: &mut &'a mut [T], range: R) -> Option<&'a mut [T]>where - R: OneSidedRange<usize>,

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the subslice corresponding to the given range +

    source

    pub fn take_mut<R, 'a>(self: &mut &'a mut [T], range: R) -> Option<&'a mut [T]>
    where + R: OneSidedRange<usize>,

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the subslice corresponding to the given range and returns a mutable reference to it.

    Returns None and does not modify the slice if the given range is out of bounds.

    Note that this method only accepts one-sided ranges such as 2.. or ..6, but not 2..6.

    -
    Examples
    +
    Examples

    Taking the first three elements of a slice:

    #![feature(slice_take)]
     
    -let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
    +let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
     let mut first_three = slice.take_mut(..3).unwrap();
     
    -assert_eq!(slice, &mut ['d']);
    -assert_eq!(first_three, &mut ['a', 'b', 'c']);
    +assert_eq!(slice, &mut ['d']); +assert_eq!(first_three, &mut ['a', 'b', 'c']);

    Taking the last two elements of a slice:

    #![feature(slice_take)]
     
    -let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
    +let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
     let mut tail = slice.take_mut(2..).unwrap();
     
    -assert_eq!(slice, &mut ['a', 'b']);
    -assert_eq!(tail, &mut ['c', 'd']);
    +assert_eq!(slice, &mut ['a', 'b']); +assert_eq!(tail, &mut ['c', 'd']);

    Getting None when range is out of bounds:

    #![feature(slice_take)]
     
    -let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
    +let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
     
     assert_eq!(None, slice.take_mut(5..));
     assert_eq!(None, slice.take_mut(..5));
     assert_eq!(None, slice.take_mut(..=4));
    -let expected: &mut [_] = &mut ['a', 'b', 'c', 'd'];
    +let expected: &mut [_] = &mut ['a', 'b', 'c', 'd'];
     assert_eq!(Some(expected), slice.take_mut(..4));
    -
    source

    pub fn take_first<'a>(self: &mut &'a [T]) -> Option<&'a T>

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the first element of the slice and returns a reference +

    source

    pub fn take_first<'a>(self: &mut &'a [T]) -> Option<&'a T>

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the first element of the slice and returns a reference to it.

    Returns None if the slice is empty.

    -
    Examples
    +
    Examples
    #![feature(slice_take)]
     
    -let mut slice: &[_] = &['a', 'b', 'c'];
    +let mut slice: &[_] = &['a', 'b', 'c'];
     let first = slice.take_first().unwrap();
     
    -assert_eq!(slice, &['b', 'c']);
    -assert_eq!(first, &'a');
    -
    source

    pub fn take_first_mut<'a>(self: &mut &'a mut [T]) -> Option<&'a mut T>

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the first element of the slice and returns a mutable +assert_eq!(slice, &['b', 'c']); +assert_eq!(first, &'a');

    +
    source

    pub fn take_first_mut<'a>(self: &mut &'a mut [T]) -> Option<&'a mut T>

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the first element of the slice and returns a mutable reference to it.

    Returns None if the slice is empty.

    -
    Examples
    +
    Examples
    #![feature(slice_take)]
     
    -let mut slice: &mut [_] = &mut ['a', 'b', 'c'];
    +let mut slice: &mut [_] = &mut ['a', 'b', 'c'];
     let first = slice.take_first_mut().unwrap();
    -*first = 'd';
    +*first = 'd';
     
    -assert_eq!(slice, &['b', 'c']);
    -assert_eq!(first, &'d');
    -
    source

    pub fn take_last<'a>(self: &mut &'a [T]) -> Option<&'a T>

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the last element of the slice and returns a reference +assert_eq!(slice, &['b', 'c']); +assert_eq!(first, &'d');

    +
    source

    pub fn take_last<'a>(self: &mut &'a [T]) -> Option<&'a T>

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the last element of the slice and returns a reference to it.

    Returns None if the slice is empty.

    -
    Examples
    +
    Examples
    #![feature(slice_take)]
     
    -let mut slice: &[_] = &['a', 'b', 'c'];
    +let mut slice: &[_] = &['a', 'b', 'c'];
     let last = slice.take_last().unwrap();
     
    -assert_eq!(slice, &['a', 'b']);
    -assert_eq!(last, &'c');
    -
    source

    pub fn take_last_mut<'a>(self: &mut &'a mut [T]) -> Option<&'a mut T>

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the last element of the slice and returns a mutable +assert_eq!(slice, &['a', 'b']); +assert_eq!(last, &'c');

    +
    source

    pub fn take_last_mut<'a>(self: &mut &'a mut [T]) -> Option<&'a mut T>

    🔬This is a nightly-only experimental API. (slice_take)

    Removes the last element of the slice and returns a mutable reference to it.

    Returns None if the slice is empty.

    -
    Examples
    +
    Examples
    #![feature(slice_take)]
     
    -let mut slice: &mut [_] = &mut ['a', 'b', 'c'];
    +let mut slice: &mut [_] = &mut ['a', 'b', 'c'];
     let last = slice.take_last_mut().unwrap();
    -*last = 'd';
    +*last = 'd';
     
    -assert_eq!(slice, &['a', 'b']);
    -assert_eq!(last, &'d');
    -
    source

    pub unsafe fn get_many_unchecked_mut<const N: usize>( +assert_eq!(slice, &['a', 'b']); +assert_eq!(last, &'d'); +

    source

    pub unsafe fn get_many_unchecked_mut<const N: usize>( &mut self, indices: [usize; N] ) -> [&mut T; N]

    🔬This is a nightly-only experimental API. (get_many_mut)

    Returns mutable references to many indices at once, without doing any checks.

    @@ -2670,7 +2820,7 @@
    Examples
    Safety

    Calling this method with overlapping or out-of-bounds indices is undefined behavior even if the resulting references are not used.

    -
    Examples
    +
    Examples
    #![feature(get_many_mut)]
     
     let x = &mut [1, 2, 4];
    @@ -2681,13 +2831,13 @@ 
    Examples
    *b *= 100; } assert_eq!(x, &[10, 2, 400]);
    -
    source

    pub fn get_many_mut<const N: usize>( +

    source

    pub fn get_many_mut<const N: usize>( &mut self, indices: [usize; N] ) -> Result<[&mut T; N], GetManyMutError<N>>

    🔬This is a nightly-only experimental API. (get_many_mut)

    Returns mutable references to many indices at once.

    Returns an error if any index is out-of-bounds, or if the same index was passed more than once.

    -
    Examples
    +
    Examples
    #![feature(get_many_mut)]
     
     let v = &mut [1, 2, 3];
    @@ -2696,18 +2846,44 @@ 
    Examples
    *b = 612; } assert_eq!(v, &[413, 2, 612]);
    -
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> Vec<u8, Global>

    Returns a vector containing a copy of this slice where each byte +

    source

    pub fn sort_floats(&mut self)

    🔬This is a nightly-only experimental API. (sort_floats)

    Sorts the slice of floats.

    +

    This sort is in-place (i.e. does not allocate), O(n * log(n)) worst-case, and uses +the ordering defined by f32::total_cmp.

    +
    Current implementation
    +

    This uses the same sorting algorithm as sort_unstable_by.

    +
    Examples
    +
    #![feature(sort_floats)]
    +let mut v = [2.6, -5e-8, f32::NAN, 8.29, f32::INFINITY, -1.0, 0.0, -f32::INFINITY, -0.0];
    +
    +v.sort_floats();
    +let sorted = [-f32::INFINITY, -1.0, -5e-8, -0.0, 0.0, 2.6, 8.29, f32::INFINITY, f32::NAN];
    +assert_eq!(&v[..8], &sorted[..8]);
    +assert!(v[8].is_nan());
    +
    source

    pub fn sort_floats(&mut self)

    🔬This is a nightly-only experimental API. (sort_floats)

    Sorts the slice of floats.

    +

    This sort is in-place (i.e. does not allocate), O(n * log(n)) worst-case, and uses +the ordering defined by f64::total_cmp.

    +
    Current implementation
    +

    This uses the same sorting algorithm as sort_unstable_by.

    +
    Examples
    +
    #![feature(sort_floats)]
    +let mut v = [2.6, -5e-8, f64::NAN, 8.29, f64::INFINITY, -1.0, 0.0, -f64::INFINITY, -0.0];
    +
    +v.sort_floats();
    +let sorted = [-f64::INFINITY, -1.0, -5e-8, -0.0, 0.0, 2.6, 8.29, f64::INFINITY, f64::NAN];
    +assert_eq!(&v[..8], &sorted[..8]);
    +assert!(v[8].is_nan());
    +
    1.23.0 · source

    pub fn to_ascii_uppercase(&self) -> Vec<u8>

    Returns a vector containing a copy of this slice where each byte is mapped to its ASCII upper case equivalent.

    ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

    To uppercase the value in-place, use make_ascii_uppercase.

    -
    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> Vec<u8, Global>

    Returns a vector containing a copy of this slice where each byte +

    1.23.0 · source

    pub fn to_ascii_lowercase(&self) -> Vec<u8>

    Returns a vector containing a copy of this slice where each byte is mapped to its ASCII lower case equivalent.

    ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

    To lowercase the value in-place, use make_ascii_lowercase.

    -
    1.0.0 · source

    pub fn sort(&mut self)where - T: Ord,

    Sorts the slice.

    +
    1.0.0 · source

    pub fn sort(&mut self)
    where + T: Ord,

    Sorts the slice.

    This sort is stable (i.e., does not reorder equal elements) and O(n * log(n)) worst-case.

    When applicable, unstable sorting is preferred because it is generally faster than stable sorting and it doesn’t allocate auxiliary memory. @@ -2719,13 +2895,13 @@

    Current im two or more sorted sequences concatenated one after another.

    Also, it allocates temporary storage half the size of self, but for short slices a non-allocating insertion sort is used instead.

    -
    Examples
    +
    Examples
    let mut v = [-5, 4, 1, -3, 2];
     
     v.sort();
     assert!(v == [-5, -3, 1, 2, 4]);
    -
    1.0.0 · source

    pub fn sort_by<F>(&mut self, compare: F)where - F: FnMut(&T, &T) -> Ordering,

    Sorts the slice with a comparator function.

    +
    1.0.0 · source

    pub fn sort_by<F>(&mut self, compare: F)
    where + F: FnMut(&T, &T) -> Ordering,

    Sorts the slice with a comparator function.

    This sort is stable (i.e., does not reorder equal elements) and O(n * log(n)) worst-case.

    The comparator function must define a total ordering for the elements in the slice. If the ordering is not total, the order of the elements is unspecified. An order is a @@ -2750,7 +2926,7 @@

    Current im two or more sorted sequences concatenated one after another.

    Also, it allocates temporary storage half the size of self, but for short slices a non-allocating insertion sort is used instead.

    -
    Examples
    +
    Examples
    let mut v = [5, 4, 1, 3, 2];
     v.sort_by(|a, b| a.cmp(b));
     assert!(v == [1, 2, 3, 4, 5]);
    @@ -2758,9 +2934,9 @@ 
    Examples
    // reverse sorting v.sort_by(|a, b| b.cmp(a)); assert!(v == [5, 4, 3, 2, 1]);
    -
    1.7.0 · source

    pub fn sort_by_key<K, F>(&mut self, f: F)where +

    1.7.0 · source

    pub fn sort_by_key<K, F>(&mut self, f: F)
    where F: FnMut(&T) -> K, - K: Ord,

    Sorts the slice with a key extraction function.

    + K: Ord,

    Sorts the slice with a key extraction function.

    This sort is stable (i.e., does not reorder equal elements) and O(m * n * log(n)) worst-case, where the key function is O(m).

    For expensive key functions (e.g. functions that are not simple property accesses or @@ -2776,14 +2952,14 @@

    Current two or more sorted sequences concatenated one after another.

    Also, it allocates temporary storage half the size of self, but for short slices a non-allocating insertion sort is used instead.

    -
    Examples
    +
    Examples
    let mut v = [-5i32, 4, 1, -3, 2];
     
     v.sort_by_key(|k| k.abs());
     assert!(v == [1, 2, -3, 4, -5]);
    -
    1.34.0 · source

    pub fn sort_by_cached_key<K, F>(&mut self, f: F)where +

    1.34.0 · source

    pub fn sort_by_cached_key<K, F>(&mut self, f: F)
    where F: FnMut(&T) -> K, - K: Ord,

    Sorts the slice with a key extraction function.

    + K: Ord,

    Sorts the slice with a key extraction function.

    During sorting, the key function is called at most once per element, by using temporary storage to remember the results of key evaluation. The order of calls to the key function is unspecified and may change in future versions @@ -2801,21 +2977,21 @@

    Current deterministic behavior.

    In the worst case, the algorithm allocates temporary storage in a Vec<(K, usize)> the length of the slice.

    -
    Examples
    +
    Examples
    let mut v = [-5i32, 4, 32, -3, 2];
     
     v.sort_by_cached_key(|k| k.to_string());
     assert!(v == [-3, -5, 2, 32, 4]);
    -
    1.0.0 · source

    pub fn to_vec(&self) -> Vec<T, Global>where - T: Clone,

    Copies self into a new Vec.

    -
    Examples
    +
    1.0.0 · source

    pub fn to_vec(&self) -> Vec<T>
    where + T: Clone,

    Copies self into a new Vec.

    +
    Examples
    let s = [10, 40, 30];
     let x = s.to_vec();
     // Here, `s` and `x` can be modified independently.
    -
    source

    pub fn to_vec_in<A>(&self, alloc: A) -> Vec<T, A>where +

    source

    pub fn to_vec_in<A>(&self, alloc: A) -> Vec<T, A>
    where A: Allocator, - T: Clone,

    🔬This is a nightly-only experimental API. (allocator_api)

    Copies self into a new Vec with an allocator.

    -
    Examples
    + T: Clone,
    🔬This is a nightly-only experimental API. (allocator_api)

    Copies self into a new Vec with an allocator.

    +
    Examples
    #![feature(allocator_api)]
     
     use std::alloc::System;
    @@ -2823,64 +2999,64 @@ 
    Examples
    let s = [10, 40, 30]; let x = s.to_vec_in(System); // Here, `s` and `x` can be modified independently.
    -
    1.40.0 · source

    pub fn repeat(&self, n: usize) -> Vec<T, Global>where - T: Copy,

    Creates a vector by copying a slice n times.

    +
    1.40.0 · source

    pub fn repeat(&self, n: usize) -> Vec<T>
    where + T: Copy,

    Creates a vector by copying a slice n times.

    Panics

    This function will panic if the capacity would overflow.

    -
    Examples
    +
    Examples

    Basic usage:

    assert_eq!([1, 2].repeat(3), vec![1, 2, 1, 2, 1, 2]);

    A panic upon overflow:

    // this will panic at runtime
    -b"0123456789abcdef".repeat(usize::MAX);
    -
    1.0.0 · source

    pub fn concat<Item>(&self) -> <[T] as Concat<Item>>::Output where +b"0123456789abcdef".repeat(usize::MAX); +

    1.0.0 · source

    pub fn concat<Item>(&self) -> <[T] as Concat<Item>>::Output
    where [T]: Concat<Item>, - Item: ?Sized,

    Flattens a slice of T into a single value Self::Output.

    -
    Examples
    -
    assert_eq!(["hello", "world"].concat(), "helloworld");
    +    Item: ?Sized,

    Flattens a slice of T into a single value Self::Output.

    +
    Examples
    +
    assert_eq!(["hello", "world"].concat(), "helloworld");
     assert_eq!([[1, 2], [3, 4]].concat(), [1, 2, 3, 4]);
    -
    1.3.0 · source

    pub fn join<Separator>( +

    1.3.0 · source

    pub fn join<Separator>( &self, sep: Separator -) -> <[T] as Join<Separator>>::Output where - [T]: Join<Separator>,

    Flattens a slice of T into a single value Self::Output, placing a +) -> <[T] as Join<Separator>>::Output

    where + [T]: Join<Separator>,

    Flattens a slice of T into a single value Self::Output, placing a given separator between each.

    -
    Examples
    -
    assert_eq!(["hello", "world"].join(" "), "hello world");
    +
    Examples
    +
    assert_eq!(["hello", "world"].join(" "), "hello world");
     assert_eq!([[1, 2], [3, 4]].join(&0), [1, 2, 0, 3, 4]);
     assert_eq!([[1, 2], [3, 4]].join(&[0, 0][..]), [1, 2, 0, 0, 3, 4]);
    -
    1.0.0 · source

    pub fn connect<Separator>( +

    1.0.0 · source

    pub fn connect<Separator>( &self, sep: Separator -) -> <[T] as Join<Separator>>::Output where - [T]: Join<Separator>,

    👎Deprecated since 1.3.0: renamed to join

    Flattens a slice of T into a single value Self::Output, placing a +) -> <[T] as Join<Separator>>::Output

    where + [T]: Join<Separator>,
    👎Deprecated since 1.3.0: renamed to join

    Flattens a slice of T into a single value Self::Output, placing a given separator between each.

    -
    Examples
    -
    assert_eq!(["hello", "world"].connect(" "), "hello world");
    +
    Examples
    +
    assert_eq!(["hello", "world"].connect(" "), "hello world");
     assert_eq!([[1, 2], [3, 4]].connect(&0), [1, 2, 0, 3, 4]);
    -

    Trait Implementations§

    source§

    impl Clone for TestArg

    source§

    fn clone(&self) -> TestArg

    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 TestArg

    source§

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

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

    impl Deref for TestArg

    §

    type Target = Vec<String, Global>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl DerefMut for TestArg

    source§

    fn deref_mut(&mut self) -> &mut Self::Target

    Mutably dereferences the value.
    source§

    impl<'de> Deserialize<'de> for TestArg

    source§

    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where - D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq<TestArg> for TestArg

    source§

    fn eq(&self, other: &TestArg) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for TestArg

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for TestArg

    source§

    impl StructuralEq for TestArg

    source§

    impl StructuralPartialEq for TestArg

    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
    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
    source§

    impl<Q, K> Equivalent<K> for Qwhere +

    Trait Implementations§

    source§

    impl Clone for TestArg

    source§

    fn clone(&self) -> TestArg

    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 TestArg

    source§

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

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

    impl Deref for TestArg

    §

    type Target = Vec<String>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl DerefMut for TestArg

    source§

    fn deref_mut(&mut self) -> &mut Self::Target

    Mutably dereferences the value.
    source§

    impl<'de> Deserialize<'de> for TestArg

    source§

    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where + D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for TestArg

    source§

    fn eq(&self, other: &TestArg) -> bool

    This method tests for self and other values to be equal, and is used +by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for TestArg

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for TestArg

    source§

    impl StructuralEq for TestArg

    source§

    impl StructuralPartialEq for TestArg

    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
    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
    source§

    impl<Q, K> Equivalent<K> for Q
    where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

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

    source§

    fn into(self) -> U

    Calls U::from(self).

    + K: Borrow<Q> + ?Sized,
    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

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

    §

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

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same<T> for T

    §

    type Output = T

    Should always be Self
    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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +
    §

    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
    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<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    \ No newline at end of file diff --git a/docs/api/cli/types/struct.ToolchainBoundedSpecifier.html b/docs/api/cli/types/struct.ToolchainBoundedSpecifier.html index ba9fca788..0e5d03a47 100644 --- a/docs/api/cli/types/struct.ToolchainBoundedSpecifier.html +++ b/docs/api/cli/types/struct.ToolchainBoundedSpecifier.html @@ -1,31 +1,32 @@ -ToolchainBoundedSpecifier in cli::types - Rust
    pub struct ToolchainBoundedSpecifier {
    +ToolchainBoundedSpecifier in cli::types - Rust
    +    
    pub struct ToolchainBoundedSpecifier {
         pub channel: String,
         pub min_version: String,
     }
    Expand description

    A toolchain with a minimum version bound

    -

    Fields§

    §channel: String

    The channel of the toolchain to use

    -
    §min_version: String

    The minimum version to match

    -

    Trait Implementations§

    source§

    impl Clone for ToolchainBoundedSpecifier

    source§

    fn clone(&self) -> ToolchainBoundedSpecifier

    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 ToolchainBoundedSpecifier

    source§

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

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

    impl<'de> Deserialize<'de> for ToolchainBoundedSpecifier

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for ToolchainBoundedSpecifier

    source§

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

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

    impl PartialEq<ToolchainBoundedSpecifier> for ToolchainBoundedSpecifier

    source§

    fn eq(&self, other: &ToolchainBoundedSpecifier) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for ToolchainBoundedSpecifier

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for ToolchainBoundedSpecifier

    source§

    impl StructuralEq for ToolchainBoundedSpecifier

    source§

    impl StructuralPartialEq for ToolchainBoundedSpecifier

    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
    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
    source§

    impl<Q, K> Equivalent<K> for Qwhere +

    Fields§

    §channel: String

    The channel of the toolchain to use

    +
    §min_version: String

    The minimum version to match

    +

    Trait Implementations§

    source§

    impl Clone for ToolchainBoundedSpecifier

    source§

    fn clone(&self) -> ToolchainBoundedSpecifier

    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 ToolchainBoundedSpecifier

    source§

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

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

    impl<'de> Deserialize<'de> for ToolchainBoundedSpecifier

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for ToolchainBoundedSpecifier

    source§

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

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

    impl PartialEq for ToolchainBoundedSpecifier

    source§

    fn eq(&self, other: &ToolchainBoundedSpecifier) -> bool

    This method tests for self and other values to be equal, and is used +by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for ToolchainBoundedSpecifier

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl Eq for ToolchainBoundedSpecifier

    source§

    impl StructuralEq for ToolchainBoundedSpecifier

    source§

    impl StructuralPartialEq for ToolchainBoundedSpecifier

    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
    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
    source§

    impl<Q, K> Equivalent<K> for Q
    where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

    source§

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Qwhere + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

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

    source§

    fn into(self) -> U

    Calls U::from(self).

    + K: Borrow<Q> + ?Sized,
    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

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

    §

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

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same<T> for T

    §

    type Output = T

    Should always be Self
    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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +
    §

    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
    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<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    \ No newline at end of file diff --git a/docs/api/cli/types/struct.WatchOptions.html b/docs/api/cli/types/struct.WatchOptions.html index 2452653fd..508f992f7 100644 --- a/docs/api/cli/types/struct.WatchOptions.html +++ b/docs/api/cli/types/struct.WatchOptions.html @@ -1,4 +1,5 @@ -WatchOptions in cli::types - Rust

    Struct cli::types::WatchOptions

    source ·
    pub struct WatchOptions {
    +WatchOptions in cli::types - Rust
    +    

    Struct cli::types::WatchOptions

    source ·
    pub struct WatchOptions {
         pub version: Option<String>,
         pub postpone: Option<bool>,
         pub ignore_pattern: Option<String>,
    @@ -6,27 +7,27 @@
         pub why: Option<bool>,
         pub watch: Option<Vec<String>>,
     }
    Expand description

    Holds watch options

    -

    Fields§

    §version: Option<String>

    Watch version to install if not already installed

    -
    §postpone: Option<bool>

    Postpone first run until a file changes

    -
    §ignore_pattern: Option<String>

    Ignore a glob/gitignore-style pattern

    -
    §no_git_ignore: Option<bool>

    Do not use .gitignore files

    -
    §why: Option<bool>

    Show paths that changed

    -
    §watch: Option<Vec<String>>

    Select which files/folders to watch

    -

    Trait Implementations§

    source§

    impl Clone for WatchOptions

    source§

    fn clone(&self) -> WatchOptions

    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 WatchOptions

    source§

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

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

    impl<'de> Deserialize<'de> for WatchOptions

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq<WatchOptions> for WatchOptions

    source§

    fn eq(&self, other: &WatchOptions) -> bool

    This method tests for self and other values to be equal, and is used -by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for WatchOptions

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

    Serialize this value into the given Serde serializer. 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
    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
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

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

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §version: Option<String>

    Watch version to install if not already installed

    +
    §postpone: Option<bool>

    Postpone first run until a file changes

    +
    §ignore_pattern: Option<String>

    Ignore a glob/gitignore-style pattern

    +
    §no_git_ignore: Option<bool>

    Do not use .gitignore files

    +
    §why: Option<bool>

    Show paths that changed

    +
    §watch: Option<Vec<String>>

    Select which files/folders to watch

    +

    Trait Implementations§

    source§

    impl Clone for WatchOptions

    source§

    fn clone(&self) -> WatchOptions

    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 WatchOptions

    source§

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

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

    impl<'de> Deserialize<'de> for WatchOptions

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl PartialEq for WatchOptions

    source§

    fn eq(&self, other: &WatchOptions) -> bool

    This method tests for self and other values to be equal, and is used +by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
    source§

    impl Serialize for WatchOptions

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. 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
    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
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

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

    §

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

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same<T> for T

    §

    type Output = T

    Should always be Self
    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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +
    §

    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
    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<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    \ No newline at end of file diff --git a/docs/api/cli/types/struct.Workspace.html b/docs/api/cli/types/struct.Workspace.html index a9745c183..b64b90bb0 100644 --- a/docs/api/cli/types/struct.Workspace.html +++ b/docs/api/cli/types/struct.Workspace.html @@ -1,25 +1,26 @@ -Workspace in cli::types - Rust

    Struct cli::types::Workspace

    source ·
    pub struct Workspace {
    +Workspace in cli::types - Rust
    +    

    Struct cli::types::Workspace

    source ·
    pub struct Workspace {
         pub members: Option<Vec<String>>,
         pub exclude: Option<Vec<String>>,
         pub dependencies: Option<IndexMap<String, CrateDependency>>,
     }
    Expand description

    Fields§

    §members: Option<Vec<String>>

    members paths

    -
    §exclude: Option<Vec<String>>

    exclude paths

    -
    §dependencies: Option<IndexMap<String, CrateDependency>>

    workspace level dependencies

    -

    Implementations§

    source§

    impl Workspace

    source

    pub fn new() -> Workspace

    Creates and returns a new instance.

    -

    Trait Implementations§

    source§

    impl Clone for Workspace

    source§

    fn clone(&self) -> Workspace

    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 Workspace

    source§

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

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

    impl Default for Workspace

    source§

    fn default() -> Workspace

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for Workspace

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Workspace

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

    Serialize this value into the given Serde serializer. 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
    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
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

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

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Fields§

    §members: Option<Vec<String>>

    members paths

    +
    §exclude: Option<Vec<String>>

    exclude paths

    +
    §dependencies: Option<IndexMap<String, CrateDependency>>

    workspace level dependencies

    +

    Implementations§

    source§

    impl Workspace

    source

    pub fn new() -> Workspace

    Creates and returns a new instance.

    +

    Trait Implementations§

    source§

    impl Clone for Workspace

    source§

    fn clone(&self) -> Workspace

    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 Workspace

    source§

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

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

    impl Default for Workspace

    source§

    fn default() -> Workspace

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for Workspace

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Serialize for Workspace

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. 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
    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
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

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

    §

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

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

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

    Initializes a with the given initializer. Read more
    §

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

    Dereferences the given pointer. Read more
    §

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

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

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

    impl<T> Same<T> for T

    §

    type Output = T

    Should always be Self
    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<V, T> VZip<V> for Twhere - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +
    §

    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
    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<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    \ No newline at end of file diff --git a/docs/api/help.html b/docs/api/help.html index 35e808a45..c36c9b807 100644 --- a/docs/api/help.html +++ b/docs/api/help.html @@ -1 +1,2 @@ -Rustdoc help

    Rustdoc help

    Back
    \ No newline at end of file +Help +

    Rustdoc help

    Back
    \ No newline at end of file diff --git a/docs/api/implementors/core/clone/trait.Clone.js b/docs/api/implementors/core/clone/trait.Clone.js deleted file mode 100644 index 490b6958c..000000000 --- a/docs/api/implementors/core/clone/trait.Clone.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl Clone for ToolchainBoundedSpecifier"],["impl Clone for InstallCrateInfo"],["impl Clone for TaskWatchOptions"],["impl Clone for ScriptValue"],["impl Clone for DeprecationInfo"],["impl Clone for EnvFile"],["impl Clone for EnvValueScript"],["impl Clone for ScriptSections"],["impl Clone for RunTaskName"],["impl Clone for RustVersionCondition"],["impl Clone for RunTaskDetails"],["impl Clone for EnvValueConditioned"],["impl Clone for Extend"],["impl Clone for EnvFileInfo"],["impl Clone for TestArg"],["impl Clone for TaskCondition"],["impl Clone for EnvValue"],["impl Clone for Cache"],["impl Clone for EnvInfo"],["impl Clone for InstallCrate"],["impl Clone for DependencyIdentifier"],["impl Clone for Workspace"],["impl Clone for EnvValuePathGlob"],["impl Clone for UnstableFeature"],["impl Clone for CliArgs"],["impl Clone for PackageInfo"],["impl Clone for ModifyConfig"],["impl Clone for Step"],["impl Clone for CrateInfo"],["impl Clone for FlowInfo"],["impl Clone for FilesFilesModifiedCondition"],["impl Clone for ExtendOptions"],["impl Clone for ConfigSection"],["impl Clone for EnvValueDecode"],["impl Clone for FlowState"],["impl Clone for WatchOptions"],["impl Clone for CrateDependency"],["impl Clone for ToolchainSpecifier"],["impl Clone for Task"],["impl Clone for TaskIdentifier"],["impl Clone for InstallRustupComponentInfo"],["impl Clone for CrateDependencyInfo"],["impl Clone for ExternalConfig"],["impl Clone for Config"],["impl Clone for InstallCargoPluginInfo"],["impl Clone for EnvValueUnset"],["impl Clone for RunTaskRoutingInfo"],["impl Clone for RunTaskInfo"],["impl Clone for GlobalConfig"],["impl Clone for PlatformOverrideTask"],["impl Clone for FileScriptValue"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/cmp/trait.Eq.js b/docs/api/implementors/core/cmp/trait.Eq.js deleted file mode 100644 index ea56fc0ed..000000000 --- a/docs/api/implementors/core/cmp/trait.Eq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl Eq for ToolchainBoundedSpecifier"],["impl Eq for UnstableFeature"],["impl Eq for ToolchainSpecifier"],["impl Eq for TestArg"],["impl Eq for DependencyIdentifier"],["impl Eq for TaskIdentifier"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/cmp/trait.PartialEq.js b/docs/api/implementors/core/cmp/trait.PartialEq.js deleted file mode 100644 index 91957a560..000000000 --- a/docs/api/implementors/core/cmp/trait.PartialEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl PartialEq<ToolchainSpecifier> for ToolchainSpecifier"],["impl PartialEq<DeprecationInfo> for DeprecationInfo"],["impl PartialEq<DependencyIdentifier> for DependencyIdentifier"],["impl PartialEq<InstallRustupComponentInfo> for InstallRustupComponentInfo"],["impl PartialEq<UnstableFeature> for UnstableFeature"],["impl PartialEq<RunTaskName> for RunTaskName"],["impl PartialEq<InstallCargoPluginInfo> for InstallCargoPluginInfo"],["impl PartialEq<WatchOptions> for WatchOptions"],["impl PartialEq<TestArg> for TestArg"],["impl PartialEq<InstallCrateInfo> for InstallCrateInfo"],["impl PartialEq<TaskIdentifier> for TaskIdentifier"],["impl PartialEq<InstallCrate> for InstallCrate"],["impl PartialEq<TaskWatchOptions> for TaskWatchOptions"],["impl PartialEq<ToolchainBoundedSpecifier> for ToolchainBoundedSpecifier"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/default/trait.Default.js b/docs/api/implementors/core/default/trait.Default.js deleted file mode 100644 index 02293be10..000000000 --- a/docs/api/implementors/core/default/trait.Default.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl Default for PackageInfo"],["impl Default for Task"],["impl Default for Workspace"],["impl Default for Cache"],["impl Default for GlobalConfig"],["impl Default for ConfigSection"],["impl Default for FlowState"],["impl Default for ExternalConfig"],["impl Default for CrateInfo"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/fmt/trait.Debug.js b/docs/api/implementors/core/fmt/trait.Debug.js deleted file mode 100644 index a85dc51a7..000000000 --- a/docs/api/implementors/core/fmt/trait.Debug.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl Debug for Extend"],["impl Debug for Cache"],["impl Debug for ExtendOptions"],["impl Debug for RustVersionCondition"],["impl Debug for PlatformOverrideTask"],["impl Debug for Task"],["impl Debug for InstallCrateInfo"],["impl Debug for EnvValueConditioned"],["impl Debug for EnvFileInfo"],["impl Debug for RunTaskInfo"],["impl Debug for ExternalConfig"],["impl Debug for EnvValueDecode"],["impl Debug for InstallCrate"],["impl Debug for EnvInfo"],["impl Debug for CrateInfo"],["impl Debug for Step"],["impl Debug for ConfigSection"],["impl Debug for RunTaskDetails"],["impl Debug for PackageInfo"],["impl Debug for EnvFile"],["impl Debug for FlowInfo"],["impl Debug for CliArgs"],["impl Debug for ToolchainSpecifier"],["impl Debug for EnvValueScript"],["impl Debug for ScriptValue"],["impl Debug for InstallRustupComponentInfo"],["impl Debug for ToolchainBoundedSpecifier"],["impl Debug for Workspace"],["impl Debug for DependencyIdentifier"],["impl Debug for FileScriptValue"],["impl Debug for ExecutionPlan"],["impl Debug for UnstableFeature"],["impl Debug for CrateDependencyInfo"],["impl Debug for DeprecationInfo"],["impl Debug for InstallCargoPluginInfo"],["impl Debug for TaskCondition"],["impl Debug for EnvValue"],["impl Debug for TestArg"],["impl Debug for GlobalConfig"],["impl Debug for EnvValueUnset"],["impl Debug for FlowState"],["impl Debug for CrateDependency"],["impl Debug for ModifyConfig"],["impl Debug for FilesFilesModifiedCondition"],["impl Debug for EnvValuePathGlob"],["impl Debug for TaskWatchOptions"],["impl Debug for RunTaskName"],["impl Debug for RunTaskRoutingInfo"],["impl Debug for WatchOptions"],["impl Debug for ScriptSections"],["impl Debug for CommandSpec"],["impl Debug for TaskIdentifier"],["impl Debug for Config"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/fmt/trait.Display.js b/docs/api/implementors/core/fmt/trait.Display.js deleted file mode 100644 index 843a0ca86..000000000 --- a/docs/api/implementors/core/fmt/trait.Display.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl Display for TaskIdentifier"],["impl Display for ToolchainSpecifier"],["impl Display for ToolchainBoundedSpecifier"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/marker/trait.StructuralEq.js b/docs/api/implementors/core/marker/trait.StructuralEq.js deleted file mode 100644 index 6c2344324..000000000 --- a/docs/api/implementors/core/marker/trait.StructuralEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl StructuralEq for UnstableFeature"],["impl StructuralEq for ToolchainBoundedSpecifier"],["impl StructuralEq for ToolchainSpecifier"],["impl StructuralEq for TestArg"],["impl StructuralEq for TaskIdentifier"],["impl StructuralEq for DependencyIdentifier"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/marker/trait.StructuralPartialEq.js b/docs/api/implementors/core/marker/trait.StructuralPartialEq.js deleted file mode 100644 index 405daadda..000000000 --- a/docs/api/implementors/core/marker/trait.StructuralPartialEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl StructuralPartialEq for UnstableFeature"],["impl StructuralPartialEq for RunTaskName"],["impl StructuralPartialEq for TestArg"],["impl StructuralPartialEq for DependencyIdentifier"],["impl StructuralPartialEq for ToolchainSpecifier"],["impl StructuralPartialEq for ToolchainBoundedSpecifier"],["impl StructuralPartialEq for TaskIdentifier"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/serde/de/trait.Deserialize.js b/docs/api/implementors/serde/de/trait.Deserialize.js deleted file mode 100644 index 7aa61e41e..000000000 --- a/docs/api/implementors/serde/de/trait.Deserialize.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl<'de> Deserialize<'de> for Task"],["impl<'de> Deserialize<'de> for FilesFilesModifiedCondition"],["impl<'de> Deserialize<'de> for CrateDependency"],["impl<'de> Deserialize<'de> for RustVersionCondition"],["impl<'de> Deserialize<'de> for RunTaskRoutingInfo"],["impl<'de> Deserialize<'de> for Extend"],["impl<'de> Deserialize<'de> for DependencyIdentifier"],["impl<'de> Deserialize<'de> for ExtendOptions"],["impl<'de> Deserialize<'de> for ToolchainBoundedSpecifier"],["impl<'de> Deserialize<'de> for UnstableFeature"],["impl<'de> Deserialize<'de> for InstallRustupComponentInfo"],["impl<'de> Deserialize<'de> for TaskCondition"],["impl<'de> Deserialize<'de> for EnvValueDecode"],["impl<'de> Deserialize<'de> for Config"],["impl<'de> Deserialize<'de> for ConfigSection"],["impl<'de> Deserialize<'de> for GlobalConfig"],["impl<'de> Deserialize<'de> for ModifyConfig"],["impl<'de> Deserialize<'de> for CrateDependencyInfo"],["impl<'de> Deserialize<'de> for EnvValue"],["impl<'de> Deserialize<'de> for ExternalConfig"],["impl<'de> Deserialize<'de> for EnvValuePathGlob"],["impl<'de> Deserialize<'de> for ToolchainSpecifier"],["impl<'de> Deserialize<'de> for RunTaskDetails"],["impl<'de> Deserialize<'de> for FileScriptValue"],["impl<'de> Deserialize<'de> for Workspace"],["impl<'de> Deserialize<'de> for EnvFileInfo"],["impl<'de> Deserialize<'de> for EnvValueConditioned"],["impl<'de> Deserialize<'de> for PlatformOverrideTask"],["impl<'de> Deserialize<'de> for EnvValueScript"],["impl<'de> Deserialize<'de> for ScriptSections"],["impl<'de> Deserialize<'de> for TestArg"],["impl<'de> Deserialize<'de> for WatchOptions"],["impl<'de> Deserialize<'de> for RunTaskInfo"],["impl<'de> Deserialize<'de> for TaskIdentifier"],["impl<'de> Deserialize<'de> for TaskWatchOptions"],["impl<'de> Deserialize<'de> for Cache"],["impl<'de> Deserialize<'de> for DeprecationInfo"],["impl<'de> Deserialize<'de> for InstallCrate"],["impl<'de> Deserialize<'de> for InstallCrateInfo"],["impl<'de> Deserialize<'de> for EnvValueUnset"],["impl<'de> Deserialize<'de> for ScriptValue"],["impl<'de> Deserialize<'de> for EnvFile"],["impl<'de> Deserialize<'de> for RunTaskName"],["impl<'de> Deserialize<'de> for InstallCargoPluginInfo"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/serde/ser/trait.Serialize.js b/docs/api/implementors/serde/ser/trait.Serialize.js deleted file mode 100644 index 1d0eee41a..000000000 --- a/docs/api/implementors/serde/ser/trait.Serialize.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"cli":[["impl Serialize for InstallCrate"],["impl Serialize for RunTaskInfo"],["impl Serialize for RunTaskDetails"],["impl Serialize for ToolchainBoundedSpecifier"],["impl Serialize for Step"],["impl Serialize for WatchOptions"],["impl Serialize for Cache"],["impl Serialize for Workspace"],["impl Serialize for ScriptValue"],["impl Serialize for ExtendOptions"],["impl Serialize for TaskCondition"],["impl Serialize for Task"],["impl Serialize for RunTaskName"],["impl Serialize for EnvValueDecode"],["impl Serialize for PlatformOverrideTask"],["impl Serialize for DependencyIdentifier"],["impl Serialize for InstallCargoPluginInfo"],["impl Serialize for EnvValueUnset"],["impl Serialize for DeprecationInfo"],["impl Serialize for CrateDependencyInfo"],["impl Serialize for CrateDependency"],["impl Serialize for ToolchainSpecifier"],["impl Serialize for EnvValuePathGlob"],["impl Serialize for RunTaskRoutingInfo"],["impl Serialize for GlobalConfig"],["impl Serialize for EnvValueScript"],["impl Serialize for EnvValueConditioned"],["impl Serialize for TaskIdentifier"],["impl Serialize for TaskWatchOptions"],["impl Serialize for EnvValue"],["impl Serialize for FilesFilesModifiedCondition"],["impl Serialize for Config"],["impl Serialize for ModifyConfig"],["impl Serialize for ExternalConfig"],["impl Serialize for InstallCrateInfo"],["impl Serialize for UnstableFeature"],["impl Serialize for ScriptSections"],["impl Serialize for TestArg"],["impl Serialize for Extend"],["impl Serialize for FileScriptValue"],["impl Serialize for InstallRustupComponentInfo"],["impl Serialize for RustVersionCondition"],["impl Serialize for ConfigSection"],["impl Serialize for EnvFile"],["impl Serialize for EnvFileInfo"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/makers/all.html b/docs/api/makers/all.html index d7f386711..000d4e15f 100644 --- a/docs/api/makers/all.html +++ b/docs/api/makers/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/docs/api/makers/fn.get_name.html b/docs/api/makers/fn.get_name.html index bf46c74cf..2508f2801 100644 --- a/docs/api/makers/fn.get_name.html +++ b/docs/api/makers/fn.get_name.html @@ -1 +1,2 @@ -get_name in makers - Rust

    Function makers::get_name

    source ·
    pub(crate) fn get_name() -> String
    \ No newline at end of file +get_name in makers - Rust +

    Function makers::get_name

    source ·
    pub(crate) fn get_name() -> String
    \ No newline at end of file diff --git a/docs/api/makers/fn.main.html b/docs/api/makers/fn.main.html index aac8af707..b597f481b 100644 --- a/docs/api/makers/fn.main.html +++ b/docs/api/makers/fn.main.html @@ -1 +1,2 @@ -main in makers - Rust

    Function makers::main

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

    Function makers::main

    source ·
    pub(crate) fn main()
    \ No newline at end of file diff --git a/docs/api/makers/index.html b/docs/api/makers/index.html index 73f97e201..e66e7ddca 100644 --- a/docs/api/makers/index.html +++ b/docs/api/makers/index.html @@ -1,4 +1,6 @@ -makers - Rust

    Crate makers

    source ·
    Expand description

    makers

    +makers - Rust +

    Crate makers

    source ·
    Expand description

    makers

    Rust task runner and build tool.
    The makers executable works the same as cargo-make except that it is not invoked as a cargo sub command.

    @@ -7,4 +9,4 @@

    Contributing

    License

    Developed by Sagie Gur-Ari and licensed under the Apache 2 open source license.

    -

    Functions

    \ No newline at end of file +

    Functions

    \ No newline at end of file diff --git a/docs/api/search-index.js b/docs/api/search-index.js index 88c60dd4d..53007ad9a 100644 --- a/docs/api/search-index.js +++ b/docs/api/search-index.js @@ -1,7 +1,7 @@ -var searchIndex = JSON.parse('{\ -"cargo_make":{"doc":"cargo-make","t":"FF","n":["get_name","main"],"q":[[0,"cargo_make"]],"d":["",""],"i":[0,0],"f":[[[],1],[[]]],"c":[],"p":[[3,"String"]]},\ -"cli":{"doc":"cargo-make","t":"FANNNNDNDDNDDEDDNNNNEENNEDDEDDDDDDEDDNDDDDDNNDEDDNNNDNNNNNNDNNNDNNDEEDDNNDENNNNDDDDEDNDENENNNDDMMMMMLLLMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMLLLLLLLLLMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLMMLLLMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFMMLMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMLMMMMMMLMMMMMMLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMLMM","n":["run_cli","types","Boolean","Boolean","Boolean","Bounded","Cache","CargoPluginInfo","CliArgs","CommandSpec","Conditional","Config","ConfigSection","CrateDependency","CrateDependencyInfo","CrateInfo","CrateInfo","CtrlCHandling","Decode","Definition","DependencyIdentifier","DeprecationInfo","Details","Enabled","EnvFile","EnvFileInfo","EnvInfo","EnvValue","EnvValueConditioned","EnvValueDecode","EnvValuePathGlob","EnvValueScript","EnvValueUnset","ExecutionPlan","Extend","ExtendOptions","ExternalConfig","File","FileScriptValue","FilesFilesModifiedCondition","FlowInfo","FlowState","GlobalConfig","Info","Info","InstallCargoPluginInfo","InstallCrate","InstallCrateInfo","InstallRustupComponentInfo","List","List","Message","ModifyConfig","Multiple","Name","Name","Number","Options","Options","PackageInfo","Path","Path","PathGlob","PlatformOverrideTask","Profile","Routing","RunTaskDetails","RunTaskInfo","RunTaskName","RunTaskRoutingInfo","RustVersionCondition","RustupComponentInfo","Script","ScriptSections","ScriptValue","Sections","Simple","Single","SingleLine","Step","Task","TaskCondition","TaskIdentifier","TaskWatchOptions","TestArg","Text","ToolchainBoundedSpecifier","ToolchainSpecifier","Unset","UnstableFeature","Value","Value","Version","WatchOptions","Workspace","absolute_path","additional_profiles","alias","allow_private","allow_private","apply","apply","apply","args","args","args","arguments","base_path","binary","binary","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_file","category","channel","channel","channels","ci_info","cleanup_task","cleanup_task","clear","clear","cli_arguments","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","command","command","command","command","condition","condition","condition","condition","condition","condition_script","condition_script","condition_script","config","config","config","config","crate_info","crate_name","crate_name","cwd","cwd","cwd","default","default","default","default","default","default","default","default","default","default_task_name","default_to_workspace","default_value","defaults_only","dependencies","dependencies","dependencies","dependencies","depends_on","deprecated","deprecated","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","diff_execution_plan","disable_check_for_updates","disable_color","disable_color","disable_on_error","disable_on_error","disable_workspace","disable_workspace","disabled","disabled","documentation","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","end_task","env","env","env","env","env","env","env_contains","env_false","env_file","env_files","env_files","env_files","env_files","env_info","env_not_set","env_scripts","env_scripts","env_set","env_true","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equal","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","exclude","experimental","extend","extend","extend","extend","extend","extend","fail_message","file","file_name","file_name","files_exist","files_modified","files_not_exist","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","force","force","force","force","forced_plugin","fork","fork","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_name","get_actions_count","get_alias","get_load_script","get_namespace_prefix","get_normalized_task","get_platform_name","git_info","glob","hash","hide_uninteresting","homepage","ignore_errors","ignore_errors","ignore_pattern","ignore_type","include_dirs","include_files","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init_task","inner","input","install_command","install_command","install_crate","install_crate","install_crate_args","install_crate_args","install_script","install_script","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_actionable","is_env_set","is_modifications_defined","is_valid","last_update_check","legacy_migration_task","license","linux","linux_alias","linux_load_script","list_all_steps","list_category_steps","load_cargo_aliases","load_script","log_level","log_level","mac","mac_alias","mac_load_script","main","main_project_member","mapping","max","members","min","min_version","min_version","min_version","min_version","min_version","modify_core_tasks","multi_line","name","name","name","name","name","name","namespace","new","new","new","new","new","new","new","new","new","new","new","no_git_ignore","on_error_task","optional","os","output","output_file","output_format","package","parallel","parallel","path","path","path","path","platforms","plugin","plugin","plugins","plugins","post","postpone","pre","print_only","print_time_summary","private","private","private","profile","profile","profiles","reduce_output","repository","run_task","run_task","rust_info","rust_version","rustup_component_name","rustup_component_name","script","script","script","script_extension","script_extension","script_runner","script_runner","script_runner_args","script_runner_args","search_project_root","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","should_ignore_errors","skip_core_tasks","skip_crate_env_info","skip_git_env_info","skip_init_end_tasks","skip_init_end_tasks","skip_rust_env_info","skip_tasks_pattern","skip_tasks_pattern","source","steps","task","task","tasks","tasks","test_arg","test_arg","time_summary","time_summary","to_env_name","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","toolchain","toolchain","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unset","unstable_features","update_check_minimum_interval","value","version","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","watch","watch","watch","why","windows","windows_alias","windows_load_script","with_namespace","workspace","workspace"],"q":[[0,"cli"],[2,"cli::types"]],"d":["Handles the command line arguments and executes the runner.","types","The value as boolean","True/False to enable/disable watch","True/False flag (true is deprecated)","A toolchain with a minimum version bound","Holds persisted data used by cargo-make","Install cargo plugin info","Holds CLI args","Command info","Conditional env value","Holds the entire configuration such as task definitions …","Holds the configuration found in the makefile toml config …","Holds crate dependency info.","Holds crate dependency info.","Holds crate information loaded from the Cargo.toml file.","Install crate params","Gracefully shutdown and then kill the running command on …","Env decoding info","A full dependency definion (potentially in a different …","A dependency, defined either as a string or as a …","Holds deprecation info such as true/false/message","Run Task Info","Enables to prevent installation flow","Holds the env file path and attributes","Env file path and attributes","Holds env information","Holds the env value or script","Env value set if condition is met","Env value provided by decoding other values","Env value holding a list of paths based on given glob …","Env value provided by a script","Enables to unset env variables","Execution plan which defines all steps to run and the …","Holds makefile extend value","Extend with more fine tuning options","Holds the entire externally read configuration such as …","Script file name","Script file name","Files modified (input/output) condition structure","Holds flow information","Holds mutable flow state","Holds configuration info for cargo-make","Hold dependency info","Extended info object for env file","Holds instructions how to install the cargo plugin","Install crate name or params","Holds instructions how to install the crate","Holds instructions how to install a rustup component","The value as a list of strings","Multiple extends list","Deprecation message","Holds properties to modify the core tasks","Multiple task names","Task name","A string dependency definition (its name in the current …","The value as number","Extended configuration for watch","Extend options for more fine tune control","Holds crate package information loaded from the Cargo.toml …","The file path as string","Path to another makefile","Path glob","Holds a single task configuration for a specific platform …","Profile env","Task conditional selector","Holds the run task information","Run task info","Holds the run task name/s","Holds the run task routing information","Rust version condition structure","Install rustup component params","Script which will return the value","Script content split to parts to enable a more fine tuned …","Script value (text, file name, …)","Script content split to multiple parts to enable fine …","A string specifying the channel name of the toolchain","Single task name","The script text as single line","Execution plan step to execute","Holds a single task configuration such as command and …","Holds condition attributes","An identifier for a task","Holds watch options or simple true/false value","Arguments used to check whether a crate or rustup …","The script text lines","A toolchain with a minimum version bound","A toolchain, defined either as a string (following the …","Unset env","Unstable cargo-make feature","The value as string","The value as string","Holds the dependency version","Holds watch options","Holds crate workspace info, see …","True for absolute path (default false)","Additional profile names to load","if defined, task points to another task and all other …","Allow invocation of private tasks","Allow invocation of private tasks","Apply modifications","Apply modifications","Apply modifications","The command args","The command args","The command args","additional command line arguments","The path base directory (relative paths are from this base …","The binary file name to be used to test if the crate is …","The binary file name to be used to test if the crate is …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The external Makefile.toml path","Category name used to document the task","Return the channel of the toolchain to look for","The channel of the toolchain to use","Channel names (stable, beta, nightly)","CI info","Cleanup task name","Cleanup task name","if true, it should ignore all data in base task","if true, it should ignore all data in base task","additional command line arguments","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The command name","The command to execute","The command to execute","The command to execute","The condition to validate","The condition to validate","if provided all condition values must be met in order for …","if provided all condition values must be met in order for …","if provided all condition values must be met in order for …","if script exit code is not 0, the task will not be invoked","if script exit code is not 0, the command/script of this …","if script exit code is not 0, the command/script of this …","The flow config object","Runtime config","Runtime config","The task config","Crate info","The provided crate to install","The provided crate to install","Current working directory","The working directory for the task to execute its …","The working directory for the task to execute its …","","","","","","","","","","Default task name","The task.workspace default value","The default value in case no decode mapping was found, if …","If true, only set the env vars if not already defined","workspace level dependencies","crate dependencies","A list of tasks to execute before this task","A list of tasks to execute before this task","The explicit environment variables this script depends on","if not false, this task is defined as deprecated","if not false, this task is defined as deprecated","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","description","Task description","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Diff flows","Disables the update check during startup","Disables colorful output","Default output coloring","Prevent on error flow even if defined in config section","Prevent on error flow even if defined in config section","Prevent workspace support","Prevent workspace support","if true, the command/script of this task will not be …","if true, the command/script of this task will not be …","documentation link","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","End task name which will be invoked at the end of every run","Environment variables","Environment variables and their values","The env vars to setup before running the task commands","The env vars to setup before running the task commands","The env vars to setup before running the flow","The env vars to setup before running the flow","Environment variables and the values which they are …","Environment variables which are defined as false","Environment variables file","The env files to setup before running the task commands","The env files to setup before running the task commands","The env files to setup before running the flow","The env files to setup before running the flow","The env info","Environment variables which must not be defined","The env scripts to execute before running the flow","The env scripts to execute before running the flow","Environment variables which must be defined","Environment variables which are defined as true","","","","","","","","","","","","","","","specific version number","","","","","","","","","","","","","","","","","","","","","","","","","exclude paths","Allows access unsupported experimental predefined tasks","Copies values from the task into self.","Copies values from the task into self.","Copies values from the config section into self.","Extend any task based on the defined name","Extend any task based on the defined name","Path to another toml file to extend","Failure message","Script file name","File from which the cache file was loaded from","File from which the global config was loaded from","Files exist","Files modified since last execution","Files which do not exist","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Optional add force flag (if needed), default is true","Optional add force flag (if needed), default is true","DEPRECATED, replaced with ignore_errors","DEPRECATED, replaced with ignore_errors","forced plugin name","True to fork the task to a new sub process","True to fork the task to a new sub process","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a new TaskIdentifier referencing a task in the …","Returns the amount of actions defined on the task","Returns the alias value based on the current platform and …","Returns the load script based on the current platform","Returns the namespace prefix for task names","Returns a new task based on the override information and …","Returns the platform name","Git info","The glob used to fetch all paths","","Hide any minor tasks such as pre/post hooks","homepage link","if true, any error while executing the task will be …","if true, any error while executing the task will be …","Ignore a glob/gitignore-style pattern","Enables to respect ignore files","True to include directories (default is true if undefined)","True to include files (default is true if undefined)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Init task name which will be invoked at the start of every …","Content of the arguments","input files","Optional alternate ‘install’ command","Optional alternate ‘install’ command","if defined, the provided crate will be installed (if …","if defined, the provided crate will be installed (if …","additional cargo install arguments","additional cargo install arguments","if defined, the provided script will be executed before …","if defined, the provided script will be executed before …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if the task has any actions on its own or if …","Is the corresponding env. variable set?","Returns true if config modifications is needed based on …","Returns true if the task is valid","Holds last update check with returned no updates result","The name of the task which runs legacy migration flows","license","override task if runtime OS is Linux (takes precedence …","acts like alias if runtime OS is Linux (takes precedence …","acts like load_script if runtime OS is Linux (takes …","List all known steps","List steps for a given category","Automatically load cargo aliases as cargo-make tasks","Invoked while loading the descriptor file but before …","Log level name","Default log level","override task if runtime OS is Mac (takes precedence over …","acts like alias if runtime OS is Mac (takes precedence …","acts like load_script if runtime OS is Mac (takes …","Script section","The project information member (used by workspaces)","The decoding mapping","max version number","members paths","min version number","Return the minimal version, if any, to look for","Minimal version","Minimal version","The minimum version to match","Minimum cargo-make/makers version","Modify core tasks config","True/False to enable multi line env values","Get the name of a dependency","name","The task name","The task name","The task name to execute","The task name","If set to some value, all core tasks are modified to: …","Creates and returns a new instance.","Returns new instance","Returns new instance","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Do not use .gitignore files","The name of the task to run in case of any error during …","Enable optional extend (default to false)","As defined in the cfg target_os","output files","Output file name","Output format","package info","True to run all tasks in parallel (default false)","True to run all tasks in parallel (default false)","Holds the dependency path","The file path as string","The path to the makefile the task resides in","Path to another makefile","Platform names (linux, windows, mac)","Optional plugin used to execute the task","Optional plugin used to execute the task","All plugin definitions","All plugin definitions","Script section","Postpone first run until a file changes","Script section","Only print the execution plan","Print time summary at end of the flow","if true, the task is hidden from the list of available …","if true, the task is hidden from the list of available …","If true, all core tasks will be set to private (default …","The profile name","The profile name this file is relevant to","Profile names (development, …)","True to reduce console output for non CI execution","repository link","The task name to execute","The task name to execute","Rust info","Rust version condition","If defined, the component to install via rustup","The component to install via rustup","The script to execute to get the env value","If command is not defined, and script is defined, the …","If command is not defined, and script is defined, the …","The script file extension","The script file extension","The script runner (defaults to cmd in windows and sh for …","The script runner (defaults to cmd in windows and sh for …","The script runner arguments before the script file path","The script runner arguments before the script file path","True to search for project root in parent directories if …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if the task ignore_errors attribute is …","If true, the default core tasks will not be loaded","do not load current crate env info (save on perf)","do not load git env info (save on perf)","If true, the init and end tasks are skipped","If true, the init and end tasks are skipped","do not load rust env info (save on perf)","Skip tasks that match the provided pattern","Skip tasks that match the provided pattern","The source value (can be an env expression)","A list of steps to execute","The task to invoke","The main task of the flow","All task definitions","All task definitions","Test arguments that will be used to check that the crate …","Test argument that will be used to check that the crate is …","timing info for summary","True to print time summary at the end of the flow","Creates the env. variable name associated to the feature","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The rust toolchain used to invoke the command or install …","The rust toolchain used to invoke the command or install …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If true, the env variable will be unset, else ignored","Enables unstable cargo-make features","Update check minimum time from the previous check (always, …","The value to set (can be an env expression)","version","Exact version","Watch version to install if not already installed","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Select which files/folders to watch","set to true to watch for file changes and invoke the task …","set to true to watch for file changes and invoke the task …","Show paths that changed","override task if runtime OS is Windows (takes precedence …","acts like alias if runtime OS is Windows (takes precedence …","acts like load_script if runtime OS is Windows (takes …","Adorn the TaskIdentifier with a namespace","workspace info","set to false to notify cargo-make that this is not a …"],"i":[0,0,30,41,42,7,0,35,0,0,30,0,0,0,0,0,35,52,30,47,0,0,39,35,0,0,0,0,0,0,0,0,0,0,0,0,0,45,0,0,0,0,0,15,24,0,0,0,0,30,51,42,0,36,39,47,30,41,51,0,24,51,30,0,30,39,0,0,0,0,0,35,30,0,0,45,7,36,45,0,0,0,0,0,0,45,0,0,30,0,30,35,15,0,0,43,5,3,9,18,3,5,6,3,49,61,9,23,33,34,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,9,3,7,46,22,17,37,38,3,49,18,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,9,3,49,61,25,28,38,3,49,38,3,49,18,6,53,54,17,32,33,9,3,49,10,11,12,13,16,19,3,5,53,11,5,26,23,12,16,3,49,25,3,49,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,13,3,10,11,12,14,15,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,9,9,9,11,9,18,9,18,3,49,13,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,5,9,22,3,49,6,53,22,22,9,3,49,6,53,18,22,6,53,22,22,31,32,33,34,35,36,40,41,42,7,46,47,48,52,20,31,31,31,31,7,7,7,7,46,46,46,46,47,47,47,47,48,48,48,48,52,52,52,52,12,9,3,49,5,3,49,53,22,43,10,11,22,22,22,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,7,46,46,47,48,48,49,50,51,4,52,5,6,53,54,60,61,32,33,3,49,19,37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,7,7,46,47,47,48,49,50,51,4,52,5,6,53,54,60,61,48,3,3,5,4,3,0,17,29,52,9,13,3,49,40,29,29,29,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,5,31,21,32,33,3,49,3,49,3,49,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,47,48,49,50,51,4,52,5,6,53,54,60,61,3,52,4,3,10,5,13,3,3,5,9,9,5,5,9,11,3,3,5,44,5,26,20,12,20,7,32,33,46,5,5,25,47,13,37,38,48,54,4,9,10,11,12,13,16,19,23,3,5,53,40,5,50,22,21,9,9,16,37,38,14,23,48,50,22,3,49,6,53,44,40,44,9,9,3,49,4,9,23,22,5,13,3,49,17,22,33,34,25,3,49,3,49,3,49,3,49,11,10,11,12,14,15,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,3,5,5,5,9,18,5,9,18,26,60,9,18,6,53,33,34,19,5,52,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,7,46,48,3,49,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,27,5,11,28,13,33,40,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,3,7,46,47,48,49,50,51,4,52,5,6,53,54,60,61,40,3,49,40,3,3,5,47,16,3],"f":[[[1,2]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[3,4]],[[5,4]],[[6,4]],0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[7,8],0,0,0,0,0,0,0,0,[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[17,17],[18,18],[19,19],[20,20],[21,21],[22,22],[23,23],[24,24],[25,25],[26,26],[27,27],[28,28],[29,29],[30,30],[31,31],[32,32],[33,33],[34,34],[35,35],[36,36],[37,37],[38,38],[39,39],[40,40],[41,41],[42,42],[43,43],[44,44],[45,45],[3,3],[7,7],[46,46],[47,47],[48,48],[49,49],[50,50],[51,51],[4,4],[52,52],[5,5],[6,6],[53,53],[54,54],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],10],[[],11],[[],12],[[],13],[[],16],[[],19],[[],3],[[],5],[[],53],0,0,0,0,0,0,0,0,0,0,0,[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[31],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[31],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],0,0,[56,[[57,[10]]]],[56,[[57,[11]]]],[56,[[57,[12]]]],[56,[[57,[14]]]],[56,[[57,[15]]]],[56,[[57,[20]]]],[56,[[57,[21]]]],[56,[[57,[22]]]],[56,[[57,[23]]]],[56,[[57,[24]]]],[56,[[57,[25]]]],[56,[[57,[26]]]],[56,[[57,[27]]]],[56,[[57,[28]]]],[56,[[57,[29]]]],[56,[[57,[30]]]],[56,[[57,[31]]]],[56,[[57,[32]]]],[56,[[57,[33]]]],[56,[[57,[34]]]],[56,[[57,[35]]]],[56,[[57,[36]]]],[56,[[57,[37]]]],[56,[[57,[38]]]],[56,[[57,[39]]]],[56,[[57,[40]]]],[56,[[57,[41]]]],[56,[[57,[42]]]],[56,[[57,[43]]]],[56,[[57,[44]]]],[56,[[57,[45]]]],[56,[[57,[3]]]],[56,[[57,[7]]]],[56,[[57,[46]]]],[56,[[57,[47]]]],[56,[[57,[48]]]],[56,[[57,[49]]]],[56,[[57,[50]]]],[56,[[57,[51]]]],[56,[[57,[4]]]],[56,[[57,[52]]]],[56,[[57,[5]]]],[56,[[57,[6]]]],[56,[[57,[53]]]],0,0,0,0,0,0,0,0,0,0,0,[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],[55],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[31,31],2],[[32,32],2],[[33,33],2],[[34,34],2],[[35,35],2],[[36,36],2],[[40,40],2],[[41,41],2],[[42,42],2],[[7,7],2],[[46,46],2],[[47,47],2],[[48,48],2],[[52,52],2],0,[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],0,0,[[3,3]],[[49,3]],[[5,5]],0,0,0,0,0,0,0,0,0,0,[[9,58],59],[[10,58],59],[[11,58],59],[[12,58],59],[[13,58],59],[[14,58],59],[[15,58],59],[[16,58],59],[[17,58],59],[[18,58],59],[[19,58],59],[[20,58],59],[[21,58],59],[[22,58],59],[[23,58],59],[[24,58],59],[[25,58],59],[[26,58],59],[[27,58],59],[[28,58],59],[[29,58],59],[[30,58],59],[[31,58],59],[[32,58],59],[[33,58],59],[[34,58],59],[[35,58],59],[[36,58],59],[[37,58],59],[[38,58],59],[[39,58],59],[[40,58],59],[[41,58],59],[[42,58],59],[[43,58],59],[[44,58],59],[[45,58],59],[[3,58],59],[[7,58],59],[[7,58],59],[[46,58],59],[[46,58],59],[[47,58],59],[[48,58],59],[[48,58],59],[[49,58],59],[[50,58],59],[[51,58],59],[[4,58],59],[[52,58],59],[[5,58],59],[[6,58],59],[[53,58],59],[[54,58],59],[[60,58],59],[[61,58],59],0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,7],[8,7],[[]],[[]],[8,47],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[8,48],[3,62],[3,[[63,[1]]]],[5,[[63,[45]]]],[4,1],[3,3],[[],1],0,0,[[52,64]],0,0,0,0,0,0,0,0,[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],[[],55],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[47,48],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[3,2],[52,2],[4,2],[3,2],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[7,[[63,[8]]]],0,0,0,0,0,0,[47,8],0,0,0,0,0,0,[[],9],[[],10],[[],11],[[],12],[[],13],[[],16],[[],19],[1,23],[[],3],[[],5],[[],53],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[10,65],57],[[11,65],57],[[12,65],57],[[14,65],57],[[15,65],57],[[20,65],57],[[21,65],57],[[22,65],57],[[23,65],57],[[24,65],57],[[25,65],57],[[26,65],57],[[27,65],57],[[28,65],57],[[29,65],57],[[30,65],57],[[31,65],57],[[32,65],57],[[33,65],57],[[34,65],57],[[35,65],57],[[36,65],57],[[37,65],57],[[38,65],57],[[39,65],57],[[40,65],57],[[41,65],57],[[42,65],57],[[43,65],57],[[44,65],57],[[45,65],57],[[3,65],57],[[7,65],57],[[46,65],57],[[47,65],57],[[48,65],57],[[49,65],57],[[50,65],57],[[51,65],57],[[4,65],57],[[52,65],57],[[5,65],57],[[6,65],57],[[53,65],57],[[54,65],57],[3,2],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[52,1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],0,0,[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],57],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],[[],66],0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,[[47,8],47],0,0],"c":[],"p":[[3,"String"],[15,"bool"],[3,"Task"],[3,"ModifyConfig"],[3,"ConfigSection"],[3,"Config"],[4,"ToolchainSpecifier"],[15,"str"],[3,"CliArgs"],[3,"Cache"],[3,"GlobalConfig"],[3,"Workspace"],[3,"PackageInfo"],[3,"CrateDependencyInfo"],[4,"CrateDependency"],[3,"CrateInfo"],[3,"EnvInfo"],[3,"FlowInfo"],[3,"FlowState"],[3,"RustVersionCondition"],[3,"FilesFilesModifiedCondition"],[3,"TaskCondition"],[3,"EnvFileInfo"],[4,"EnvFile"],[3,"EnvValueScript"],[3,"EnvValueDecode"],[3,"EnvValueUnset"],[3,"EnvValueConditioned"],[3,"EnvValuePathGlob"],[4,"EnvValue"],[3,"TestArg"],[3,"InstallCargoPluginInfo"],[3,"InstallCrateInfo"],[3,"InstallRustupComponentInfo"],[4,"InstallCrate"],[4,"RunTaskName"],[3,"RunTaskDetails"],[3,"RunTaskRoutingInfo"],[4,"RunTaskInfo"],[3,"WatchOptions"],[4,"TaskWatchOptions"],[4,"DeprecationInfo"],[3,"FileScriptValue"],[3,"ScriptSections"],[4,"ScriptValue"],[3,"ToolchainBoundedSpecifier"],[4,"DependencyIdentifier"],[3,"TaskIdentifier"],[3,"PlatformOverrideTask"],[3,"ExtendOptions"],[4,"Extend"],[4,"UnstableFeature"],[3,"ExternalConfig"],[3,"Step"],[15,"usize"],[8,"Deserializer"],[4,"Result"],[3,"Formatter"],[6,"Result"],[3,"ExecutionPlan"],[3,"CommandSpec"],[15,"u8"],[4,"Option"],[8,"Hasher"],[8,"Serializer"],[3,"TypeId"]]},\ -"makers":{"doc":"makers","t":"FF","n":["get_name","main"],"q":[[0,"makers"]],"d":["",""],"i":[0,0],"f":[[[],1],[[]]],"c":[],"p":[[3,"String"]]}\ -}'); -if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; -if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; +var searchIndex = new Map(JSON.parse('[\ +["cargo_make",{"doc":"cargo-make","t":"HH","n":["get_name","main"],"q":[[0,"cargo_make"],[2,"alloc::string"]],"d":["",""],"i":[0,0],"f":"{{}b}{{}d}","c":[],"p":[[5,"String",2],[1,"unit"]],"b":[]}],\ +["cli",{"doc":"cargo-make","t":"HCPPPPFPFFPFFGFFPPPPGGPPGFFGFFFFFFGFFPFFFFFPPFGFFPPPFPPPPPPFPPPFPPFGGFFPPFGPPPPFFFFGFPFGPGPPPFFOOOOONNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOONNNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHOONOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOONOOOOOONOOOOOONNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONOO","n":["run_cli","types","Boolean","Boolean","Boolean","Bounded","Cache","CargoPluginInfo","CliArgs","CommandSpec","Conditional","Config","ConfigSection","CrateDependency","CrateDependencyInfo","CrateInfo","CrateInfo","CtrlCHandling","Decode","Definition","DependencyIdentifier","DeprecationInfo","Details","Enabled","EnvFile","EnvFileInfo","EnvInfo","EnvValue","EnvValueConditioned","EnvValueDecode","EnvValuePathGlob","EnvValueScript","EnvValueUnset","ExecutionPlan","Extend","ExtendOptions","ExternalConfig","File","FileScriptValue","FilesFilesModifiedCondition","FlowInfo","FlowState","GlobalConfig","Info","Info","InstallCargoPluginInfo","InstallCrate","InstallCrateInfo","InstallRustupComponentInfo","List","List","Message","ModifyConfig","Multiple","Name","Name","Number","Options","Options","PackageInfo","Path","Path","PathGlob","PlatformOverrideTask","Profile","Routing","RunTaskDetails","RunTaskInfo","RunTaskName","RunTaskRoutingInfo","RustVersionCondition","RustupComponentInfo","Script","ScriptSections","ScriptValue","Sections","Simple","Single","SingleLine","Step","Task","TaskCondition","TaskIdentifier","TaskWatchOptions","TestArg","Text","ToolchainBoundedSpecifier","ToolchainSpecifier","Unset","UnstableFeature","Value","Value","Version","WatchOptions","Workspace","absolute_path","additional_profiles","alias","allow_private","allow_private","apply","apply","apply","args","args","args","arguments","base_path","binary","binary","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_file","category","channel","channel","channels","ci_info","cleanup_task","cleanup_task","clear","clear","cli_arguments","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","command","command","command","command","condition","condition","condition","condition","condition","condition","condition_script","condition_script","condition_script","config","config","config","config","crate_info","crate_name","crate_name","cwd","cwd","cwd","default","default","default","default","default","default","default","default","default","default_task_name","default_to_workspace","default_value","defaults_only","dependencies","dependencies","dependencies","dependencies","depends_on","deprecated","deprecated","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","diff_execution_plan","disable_check_for_updates","disable_color","disable_color","disable_on_error","disable_on_error","disable_workspace","disable_workspace","disabled","disabled","documentation","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","end_task","env","env","env","env","env","env","env_contains","env_false","env_file","env_files","env_files","env_files","env_files","env_info","env_not_set","env_scripts","env_scripts","env_set","env_true","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equal","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","exclude","experimental","extend","extend","extend","extend","extend","extend","fail_message","file","file_name","file_name","files_exist","files_modified","files_not_exist","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","force","force","force","force","forced_plugin","fork","fork","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_name","get_actions_count","get_alias","get_load_script","get_namespace_prefix","get_normalized_task","get_platform_name","git_info","glob","hash","hide_uninteresting","homepage","ignore_errors","ignore_errors","ignore_pattern","ignore_type","include_dirs","include_files","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init_task","inner","input","install_command","install_command","install_crate","install_crate","install_crate_args","install_crate_args","install_script","install_script","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_actionable","is_env_set","is_modifications_defined","is_valid","last_update_check","legacy_migration_task","license","linux","linux_alias","linux_load_script","list_all_steps","list_category_steps","load_cargo_aliases","load_script","log_level","log_level","mac","mac_alias","mac_load_script","main","main_project_member","mapping","max","members","min","min_version","min_version","min_version","min_version","min_version","modify_core_tasks","multi_line","name","name","name","name","name","name","namespace","new","new","new","new","new","new","new","new","new","new","new","no_git_ignore","on_error_task","optional","os","output","output_file","output_format","package","parallel","parallel","path","path","path","path","platforms","plugin","plugin","plugins","plugins","post","postpone","pre","print_only","print_time_summary","private","private","private","profile","profile","profiles","reduce_output","repository","run_task","run_task","rust_info","rust_version","rustup_component_name","rustup_component_name","script","script","script","script_extension","script_extension","script_runner","script_runner","script_runner_args","script_runner_args","search_project_root","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","should_ignore_errors","skip_core_tasks","skip_crate_env_info","skip_git_env_info","skip_init_end_tasks","skip_init_end_tasks","skip_rust_env_info","skip_tasks_pattern","skip_tasks_pattern","source","steps","task","task","tasks","tasks","test_arg","test_arg","time_summary","time_summary","to_env_name","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","toolchain","toolchain","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unset","unstable_features","update_check_minimum_interval","value","version","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","watch","watch","watch","why","windows","windows_alias","windows_load_script","with_namespace","workspace","workspace"],"q":[[0,"cli"],[2,"cli::types"],[1367,"alloc::string"],[1368,"core::result"],[1369,"serde::de"],[1370,"core::fmt"],[1371,"core::fmt"],[1372,"core::hash"],[1373,"serde::ser"],[1374,"core::any"]],"d":["Handles the command line arguments and executes the runner.","types","The value as boolean","True/False to enable/disable watch","True/False flag (true is deprecated)","A toolchain with a minimum version bound","Holds persisted data used by cargo-make","Install cargo plugin info","Holds CLI args","Command info","Conditional env value","Holds the entire configuration such as task definitions …","Holds the configuration found in the makefile toml config …","Holds crate dependency info.","Holds crate dependency info.","Holds crate information loaded from the Cargo.toml file.","Install crate params","Gracefully shutdown and then kill the running command on …","Env decoding info","A full dependency definion (potentially in a different …","A dependency, defined either as a string or as a …","Holds deprecation info such as true/false/message","Run Task Info","Enables to prevent installation flow","Holds the env file path and attributes","Env file path and attributes","Holds env information","Holds the env value or script","Env value set if condition is met","Env value provided by decoding other values","Env value holding a list of paths based on given glob …","Env value provided by a script","Enables to unset env variables","Execution plan which defines all steps to run and the …","Holds makefile extend value","Extend with more fine tuning options","Holds the entire externally read configuration such as …","Script file name","Script file name","Files modified (input/output) condition structure","Holds flow information","Holds mutable flow state","Holds configuration info for cargo-make","Hold dependency info","Extended info object for env file","Holds instructions how to install the cargo plugin","Install crate name or params","Holds instructions how to install the crate","Holds instructions how to install a rustup component","The value as a list of strings","Multiple extends list","Deprecation message","Holds properties to modify the core tasks","Multiple task names","Task name","A string dependency definition (its name in the current …","The value as number","Extended configuration for watch","Extend options for more fine tune control","Holds crate package information loaded from the Cargo.toml …","The file path as string","Path to another makefile","Path glob","Holds a single task configuration for a specific platform …","Profile env","Task conditional selector","Holds the run task information","Run task info","Holds the run task name/s","Holds the run task routing information","Rust version condition structure","Install rustup component params","Script which will return the value","Script content split to parts to enable a more fine tuned …","Script value (text, file name, …)","Script content split to multiple parts to enable fine …","A string specifying the channel name of the toolchain","Single task name","The script text as single line","Execution plan step to execute","Holds a single task configuration such as command and …","Holds condition attributes","An identifier for a task","Holds watch options or simple true/false value","Arguments used to check whether a crate or rustup …","The script text lines","A toolchain with a minimum version bound","A toolchain, defined either as a string (following the …","Unset env","Unstable cargo-make feature","The value as string","The value as string","Holds the dependency version","Holds watch options","Holds crate workspace info, see …","True for absolute path (default false)","Additional profile names to load","if defined, task points to another task and all other …","Allow invocation of private tasks","Allow invocation of private tasks","Apply modifications","Apply modifications","Apply modifications","The command args","The command args","The command args","additional command line arguments","The path base directory (relative paths are from this base …","The binary file name to be used to test if the crate is …","The binary file name to be used to test if the crate is …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The external Makefile.toml path","Category name used to document the task","Return the channel of the toolchain to look for","The channel of the toolchain to use","Channel names (stable, beta, nightly)","CI info","Cleanup task name","Cleanup task name","if true, it should ignore all data in base task","if true, it should ignore all data in base task","additional command line arguments","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The command name","The command to execute","The command to execute","The command to execute","The condition to validate","The condition to validate","The condition to validate","if provided all condition values must be met in order for …","if provided all condition values must be met in order for …","if provided all condition values must be met in order for …","if script exit code is not 0, the task will not be invoked","if script exit code is not 0, the command/script of this …","if script exit code is not 0, the command/script of this …","The flow config object","Runtime config","Runtime config","The task config","Crate info","The provided crate to install","The provided crate to install","Current working directory","The working directory for the task to execute its …","The working directory for the task to execute its …","","","","","","","","","","Default task name","The task.workspace default value","The default value in case no decode mapping was found, if …","If true, only set the env vars if not already defined","workspace level dependencies","crate dependencies","A list of tasks to execute before this task","A list of tasks to execute before this task","The explicit environment variables this script depends on","if not false, this task is defined as deprecated","if not false, this task is defined as deprecated","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","description","Task description","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Diff flows","Disables the update check during startup","Disables colorful output","Default output coloring","Prevent on error flow even if defined in config section","Prevent on error flow even if defined in config section","Prevent workspace support","Prevent workspace support","if true, the command/script of this task will not be …","if true, the command/script of this task will not be …","documentation link","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","End task name which will be invoked at the end of every run","Environment variables","Environment variables and their values","The env vars to setup before running the task commands","The env vars to setup before running the task commands","The env vars to setup before running the flow","The env vars to setup before running the flow","Environment variables and the values which they are …","Environment variables which are defined as false","Environment variables file","The env files to setup before running the task commands","The env files to setup before running the task commands","The env files to setup before running the flow","The env files to setup before running the flow","The env info","Environment variables which must not be defined","The env scripts to execute before running the flow","The env scripts to execute before running the flow","Environment variables which must be defined","Environment variables which are defined as true","","","","","","","","","","","","","","","specific version number","","","","","","","","","","","","","","","","","","","","","","","","","exclude paths","Allows access unsupported experimental predefined tasks","Copies values from the task into self.","Copies values from the task into self.","Copies values from the config section into self.","Extend any task based on the defined name","Extend any task based on the defined name","Path to another toml file to extend","Failure message","Script file name","File from which the cache file was loaded from","File from which the global config was loaded from","Files exist","Files modified since last execution","Files which do not exist","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Optional add force flag (if needed), default is true","Optional add force flag (if needed), default is true","DEPRECATED, replaced with ignore_errors","DEPRECATED, replaced with ignore_errors","forced plugin name","True to fork the task to a new sub process","True to fork the task to a new sub process","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a new TaskIdentifier referencing a task in the …","Returns the amount of actions defined on the task","Returns the alias value based on the current platform and …","Returns the load script based on the current platform","Returns the namespace prefix for task names","Returns a new task based on the override information and …","Returns the platform name","Git info","The glob used to fetch all paths","","Hide any minor tasks such as pre/post hooks","homepage link","if true, any error while executing the task will be …","if true, any error while executing the task will be …","Ignore a glob/gitignore-style pattern","Enables to respect ignore files","True to include directories (default is true if undefined)","True to include files (default is true if undefined)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Init task name which will be invoked at the start of every …","Content of the arguments","input files","Optional alternate ‘install’ command","Optional alternate ‘install’ command","if defined, the provided crate will be installed (if …","if defined, the provided crate will be installed (if …","additional cargo install arguments","additional cargo install arguments","if defined, the provided script will be executed before …","if defined, the provided script will be executed before …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if the task has any actions on its own or if …","Is the corresponding env. variable set?","Returns true if config modifications is needed based on …","Returns true if the task is valid","Holds last update check with returned no updates result","The name of the task which runs legacy migration flows","license","override task if runtime OS is Linux (takes precedence …","acts like alias if runtime OS is Linux (takes precedence …","acts like load_script if runtime OS is Linux (takes …","List all known steps","List steps for a given category","Automatically load cargo aliases as cargo-make tasks","Invoked while loading the descriptor file but before …","Log level name","Default log level","override task if runtime OS is Mac (takes precedence over …","acts like alias if runtime OS is Mac (takes precedence …","acts like load_script if runtime OS is Mac (takes …","Script section","The project information member (used by workspaces)","The decoding mapping","max version number","members paths","min version number","Return the minimal version, if any, to look for","Minimal version","Minimal version","The minimum version to match","Minimum cargo-make/makers version","Modify core tasks config","True/False to enable multi line env values","Get the name of a dependency","name","The task name","The task name","The task name to execute","The task name","If set to some value, all core tasks are modified to: …","Creates and returns a new instance.","Returns new instance","Returns new instance","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Creates and returns a new instance.","Do not use .gitignore files","The name of the task to run in case of any error during …","Enable optional extend (default to false)","As defined in the cfg target_os","output files","Output file name","Output format","package info","True to run all tasks in parallel (default false)","True to run all tasks in parallel (default false)","Holds the dependency path","The file path as string","The path to the makefile the task resides in","Path to another makefile","Platform names (linux, windows, mac)","Optional plugin used to execute the task","Optional plugin used to execute the task","All plugin definitions","All plugin definitions","Script section","Postpone first run until a file changes","Script section","Only print the execution plan","Print time summary at end of the flow","if true, the task is hidden from the list of available …","if true, the task is hidden from the list of available …","If true, all core tasks will be set to private (default …","The profile name","The profile name this file is relevant to","Profile names (development, …)","True to reduce console output for non CI execution","repository link","The task name to execute","The task name to execute","Rust info","Rust version condition","If defined, the component to install via rustup","The component to install via rustup","The script to execute to get the env value","If command is not defined, and script is defined, the …","If command is not defined, and script is defined, the …","The script file extension","The script file extension","The script runner (defaults to cmd in windows and sh for …","The script runner (defaults to cmd in windows and sh for …","The script runner arguments before the script file path","The script runner arguments before the script file path","True to search for project root in parent directories if …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if the task ignore_errors attribute is …","If true, the default core tasks will not be loaded","do not load current crate env info (save on perf)","do not load git env info (save on perf)","If true, the init and end tasks are skipped","If true, the init and end tasks are skipped","do not load rust env info (save on perf)","Skip tasks that match the provided pattern","Skip tasks that match the provided pattern","The source value (can be an env expression)","A list of steps to execute","The task to invoke","The main task of the flow","All task definitions","All task definitions","Test arguments that will be used to check that the crate …","Test argument that will be used to check that the crate is …","timing info for summary","True to print time summary at the end of the flow","Creates the env. variable name associated to the feature","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The rust toolchain used to invoke the command or install …","The rust toolchain used to invoke the command or install …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If true, the env variable will be unset, else ignored","Enables unstable cargo-make features","Update check minimum time from the previous check (always, …","The value to set (can be an env expression)","version","Exact version","Watch version to install if not already installed","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Select which files/folders to watch","set to true to watch for file changes and invoke the task …","set to true to watch for file changes and invoke the task …","Show paths that changed","override task if runtime OS is Windows (takes precedence …","acts like alias if runtime OS is Windows (takes precedence …","acts like load_script if runtime OS is Windows (takes …","Adorn the TaskIdentifier with a namespace","workspace info","set to false to notify cargo-make that this is not a …"],"i":[0,0,31,42,43,8,0,36,0,0,31,0,0,0,0,0,36,53,31,48,0,0,40,36,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0,0,0,0,16,25,0,0,0,0,31,52,43,0,37,40,48,31,42,52,0,25,52,31,0,31,40,0,0,0,0,0,36,31,0,0,46,8,37,46,0,0,0,0,0,0,46,0,0,31,0,31,36,16,0,0,44,6,4,10,19,4,6,7,4,50,62,10,24,34,35,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,10,4,8,47,23,18,38,39,4,50,19,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,10,4,50,62,26,27,29,39,4,50,39,4,50,19,7,54,55,18,33,34,10,4,50,11,12,13,14,17,20,4,6,54,12,6,27,24,13,17,4,50,26,4,50,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,14,4,11,12,13,15,16,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,10,10,10,12,10,19,10,19,4,50,14,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,6,10,23,4,50,7,54,23,23,10,4,50,7,54,19,23,7,54,23,23,32,33,34,35,36,37,41,42,43,8,47,48,49,53,21,32,32,32,32,8,8,8,8,47,47,47,47,48,48,48,48,49,49,49,49,53,53,53,53,13,10,4,50,6,4,50,54,23,44,11,12,23,23,23,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,8,47,47,48,49,49,50,51,52,5,53,6,7,54,55,61,62,33,34,4,50,20,38,39,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,8,8,47,48,48,49,50,51,52,5,53,6,7,54,55,61,62,49,4,4,6,5,4,0,18,30,53,10,14,4,50,41,30,30,30,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,6,32,22,33,34,4,50,4,50,4,50,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,48,49,50,51,52,5,53,6,7,54,55,61,62,4,53,5,4,11,6,14,4,4,6,10,10,6,6,10,12,4,4,6,45,6,27,21,13,21,8,33,34,47,6,6,26,48,14,38,39,49,55,5,10,11,12,13,14,17,20,24,4,6,54,41,6,51,23,22,10,10,17,38,39,15,24,49,51,23,4,50,7,54,45,41,45,10,10,4,50,5,10,24,23,6,14,4,50,18,23,34,35,26,4,50,4,50,4,50,4,50,12,11,12,13,15,16,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,4,6,6,6,10,19,6,10,19,27,61,10,19,7,54,34,35,20,6,53,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,8,47,49,4,50,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,28,6,12,29,14,34,41,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4,8,47,48,49,50,51,52,5,53,6,7,54,55,61,62,41,4,50,41,4,4,6,48,17,4],"f":"{{bd}f}```````````````````````````````````````````````````````````````````````````````````````````````````{{hj}f}{{lj}f}{{nj}f}```````{ce{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``{A`Ab}````````{AdAd}{AfAf}{AhAh}{AjAj}{AlAl}{AnAn}{B`B`}{BbBb}{BdBd}{BfBf}{BhBh}{BjBj}{BlBl}{BnBn}{C`C`}{CbCb}{CdCd}{CfCf}{ChCh}{CjCj}{ClCl}{CnCn}{D`D`}{DbDb}{DdDd}{DfDf}{DhDh}{DjDj}{DlDl}{DnDn}{E`E`}{EbEb}{EdEd}{EfEf}{EhEh}{EjEj}{ElEl}{hh}{A`A`}{EnEn}{F`F`}{FbFb}{FdFd}{FfFf}{FhFh}{jj}{FjFj}{ll}{nn}{FlFl}{FnFn}{{ce}f{}{}}00000000000000000000000000000000000000000000000000```````````````````````{{}Af}{{}Ah}{{}Aj}{{}Al}{{}Bb}{{}Bh}{{}h}{{}l}{{}Fl}```````````{G`c{}}0000000000000000000000{D`c{}}111111111111111111111111111111111111111111111111111101111111111111111111111111111111``{c{{Gb{Af}}}Gd}{c{{Gb{Ah}}}Gd}{c{{Gb{Aj}}}Gd}{c{{Gb{An}}}Gd}{c{{Gb{B`}}}Gd}{c{{Gb{Bj}}}Gd}{c{{Gb{Bl}}}Gd}{c{{Gb{Bn}}}Gd}{c{{Gb{C`}}}Gd}{c{{Gb{Cb}}}Gd}{c{{Gb{Cd}}}Gd}{c{{Gb{Cf}}}Gd}{c{{Gb{Ch}}}Gd}{c{{Gb{Cj}}}Gd}{c{{Gb{Cl}}}Gd}{c{{Gb{Cn}}}Gd}{c{{Gb{D`}}}Gd}{c{{Gb{Db}}}Gd}{c{{Gb{Dd}}}Gd}{c{{Gb{Df}}}Gd}{c{{Gb{Dh}}}Gd}{c{{Gb{Dj}}}Gd}{c{{Gb{Dl}}}Gd}{c{{Gb{Dn}}}Gd}{c{{Gb{E`}}}Gd}{c{{Gb{Eb}}}Gd}{c{{Gb{Ed}}}Gd}{c{{Gb{Ef}}}Gd}{c{{Gb{Eh}}}Gd}{c{{Gb{Ej}}}Gd}{c{{Gb{El}}}Gd}{c{{Gb{h}}}Gd}{c{{Gb{A`}}}Gd}{c{{Gb{En}}}Gd}{c{{Gb{F`}}}Gd}{c{{Gb{Fb}}}Gd}{c{{Gb{Fd}}}Gd}{c{{Gb{Ff}}}Gd}{c{{Gb{Fh}}}Gd}{c{{Gb{j}}}Gd}{c{{Gb{Fj}}}Gd}{c{{Gb{l}}}Gd}{c{{Gb{n}}}Gd}{c{{Gb{Fl}}}Gd}```````````{G`f}0000000000000000000000000000000000000000000000000000````````````````````{{D`D`}d}{{DbDb}d}{{DdDd}d}{{DfDf}d}{{DhDh}d}{{DjDj}d}{{EbEb}d}{{EdEd}d}{{EfEf}d}{{A`A`}d}{{EnEn}d}{{F`F`}d}{{FbFb}d}{{FjFj}d}`{{ce}d{}{}}00000000000000000000000``{{hh}f}{{Fdh}f}{{ll}f}``````````{{AdGf}Gh}{{AfGf}Gh}{{AhGf}Gh}{{AjGf}Gh}{{AlGf}Gh}{{AnGf}Gh}{{B`Gf}Gh}{{BbGf}Gh}{{BdGf}Gh}{{BfGf}Gh}{{BhGf}Gh}{{BjGf}Gh}{{BlGf}Gh}{{BnGf}Gh}{{C`Gf}Gh}{{CbGf}Gh}{{CdGf}Gh}{{CfGf}Gh}{{ChGf}Gh}{{CjGf}Gh}{{ClGf}Gh}{{CnGf}Gh}{{D`Gf}Gh}{{DbGf}Gh}{{DdGf}Gh}{{DfGf}Gh}{{DhGf}Gh}{{DjGf}Gh}{{DlGf}Gh}{{DnGf}Gh}{{E`Gf}Gh}{{EbGf}Gh}{{EdGf}Gh}{{EfGf}Gh}{{EhGf}Gh}{{EjGf}Gh}{{ElGf}Gh}{{hGf}Gh}{{A`Gf}Gh}0{{EnGf}Gh}0{{F`Gf}Gh}{{FbGf}Gh}0{{FdGf}Gh}{{FfGf}Gh}{{FhGf}Gh}{{jGf}Gh}{{FjGf}Gh}{{lGf}Gh}{{nGf}Gh}{{FlGf}Gh}{{FnGf}Gh}{{GjGf}Gh}{{GlGf}Gh}```````{cc{}}0000000000000000000000000000000000000{bA`}{AbA`}222{AbF`}333333333333{AbFb}{hGn}{h{{H`{b}}}}{l{{H`{El}}}}{jb}{hh}{{}b}``{{Fjc}fHb}````````{{}G`}0000000000000000000000000000000000000000000000000000```````````{ce{}{}}0000000000000000000000000000000000000000{F`Fb}111111111111{hd}{Fjd}{jd}2`````````````````````{A`{{H`{Ab}}}}``````{F`Ab}``````{{}Ad}{{}Af}{{}Ah}{{}Aj}{{}Al}{{}Bb}{{}Bh}{bC`}{{}h}{{}l}{{}Fl}````````````````````````````````````````````````{{Afc}GbHd}{{Ahc}GbHd}{{Ajc}GbHd}{{Anc}GbHd}{{B`c}GbHd}{{Bjc}GbHd}{{Blc}GbHd}{{Bnc}GbHd}{{C`c}GbHd}{{Cbc}GbHd}{{Cdc}GbHd}{{Cfc}GbHd}{{Chc}GbHd}{{Cjc}GbHd}{{Clc}GbHd}{{Cnc}GbHd}{{D`c}GbHd}{{Dbc}GbHd}{{Ddc}GbHd}{{Dfc}GbHd}{{Dhc}GbHd}{{Djc}GbHd}{{Dlc}GbHd}{{Dnc}GbHd}{{E`c}GbHd}{{Ebc}GbHd}{{Edc}GbHd}{{Efc}GbHd}{{Ehc}GbHd}{{Ejc}GbHd}{{Elc}GbHd}{{hc}GbHd}{{A`c}GbHd}{{Enc}GbHd}{{F`c}GbHd}{{Fbc}GbHd}{{Fdc}GbHd}{{Ffc}GbHd}{{Fhc}GbHd}{{jc}GbHd}{{Fjc}GbHd}{{lc}GbHd}{{nc}GbHd}{{Flc}GbHd}{{Fnc}GbHd}{hd}``````````````````{Fjb}{ce{}{}}00000000000000000000000000000000000000000000000000{cb{}}00``{c{{Gb{e}}}{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{cHf{}}0000000000000000000000000000000000000000000000000000```````33333333333333333333333333333333333333333333333333333```````{{F`Ab}F`}``","c":[],"p":[[5,"String",1367],[1,"bool"],[1,"unit"],[5,"Task",2],[5,"ModifyConfig",2],[5,"ConfigSection",2],[5,"Config",2],[6,"ToolchainSpecifier",2],[1,"str"],[5,"CliArgs",2],[5,"Cache",2],[5,"GlobalConfig",2],[5,"Workspace",2],[5,"PackageInfo",2],[5,"CrateDependencyInfo",2],[6,"CrateDependency",2],[5,"CrateInfo",2],[5,"EnvInfo",2],[5,"FlowInfo",2],[5,"FlowState",2],[5,"RustVersionCondition",2],[5,"FilesFilesModifiedCondition",2],[5,"TaskCondition",2],[5,"EnvFileInfo",2],[6,"EnvFile",2],[5,"EnvValueScript",2],[5,"EnvValueDecode",2],[5,"EnvValueUnset",2],[5,"EnvValueConditioned",2],[5,"EnvValuePathGlob",2],[6,"EnvValue",2],[5,"TestArg",2],[5,"InstallCargoPluginInfo",2],[5,"InstallCrateInfo",2],[5,"InstallRustupComponentInfo",2],[6,"InstallCrate",2],[6,"RunTaskName",2],[5,"RunTaskDetails",2],[5,"RunTaskRoutingInfo",2],[6,"RunTaskInfo",2],[5,"WatchOptions",2],[6,"TaskWatchOptions",2],[6,"DeprecationInfo",2],[5,"FileScriptValue",2],[5,"ScriptSections",2],[6,"ScriptValue",2],[5,"ToolchainBoundedSpecifier",2],[6,"DependencyIdentifier",2],[5,"TaskIdentifier",2],[5,"PlatformOverrideTask",2],[5,"ExtendOptions",2],[6,"Extend",2],[6,"UnstableFeature",2],[5,"ExternalConfig",2],[5,"Step",2],[1,"usize"],[6,"Result",1368],[10,"Deserializer",1369],[5,"Formatter",1370],[8,"Result",1370],[5,"ExecutionPlan",2],[5,"CommandSpec",2],[1,"u8"],[6,"Option",1371],[10,"Hasher",1372],[10,"Serializer",1373],[5,"TypeId",1374]],"b":[[702,"impl-Debug-for-ToolchainSpecifier"],[703,"impl-Display-for-ToolchainSpecifier"],[704,"impl-Display-for-ToolchainBoundedSpecifier"],[705,"impl-Debug-for-ToolchainBoundedSpecifier"],[707,"impl-Debug-for-TaskIdentifier"],[708,"impl-Display-for-TaskIdentifier"],[765,"impl-From%3CString%3E-for-ToolchainSpecifier"],[766,"impl-From%3C%26str%3E-for-ToolchainSpecifier"]]}],\ +["makers",{"doc":"makers","t":"HH","n":["get_name","main"],"q":[[0,"makers"],[2,"alloc::string"]],"d":["",""],"i":[0,0],"f":"{{}b}{{}d}","c":[],"p":[[5,"String",2],[1,"unit"]],"b":[]}]\ +]')); +if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; +else if (window.initSearch) window.initSearch(searchIndex); diff --git a/docs/api/settings.html b/docs/api/settings.html index e70085a85..8bee343c1 100644 --- a/docs/api/settings.html +++ b/docs/api/settings.html @@ -1 +1,2 @@ -Rustdoc settings

    Rustdoc settings

    Back
    \ No newline at end of file +Settings +

    Rustdoc settings

    Back
    \ No newline at end of file diff --git a/docs/api/source-files.js b/docs/api/source-files.js deleted file mode 100644 index 82c6bc7be..000000000 --- a/docs/api/source-files.js +++ /dev/null @@ -1,6 +0,0 @@ -var sourcesIndex = JSON.parse('{\ -"cargo_make":["",[],["main.rs"]],\ -"cli":["",[["cli_commands",[],["diff_steps.rs","list_steps.rs","mod.rs","print_steps.rs"]],["descriptor",[["makefiles",[],["mod.rs"]]],["cargo_alias.rs","descriptor_deserializer.rs","env.rs","mod.rs"]],["environment",[],["crateinfo.rs","mod.rs"]],["functions",[],["decode_func.rs","getat_func.rs","mod.rs","remove_empty_func.rs","split_func.rs","trim_func.rs"]],["installer",[],["cargo_plugin_installer.rs","crate_installer.rs","crate_version_check.rs","mod.rs","rustup_component_installer.rs"]],["plugin",[["sdk",[],["cm_plugin_check_task_condition.rs","cm_plugin_force_plugin_clear.rs","cm_plugin_force_plugin_set.rs","cm_plugin_run_custom_task.rs","cm_plugin_run_task.rs","mod.rs"]]],["descriptor.rs","mod.rs","runner.rs","types.rs"]],["scriptengine",[["duck_script",[["sdk",[],["cm_run_task.rs","mod.rs"]]],["mod.rs"]]],["generic_script.rs","mod.rs","os_script.rs","rsscript.rs","script_utils.rs","shebang_script.rs","shell_to_batch.rs"]]],["cache.rs","cli.rs","cli_parser.rs","command.rs","condition.rs","config.rs","execution_plan.rs","io.rs","legacy.rs","logger.rs","mod.rs","profile.rs","proxy_task.rs","recursion_level.rs","runner.rs","storage.rs","time_summary.rs","toolchain.rs","types.rs","version.rs"]],\ -"makers":["",[],["makers.rs"]]\ -}'); -createSourceSidebar(); diff --git a/docs/api/src-files.js b/docs/api/src-files.js new file mode 100644 index 000000000..bb206c343 --- /dev/null +++ b/docs/api/src-files.js @@ -0,0 +1,6 @@ +var srcIndex = new Map(JSON.parse('[\ +["cargo_make",["",[],["main.rs"]]],\ +["cli",["",[["cli_commands",[],["diff_steps.rs","list_steps.rs","mod.rs","print_steps.rs"]],["descriptor",[["makefiles",[],["mod.rs"]]],["cargo_alias.rs","descriptor_deserializer.rs","env.rs","mod.rs"]],["environment",[],["crateinfo.rs","mod.rs"]],["functions",[],["decode_func.rs","getat_func.rs","mod.rs","remove_empty_func.rs","split_func.rs","trim_func.rs"]],["installer",[],["cargo_plugin_installer.rs","crate_installer.rs","crate_version_check.rs","mod.rs","rustup_component_installer.rs"]],["plugin",[["sdk",[],["cm_plugin_check_task_condition.rs","cm_plugin_force_plugin_clear.rs","cm_plugin_force_plugin_set.rs","cm_plugin_run_custom_task.rs","cm_plugin_run_task.rs","mod.rs"]]],["descriptor.rs","mod.rs","runner.rs","types.rs"]],["scriptengine",[["duck_script",[["sdk",[],["cm_run_task.rs","mod.rs"]]],["mod.rs"]]],["generic_script.rs","mod.rs","os_script.rs","rsscript.rs","script_utils.rs","shebang_script.rs","shell_to_batch.rs"]]],["cache.rs","cli.rs","cli_parser.rs","command.rs","condition.rs","config.rs","execution_plan.rs","io.rs","legacy.rs","logger.rs","mod.rs","profile.rs","proxy_task.rs","recursion_level.rs","runner.rs","storage.rs","time_summary.rs","toolchain.rs","types.rs","version.rs"]]],\ +["makers",["",[],["makers.rs"]]]\ +]')); +createSrcSidebar(); diff --git a/docs/api/src/cargo_make/main.rs.html b/docs/api/src/cargo_make/main.rs.html index 3dcc96662..ae59e13f8 100644 --- a/docs/api/src/cargo_make/main.rs.html +++ b/docs/api/src/cargo_make/main.rs.html @@ -1,4 +1,6 @@ -main.rs - source
    1
    +main.rs - source
    +    
    1
     2
     3
     4
    @@ -65,11 +67,11 @@
     //!
     
     #[cfg(test)]
    -#[path = "main_test.rs"]
    +#[path = "main_test.rs"]
     mod main_test;
     
     fn get_name() -> String {
    -    "make".to_string()
    +    "make".to_string()
     }
     
     fn main() {
    diff --git a/docs/api/src/cli/cache.rs.html b/docs/api/src/cli/cache.rs.html
    index a2457f133..29c2d1297 100644
    --- a/docs/api/src/cli/cache.rs.html
    +++ b/docs/api/src/cli/cache.rs.html
    @@ -1,4 +1,6 @@
    -cache.rs - source
    1
    +cache.rs - source
    +    
    1
     2
     3
     4
    @@ -107,7 +109,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "cache_test.rs"]
    +#[path = "cache_test.rs"]
     mod cache_test;
     
     use crate::storage;
    @@ -118,7 +120,7 @@
     use std::path::{Path, PathBuf};
     use toml;
     
    -static CACHE_FILE: &'static str = "cache.toml";
    +static CACHE_FILE: &'static str = "cache.toml";
     
     fn load_from_path(directory: PathBuf) -> Cache {
         let file_path = Path::new(&directory).join(CACHE_FILE);
    @@ -129,7 +131,7 @@
                     let cache_data: Cache = match toml::from_str(&cache_str) {
                         Ok(value) => value,
                         Err(error) => {
    -                        info!("Unable to parse cache file, {}", error);
    +                        info!("Unable to parse cache file, {}", error);
                             Cache::new()
                         }
                     };
    @@ -138,7 +140,7 @@
                 }
                 Err(error) => {
                     info!(
    -                    "Unable to read cache file: {:?} error: {}",
    +                    "Unable to read cache file: {:?} error: {}",
                         &file_path,
                         error.to_string()
                     );
    @@ -189,13 +191,13 @@
                     match toml::to_string_pretty(cache_data) {
                         Ok(toml_str) => match write_text_file(&file_name, &toml_str) {
                             Err(error) => info!(
    -                            "Error while writing to cache file: {:#?}, error: {:#?}",
    +                            "Error while writing to cache file: {:#?}, error: {:#?}",
                                 &file_name, error
                             ),
                             _ => (),
                         },
                         Err(error) => info!(
    -                        "Error during serialization of cache, file: {:#?}, error: {:#?}",
    +                        "Error during serialization of cache, file: {:#?}, error: {:#?}",
                             &file_name, error
                         ),
                     };
    diff --git a/docs/api/src/cli/cli.rs.html b/docs/api/src/cli/cli.rs.html
    index b097276da..fdb4afc34 100644
    --- a/docs/api/src/cli/cli.rs.html
    +++ b/docs/api/src/cli/cli.rs.html
    @@ -1,4 +1,6 @@
    -cli.rs - source
    1
    +cli.rs - source
    +    
    1
     2
     3
     4
    @@ -183,7 +185,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "cli_test.rs"]
    +#[path = "cli_test.rs"]
     mod cli_test;
     
     use crate::cli_commands;
    @@ -202,13 +204,13 @@
     use crate::version;
     use std::time::SystemTime;
     
    -pub(crate) static VERSION: &str = env!("CARGO_PKG_VERSION");
    -pub(crate) static AUTHOR: &str = env!("CARGO_PKG_AUTHORS");
    -pub(crate) static DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION");
    -pub(crate) static DEFAULT_TOML: &str = "Makefile.toml";
    -pub(crate) static DEFAULT_LOG_LEVEL: &str = "info";
    -pub(crate) static DEFAULT_TASK_NAME: &str = "default";
    -pub(crate) static DEFAULT_OUTPUT_FORMAT: &str = "default";
    +pub(crate) static VERSION: &str = env!("CARGO_PKG_VERSION");
    +pub(crate) static AUTHOR: &str = env!("CARGO_PKG_AUTHORS");
    +pub(crate) static DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION");
    +pub(crate) static DEFAULT_TOML: &str = "Makefile.toml";
    +pub(crate) static DEFAULT_LOG_LEVEL: &str = "info";
    +pub(crate) static DEFAULT_TASK_NAME: &str = "default";
    +pub(crate) static DEFAULT_OUTPUT_FORMAT: &str = "default";
     
     fn run(cli_args: CliArgs, global_config: &GlobalConfig) {
         let start_time = SystemTime::now();
    @@ -221,12 +223,12 @@
         });
     
         if recursion_level::is_top() {
    -        info!("{} {}", &cli_args.command, &VERSION);
    -        debug!("Written By {}", &AUTHOR);
    +        info!("{} {}", &cli_args.command, &VERSION);
    +        debug!("Written By {}", &AUTHOR);
         }
     
    -    debug!("Cli Args {:#?}", &cli_args);
    -    debug!("Global Configuration {:#?}", &global_config);
    +    debug!("Cli Args {:#?}", &cli_args);
    +    debug!("Global Configuration {:#?}", &global_config);
     
         if version::should_check(&cli_args, &global_config) {
             version::check();
    @@ -279,14 +281,14 @@
         let config = match descriptor_load_result {
             Ok(config) => config,
             Err(ref error) => {
    -            error!("{}", error);
    -            panic!("{}", error);
    +            error!("{}", error);
    +            panic!("{}", error);
             }
         };
         let mut time_summary_vec = vec![];
         time_summary::add(
             &mut time_summary_vec,
    -        "[Load Makefiles]",
    +        "[Load Makefiles]",
             start_time.clone(),
         );
         let step_time = SystemTime::now();
    @@ -297,15 +299,15 @@
         };
     
         let env_info = environment::setup_env(&cli_args, &config, &task, home, &mut time_summary_vec);
    -    time_summary::add(&mut time_summary_vec, "[Setup Env]", step_time);
    +    time_summary::add(&mut time_summary_vec, "[Setup Env]", step_time);
     
    -    let crate_name = envmnt::get_or("CARGO_MAKE_CRATE_NAME", "");
    +    let crate_name = envmnt::get_or("CARGO_MAKE_CRATE_NAME", "");
         if crate_name.len() > 0 {
    -        info!("Project: {}", &crate_name);
    +        info!("Project: {}", &crate_name);
         }
    -    info!("Build File: {}", &build_file);
    -    info!("Task: {}", &task);
    -    info!("Profile: {}", &normalized_profile_name);
    +    info!("Build File: {}", &build_file);
    +    info!("Task: {}", &task);
    +    info!("Profile: {}", &normalized_profile_name);
     
         // ensure profile env was not overridden
         profile::set(&normalized_profile_name);
    diff --git a/docs/api/src/cli/cli_commands/diff_steps.rs.html b/docs/api/src/cli/cli_commands/diff_steps.rs.html
    index 4ae4b90f0..d20b4e863 100644
    --- a/docs/api/src/cli/cli_commands/diff_steps.rs.html
    +++ b/docs/api/src/cli/cli_commands/diff_steps.rs.html
    @@ -1,4 +1,6 @@
    -diff_steps.rs - source
    1
    +diff_steps.rs - source
    +    
    1
     2
     3
     4
    @@ -93,7 +95,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "diff_steps_test.rs"]
    +#[path = "diff_steps_test.rs"]
     mod diff_steps_test;
     
     use crate::command;
    @@ -107,7 +109,7 @@
     
     fn write_as_string(execution_plan: &ExecutionPlan, file: &File) -> io::Result<()> {
         let mut writer = BufWriter::new(file);
    -    writeln!(&mut writer, "{:#?}", &execution_plan.steps)
    +    writeln!(&mut writer, "{:#?}", &execution_plan.steps)
     }
     
     /// Runs the execution plan diff
    @@ -122,7 +124,7 @@
             Some(ref pattern) => match Regex::new(pattern) {
                 Ok(reg) => Some(reg),
                 Err(_) => {
    -                warn!("Invalid skip tasks pattern provided: {}", pattern);
    +                warn!("Invalid skip tasks pattern provided: {}", pattern);
                     None
                 }
             },
    @@ -151,20 +153,20 @@
     
         let internal_file = create_file(
             &move |file: &mut File| write_as_string(&internal_execution_plan, &file),
    -        "toml",
    +        "toml",
         );
         let external_file = create_file(
             &move |file: &mut File| write_as_string(&external_execution_plan, &file),
    -        "toml",
    +        "toml",
         );
     
    -    info!("Printing diff...");
    +    info!("Printing diff...");
         command::run_command(
    -        "git",
    +        "git",
             &Some(vec![
    -            "--no-pager".to_string(),
    -            "diff".to_string(),
    -            "--no-index".to_string(),
    +            "--no-pager".to_string(),
    +            "diff".to_string(),
    +            "--no-index".to_string(),
                 internal_file.to_string(),
                 external_file.to_string(),
             ]),
    @@ -174,6 +176,6 @@
         delete_file(&internal_file);
         delete_file(&external_file);
     
    -    info!("Done");
    +    info!("Done");
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/cli_commands/list_steps.rs.html b/docs/api/src/cli/cli_commands/list_steps.rs.html index 5898a5db5..d39f8a9fe 100644 --- a/docs/api/src/cli/cli_commands/list_steps.rs.html +++ b/docs/api/src/cli/cli_commands/list_steps.rs.html @@ -1,4 +1,6 @@ -list_steps.rs - source
    1
    +list_steps.rs - source
    +    
    1
     2
     3
     4
    @@ -199,7 +201,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "list_steps_test.rs"]
    +#[path = "list_steps_test.rs"]
     mod list_steps_test;
     
     use crate::execution_plan;
    @@ -221,7 +223,7 @@
                 io::write_text_file(&file, &output);
                 ()
             }
    -        None => print!("{}", output),
    +        None => print!("{}", output),
         }
     }
     
    @@ -241,8 +243,8 @@
         for key in config.tasks.keys() {
             let actual_task_name =
                 execution_plan::get_actual_task_name(&config, &key).unwrap_or_else(|| {
    -                error!("Task {} not found", &key);
    -                panic!("Task {} not found", &key);
    +                error!("Task {} not found", &key);
    +                panic!("Task {} not found", &key);
                 });
     
             let task = execution_plan::get_normalized_task(&config, &actual_task_name, true);
    @@ -255,11 +257,11 @@
             let skip_task = if is_private {
                 true
             } else if hide_uninteresting {
    -            key.contains("pre-")
    -                || key.contains("post-")
    -                || key == "init"
    -                || key == "end"
    -                || key == "empty"
    +            key.contains("pre-")
    +                || key.contains("post-")
    +                || key == "init"
    +                || key == "end"
    +                || key == "empty"
             } else {
                 false
             };
    @@ -267,7 +269,7 @@
             if !skip_task {
                 let category = match task.category {
                     Some(value) => value,
    -                None => "No Category".to_string(),
    +                None => "No Category".to_string(),
                 };
     
                 if category_filter
    @@ -287,27 +289,27 @@
     
                 let description = match task.description {
                     Some(value) => value,
    -                None => "No Description.".to_string(),
    +                None => "No Description.".to_string(),
                 };
     
                 let deprecated_message = match task.deprecated {
                     Some(deprecated) => match deprecated {
                         DeprecationInfo::Boolean(value) => {
                             if value {
    -                            " (deprecated)".to_string()
    +                            " (deprecated)".to_string()
                             } else {
    -                            "".to_string()
    +                            "".to_string()
                             }
                         }
                         DeprecationInfo::Message(ref message) => {
    -                        let mut buffer = " (deprecated - ".to_string();
    +                        let mut buffer = " (deprecated - ".to_string();
                             buffer.push_str(message);
    -                        buffer.push_str(")");
    +                        buffer.push_str(")");
     
                             buffer
                         }
                     },
    -                None => "".to_string(),
    +                None => "".to_string(),
                 };
     
                 let mut text = String::from(description);
    @@ -321,18 +323,18 @@
         }
     
         // build the task list output string
    -    let single_page_markdown = output_format == "markdown-single-page";
    +    let single_page_markdown = output_format == "markdown-single-page";
         let markdown = single_page_markdown
    -        || output_format == "markdown"
    -        || output_format == "markdown-sub-section";
    -    let just_task_name = output_format == "autocomplete";
    +        || output_format == "markdown"
    +        || output_format == "markdown-sub-section";
    +    let just_task_name = output_format == "autocomplete";
     
         let mut buffer = String::new();
         if single_page_markdown {
    -        buffer.push_str(&format!("# Task List\n\n"));
    +        buffer.push_str(&format!("# Task List\n\n"));
         }
     
    -    let post_key = if markdown { "**" } else { "" };
    +    let post_key = if markdown { "**" } else { "" };
         for (category, tasks) in &categories {
             if category_filter
                 .as_ref()
    @@ -343,44 +345,44 @@
     
             if !just_task_name {
                 if single_page_markdown {
    -                buffer.push_str(&format!("## {}\n\n", category));
    +                buffer.push_str(&format!("## {}\n\n", category));
                 } else if markdown {
    -                buffer.push_str(&format!("#### {}\n\n", category));
    +                buffer.push_str(&format!("#### {}\n\n", category));
                 } else {
    -                buffer.push_str(&format!("{}\n----------\n", category));
    +                buffer.push_str(&format!("{}\n----------\n", category));
                 }
             }
     
             for (key, description) in tasks {
                 if markdown {
    -                buffer.push_str(&format!("* **"));
    +                buffer.push_str(&format!("* **"));
                 }
     
                 let aliases = if let Some(aliases) = aliases.remove(key) {
                     if just_task_name {
    -                    aliases.into_iter().collect::<Vec<String>>().join(" ")
    +                    aliases.into_iter().collect::<Vec<String>>().join(" ")
                     } else {
                         format!(
    -                        " [aliases: {}]",
    -                        aliases.into_iter().collect::<Vec<String>>().join(", ")
    +                        " [aliases: {}]",
    +                        aliases.into_iter().collect::<Vec<String>>().join(", ")
                         )
                     }
                 } else {
    -                "".to_string()
    +                "".to_string()
                 };
     
                 if just_task_name {
    -                buffer.push_str(&format!("{} {} ", &key, aliases));
    +                buffer.push_str(&format!("{} {} ", &key, aliases));
                 } else {
                     buffer.push_str(&format!(
    -                    "{}{} - {}{}\n",
    +                    "{}{} - {}{}\n",
                         &key, &post_key, &description, aliases
                     ));
                 }
             }
     
             if !just_task_name {
    -            buffer.push_str(&format!("\n"));
    +            buffer.push_str(&format!("\n"));
             }
         }
     
    diff --git a/docs/api/src/cli/cli_commands/mod.rs.html b/docs/api/src/cli/cli_commands/mod.rs.html
    index e997af3d0..f1364a25b 100644
    --- a/docs/api/src/cli/cli_commands/mod.rs.html
    +++ b/docs/api/src/cli/cli_commands/mod.rs.html
    @@ -1,4 +1,6 @@
    -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    diff --git a/docs/api/src/cli/cli_commands/print_steps.rs.html b/docs/api/src/cli/cli_commands/print_steps.rs.html
    index 0f63dea9b..e1cb4683d 100644
    --- a/docs/api/src/cli/cli_commands/print_steps.rs.html
    +++ b/docs/api/src/cli/cli_commands/print_steps.rs.html
    @@ -1,4 +1,6 @@
    -print_steps.rs - source
    1
    +print_steps.rs - source
    +    
    1
     2
     3
     4
    @@ -104,7 +106,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "print_steps_test.rs"]
    +#[path = "print_steps_test.rs"]
     mod print_steps_test;
     
     use crate::execution_plan::create as create_execution_plan;
    @@ -135,7 +137,7 @@
     }
     
     fn get_format_type(output_format: &str) -> PrintFormat {
    -    if output_format == "short-description" {
    +    if output_format == "short-description" {
             PrintFormat::ShortDescription
         } else {
             PrintFormat::Default
    @@ -148,16 +150,16 @@
             let task = &step.config;
             let description = match &task.description {
                 Some(value) => value,
    -            None => "no description",
    +            None => "no description",
             };
    -        println!("{}. {} - {}", counter, &step.name, &description);
    +        println!("{}. {} - {}", counter, &step.name, &description);
     
             counter = counter + 1;
         }
     }
     
     fn print_default(execution_plan: &ExecutionPlan) {
    -    println!("{:#?}", &execution_plan);
    +    println!("{:#?}", &execution_plan);
     }
     
     /// Only prints the execution plan
    @@ -173,7 +175,7 @@
             Some(ref pattern) => match Regex::new(pattern) {
                 Ok(reg) => Some(reg),
                 Err(_) => {
    -                warn!("Invalid skip tasks pattern provided: {}", pattern);
    +                warn!("Invalid skip tasks pattern provided: {}", pattern);
                     None
                 }
             },
    @@ -189,7 +191,7 @@
             false,
             &skip_tasks_pattern_regex,
         );
    -    debug!("Created execution plan: {:#?}", &execution_plan);
    +    debug!("Created execution plan: {:#?}", &execution_plan);
     
         let print_format = get_format_type(&output_format);
     
    diff --git a/docs/api/src/cli/cli_parser.rs.html b/docs/api/src/cli/cli_parser.rs.html
    index 8b195d811..883ac274a 100644
    --- a/docs/api/src/cli/cli_parser.rs.html
    +++ b/docs/api/src/cli/cli_parser.rs.html
    @@ -1,4 +1,6 @@
    -cli_parser.rs - source
    1
    +cli_parser.rs - source
    +    
    1
     2
     3
     4
    @@ -526,7 +528,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "cli_parser_test.rs"]
    +#[path = "cli_parser_test.rs"]
     mod cli_parser_test;
     
     use crate::cli::{
    @@ -542,7 +544,7 @@
     
     #[cfg(test)]
     fn exit() -> ! {
    -    panic!("{}", "exit test");
    +    panic!("{}", "exit test");
     }
     
     #[cfg(not(test))]
    @@ -562,35 +564,35 @@
         let mut cli_args = CliArgs::new();
     
         cli_args.command = if sub_command {
    -        let mut binary = "cargo ".to_string();
    +        let mut binary = "cargo ".to_string();
             binary.push_str(command_name);
             binary
         } else {
             command_name.to_string()
         };
     
    -    cli_args.env = to_owned_vec(cli_parsed.argument_values.get("env"));
    +    cli_args.env = to_owned_vec(cli_parsed.argument_values.get("env"));
     
    -    cli_args.build_file = match cli_parsed.get_first_value("makefile") {
    +    cli_args.build_file = match cli_parsed.get_first_value("makefile") {
             Some(value) => Some(value),
             None => None,
         };
     
    -    cli_args.cwd = cli_parsed.get_first_value("cwd");
    +    cli_args.cwd = cli_parsed.get_first_value("cwd");
     
         let default_log_level = match global_config.log_level {
             Some(ref value) => value.to_string(),
             None => DEFAULT_LOG_LEVEL.to_string(),
         };
    -    cli_args.log_level = if cli_parsed.arguments.contains("verbose") {
    -        "verbose".to_string()
    -    } else if cli_parsed.arguments.contains("quiet") {
    -        "error".to_string()
    -    } else if cli_parsed.arguments.contains("silent") {
    -        "off".to_string()
    +    cli_args.log_level = if cli_parsed.arguments.contains("verbose") {
    +        "verbose".to_string()
    +    } else if cli_parsed.arguments.contains("quiet") {
    +        "error".to_string()
    +    } else if cli_parsed.arguments.contains("silent") {
    +        "off".to_string()
         } else {
             cli_parsed
    -            .get_first_value("loglevel")
    +            .get_first_value("loglevel")
                 .unwrap_or(default_log_level)
                 .to_string()
         };
    @@ -599,50 +601,50 @@
             Some(value) => value,
             None => false,
         };
    -    cli_args.disable_color = cli_parsed.arguments.contains("no-color")
    -        || envmnt::is("CARGO_MAKE_DISABLE_COLOR")
    +    cli_args.disable_color = cli_parsed.arguments.contains("no-color")
    +        || envmnt::is("CARGO_MAKE_DISABLE_COLOR")
             || default_disable_color;
     
    -    cli_args.print_time_summary = cli_parsed.arguments.contains("time-summary")
    -        || envmnt::is("CARGO_MAKE_PRINT_TIME_SUMMARY");
    +    cli_args.print_time_summary = cli_parsed.arguments.contains("time-summary")
    +        || envmnt::is("CARGO_MAKE_PRINT_TIME_SUMMARY");
     
    -    cli_args.env_file = match cli_parsed.get_first_value("envfile") {
    +    cli_args.env_file = match cli_parsed.get_first_value("envfile") {
             Some(value) => Some(value.to_string()),
             None => None,
         };
     
         cli_args.output_format = cli_parsed
    -        .get_first_value("output-format")
    +        .get_first_value("output-format")
             .unwrap_or(DEFAULT_OUTPUT_FORMAT.to_string())
             .to_string();
     
    -    cli_args.list_category_steps = match cli_parsed.get_first_value("list-category-steps") {
    +    cli_args.list_category_steps = match cli_parsed.get_first_value("list-category-steps") {
             Some(value) => Some(value.to_string()),
             None => None,
         };
     
    -    cli_args.output_file = match cli_parsed.get_first_value("output-file") {
    +    cli_args.output_file = match cli_parsed.get_first_value("output-file") {
             Some(value) => Some(value.to_string()),
             None => None,
         };
     
         let profile_name = cli_parsed
    -        .get_first_value("profile")
    +        .get_first_value("profile")
             .unwrap_or_else(profile::default_profile);
         cli_args.profile = Some(profile_name.to_string());
     
    -    cli_args.disable_check_for_updates = cli_parsed.arguments.contains("disable-check-for-updates");
    -    cli_args.experimental = cli_parsed.arguments.contains("experimental");
    -    cli_args.print_only = cli_parsed.arguments.contains("print-steps");
    -    cli_args.disable_workspace = cli_parsed.arguments.contains("no-workspace");
    -    cli_args.disable_on_error = cli_parsed.arguments.contains("no-on-error");
    -    cli_args.allow_private = cli_parsed.arguments.contains("allow-private");
    -    cli_args.skip_init_end_tasks = cli_parsed.arguments.contains("skip-init-end-tasks");
    -    cli_args.list_all_steps = cli_parsed.arguments.contains("list-steps");
    -    cli_args.diff_execution_plan = cli_parsed.arguments.contains("diff-steps");
    -    cli_args.hide_uninteresting = cli_parsed.arguments.contains("hide-uninteresting");
    +    cli_args.disable_check_for_updates = cli_parsed.arguments.contains("disable-check-for-updates");
    +    cli_args.experimental = cli_parsed.arguments.contains("experimental");
    +    cli_args.print_only = cli_parsed.arguments.contains("print-steps");
    +    cli_args.disable_workspace = cli_parsed.arguments.contains("no-workspace");
    +    cli_args.disable_on_error = cli_parsed.arguments.contains("no-on-error");
    +    cli_args.allow_private = cli_parsed.arguments.contains("allow-private");
    +    cli_args.skip_init_end_tasks = cli_parsed.arguments.contains("skip-init-end-tasks");
    +    cli_args.list_all_steps = cli_parsed.arguments.contains("list-steps");
    +    cli_args.diff_execution_plan = cli_parsed.arguments.contains("diff-steps");
    +    cli_args.hide_uninteresting = cli_parsed.arguments.contains("hide-uninteresting");
     
    -    cli_args.skip_tasks_pattern = match cli_parsed.get_first_value("skip-tasks-pattern") {
    +    cli_args.skip_tasks_pattern = match cli_parsed.get_first_value("skip-tasks-pattern") {
             Some(value) => Some(value.to_string()),
             None => None,
         };
    @@ -652,9 +654,9 @@
             None => DEFAULT_TASK_NAME.to_string(),
         };
         let task = cli_parsed
    -        .get_first_value("task")
    +        .get_first_value("task")
             .unwrap_or(default_task_name);
    -    let task_cmd = to_owned_vec(cli_parsed.argument_values.get("TASK_CMD")).unwrap_or(vec![]);
    +    let task_cmd = to_owned_vec(cli_parsed.argument_values.get("TASK_CMD")).unwrap_or(vec![]);
         let task_cmd_slice = task_cmd.as_slice();
         let (task, arguments) = match task_cmd_slice {
             &[] => (task, None),
    @@ -686,305 +688,305 @@
                 author: Some(AUTHOR.to_string()),
                 version: Some(VERSION.to_string()),
                 description: Some(DESCRIPTION.to_string()),
    -            project: Some("cargo-make".to_string()),
    +            project: Some("cargo-make".to_string()),
                 help_post_text: Some(
    -                "See more info at: https://github.com/sagiegurari/cargo-make".to_string(),
    +                "See more info at: https://github.com/sagiegurari/cargo-make".to_string(),
                 ),
             }))
    -        .add_command("makers")
    -        .add_subcommand(vec!["cargo", "make"])
    -        .add_subcommand(vec!["cargo-make", "make"]) // done by cargo
    +        .add_command("makers")
    +        .add_subcommand(vec!["cargo", "make"])
    +        .add_subcommand(vec!["cargo-make", "make"]) // done by cargo
             .add_argument(Argument {
    -            name: "help".to_string(),
    -            key: vec!["--help".to_string(), "-h".to_string()],
    +            name: "help".to_string(),
    +            key: vec!["--help".to_string(), "-h".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
    -            help: Some(ArgumentHelp::Text("Print help information".to_string())),
    +            help: Some(ArgumentHelp::Text("Print help information".to_string())),
             })
             .add_argument(Argument {
    -            name: "version".to_string(),
    -            key: vec!["--version".to_string(), "-V".to_string()],
    +            name: "version".to_string(),
    +            key: vec!["--version".to_string(), "-V".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
    -            help: Some(ArgumentHelp::Text("Print version information".to_string())),
    +            help: Some(ArgumentHelp::Text("Print version information".to_string())),
             })
             .add_argument(Argument {
    -            name: "makefile".to_string(),
    -            key: vec!["--makefile".to_string()],
    +            name: "makefile".to_string(),
    +            key: vec!["--makefile".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: None,
                 help: Some(ArgumentHelp::TextAndParam(
    -                "The optional toml file containing the tasks definitions".to_string(),
    -                "FILE".to_string(),
    +                "The optional toml file containing the tasks definitions".to_string(),
    +                "FILE".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "task".to_string(),
    -            key: vec!["--task".to_string(), "-t".to_string()],
    +            name: "task".to_string(),
    +            key: vec!["--task".to_string(), "-t".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: Some(default_task_name.to_string()),
                 help: Some(ArgumentHelp::TextAndParam(
    -                "The task name to execute (can omit the flag if the task name is the last argument)".to_string(),
    -                "TASK".to_string(),
    +                "The task name to execute (can omit the flag if the task name is the last argument)".to_string(),
    +                "TASK".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "profile".to_string(),
    -            key: vec!["--profile".to_string(), "-p".to_string()],
    +            name: "profile".to_string(),
    +            key: vec!["--profile".to_string(), "-p".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: Some(profile::default_profile()),
                 help: Some(ArgumentHelp::TextAndParam(
    -                "The profile name (will be converted to lower case)".to_string(),
    -                "PROFILE".to_string(),
    +                "The profile name (will be converted to lower case)".to_string(),
    +                "PROFILE".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "cwd".to_string(),
    -            key: vec!["--cwd".to_string()],
    +            name: "cwd".to_string(),
    +            key: vec!["--cwd".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: None,
                 help: Some(ArgumentHelp::TextAndParam(
    -                "Will set the current working directory. The search for the makefile will be from this directory if defined.".to_string(),
    -                "DIRECTORY".to_string(),
    +                "Will set the current working directory. The search for the makefile will be from this directory if defined.".to_string(),
    +                "DIRECTORY".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "no-workspace".to_string(),
    -            key: vec!["--no-workspace".to_string()],
    +            name: "no-workspace".to_string(),
    +            key: vec!["--no-workspace".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Disable workspace support (tasks are triggered on workspace and not on members)".to_string(),
    +                "Disable workspace support (tasks are triggered on workspace and not on members)".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "no-on-error".to_string(),
    -            key: vec!["--no-on-error".to_string()],
    +            name: "no-on-error".to_string(),
    +            key: vec!["--no-on-error".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Disable on error flow even if defined in config sections".to_string(),
    +                "Disable on error flow even if defined in config sections".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "allow-private".to_string(),
    -            key: vec!["--allow-private".to_string()],
    +            name: "allow-private".to_string(),
    +            key: vec!["--allow-private".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Allow invocation of private tasks".to_string(),
    +                "Allow invocation of private tasks".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "skip-init-end-tasks".to_string(),
    -            key: vec!["--skip-init-end-tasks".to_string()],
    +            name: "skip-init-end-tasks".to_string(),
    +            key: vec!["--skip-init-end-tasks".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "If set, init and end tasks are skipped".to_string(),
    +                "If set, init and end tasks are skipped".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "skip-tasks-pattern".to_string(),
    -            key: vec!["--skip-tasks".to_string()],
    +            name: "skip-tasks-pattern".to_string(),
    +            key: vec!["--skip-tasks".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: None,
                 help: Some(ArgumentHelp::TextAndParam(
    -                "Skip all tasks that match the provided regex (example: pre.*|post.*)".to_string(),
    -                "SKIP_TASK_PATTERNS".to_string(),
    +                "Skip all tasks that match the provided regex (example: pre.*|post.*)".to_string(),
    +                "SKIP_TASK_PATTERNS".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "envfile".to_string(),
    -            key: vec!["--env-file".to_string()],
    +            name: "envfile".to_string(),
    +            key: vec!["--env-file".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: None,
                 help: Some(ArgumentHelp::TextAndParam(
    -                "Set environment variables from provided file".to_string(),
    -                "FILE".to_string(),
    +                "Set environment variables from provided file".to_string(),
    +                "FILE".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "env".to_string(),
    -            key: vec!["--env".to_string(), "-e".to_string()],
    +            name: "env".to_string(),
    +            key: vec!["--env".to_string(), "-e".to_string()],
                 argument_occurrence: ArgumentOccurrence::Multiple,
                 value_type: ArgumentValueType::Single,
                 default_value: None,
                 help: Some(ArgumentHelp::TextAndParam(
    -                "Set environment variables".to_string(),
    -                "ENV".to_string(),
    +                "Set environment variables".to_string(),
    +                "ENV".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "loglevel".to_string(),
    -            key: vec!["--loglevel".to_string(), "-l".to_string()],
    +            name: "loglevel".to_string(),
    +            key: vec!["--loglevel".to_string(), "-l".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: Some(default_log_level.to_string()),
                 help: Some(ArgumentHelp::TextAndParam(
    -                "The log level (verbose, info, error, off)".to_string(),
    -                "LOG LEVEL".to_string(),
    +                "The log level (verbose, info, error, off)".to_string(),
    +                "LOG LEVEL".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "verbose".to_string(),
    -            key: vec!["--verbose".to_string(), "-v".to_string()],
    +            name: "verbose".to_string(),
    +            key: vec!["--verbose".to_string(), "-v".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Sets the log level to verbose (shorthand for --loglevel verbose)".to_string(),
    +                "Sets the log level to verbose (shorthand for --loglevel verbose)".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "quiet".to_string(),
    -            key: vec!["--quiet".to_string()],
    +            name: "quiet".to_string(),
    +            key: vec!["--quiet".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Sets the log level to error (shorthand for --loglevel error)".to_string(),
    +                "Sets the log level to error (shorthand for --loglevel error)".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "silent".to_string(),
    -            key: vec!["--silent".to_string()],
    +            name: "silent".to_string(),
    +            key: vec!["--silent".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Sets the log level to off (shorthand for --loglevel off)".to_string(),
    +                "Sets the log level to off (shorthand for --loglevel off)".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "no-color".to_string(),
    -            key: vec!["--no-color".to_string()],
    +            name: "no-color".to_string(),
    +            key: vec!["--no-color".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Disables colorful output".to_string(),
    +                "Disables colorful output".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "time-summary".to_string(),
    -            key: vec!["--time-summary".to_string()],
    +            name: "time-summary".to_string(),
    +            key: vec!["--time-summary".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Print task level time summary at end of flow".to_string(),
    +                "Print task level time summary at end of flow".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "experimental".to_string(),
    -            key: vec!["--experimental".to_string()],
    +            name: "experimental".to_string(),
    +            key: vec!["--experimental".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Allows access unsupported experimental predefined tasks.".to_string(),
    +                "Allows access unsupported experimental predefined tasks.".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "disable-check-for-updates".to_string(),
    -            key: vec!["--disable-check-for-updates".to_string()],
    +            name: "disable-check-for-updates".to_string(),
    +            key: vec!["--disable-check-for-updates".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Disables the update check during startup".to_string(),
    +                "Disables the update check during startup".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "output-format".to_string(),
    -            key: vec!["--output-format".to_string()],
    +            name: "output-format".to_string(),
    +            key: vec!["--output-format".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: None,
                 help: Some(ArgumentHelp::TextAndParam(
    -                "The print/list steps format (some operations do not support all formats) (default, short-description, markdown, markdown-single-page, markdown-sub-section, autocomplete)".to_string(),
    -                "OUTPUT FORMAT".to_string(),
    +                "The print/list steps format (some operations do not support all formats) (default, short-description, markdown, markdown-single-page, markdown-sub-section, autocomplete)".to_string(),
    +                "OUTPUT FORMAT".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "output-file".to_string(),
    -            key: vec!["--output-file".to_string()],
    +            name: "output-file".to_string(),
    +            key: vec!["--output-file".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: None,
                 help: Some(ArgumentHelp::TextAndParam(
    -                "The list steps output file name".to_string(),
    -                "OUTPUT_FILE".to_string(),
    +                "The list steps output file name".to_string(),
    +                "OUTPUT_FILE".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "hide-uninteresting".to_string(),
    -            key: vec!["--hide-uninteresting".to_string()],
    +            name: "hide-uninteresting".to_string(),
    +            key: vec!["--hide-uninteresting".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Hide any minor tasks such as pre/post hooks.".to_string(),
    +                "Hide any minor tasks such as pre/post hooks.".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "print-steps".to_string(),
    -            key: vec!["--print-steps".to_string()],
    +            name: "print-steps".to_string(),
    +            key: vec!["--print-steps".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Only prints the steps of the build in the order they will be invoked but without invoking them".to_string(),
    +                "Only prints the steps of the build in the order they will be invoked but without invoking them".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "list-steps".to_string(),
    -            key: vec!["--list-all-steps".to_string()],
    +            name: "list-steps".to_string(),
    +            key: vec!["--list-all-steps".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Lists all known steps".to_string(),
    +                "Lists all known steps".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "list-category-steps".to_string(),
    -            key: vec!["--list-category-steps".to_string()],
    +            name: "list-category-steps".to_string(),
    +            key: vec!["--list-category-steps".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::Single,
                 default_value: None,
                 help: Some(ArgumentHelp::TextAndParam(
    -                "List steps for a given category".to_string(),
    -                "CATEGORY".to_string(),
    +                "List steps for a given category".to_string(),
    +                "CATEGORY".to_string(),
                 )),
             })
             .add_argument(Argument {
    -            name: "diff-steps".to_string(),
    -            key: vec!["--diff-steps".to_string()],
    +            name: "diff-steps".to_string(),
    +            key: vec!["--diff-steps".to_string()],
                 argument_occurrence: ArgumentOccurrence::Single,
                 value_type: ArgumentValueType::None,
                 default_value: None,
                 help: Some(ArgumentHelp::Text(
    -                "Runs diff between custom flow and prebuilt flow (requires git)".to_string(),
    +                "Runs diff between custom flow and prebuilt flow (requires git)".to_string(),
                 )),
             })
             .set_positional_argument(Some(PositionalArgument {
    -            name: "TASK_CMD".to_string(),
    +            name: "TASK_CMD".to_string(),
                 help: Some(ArgumentHelp::Text(
    -                "The task to execute, potentially including arguments which can be accessed in the task itself.".to_string(),
    +                "The task to execute, potentially including arguments which can be accessed in the task itself.".to_string(),
                 )),
             }));
     
    @@ -1006,15 +1008,15 @@
     
         match parse_result {
             Ok(cli_parsed) => {
    -            if cli_parsed.arguments.contains("help") {
    +            if cli_parsed.arguments.contains("help") {
                     // generate help text
                     let help_text = cliparser::help(&spec);
    -                println!("{}", help_text);
    +                println!("{}", help_text);
                     exit();
    -            } else if cli_parsed.arguments.contains("version") {
    +            } else if cli_parsed.arguments.contains("version") {
                     // generate version text
                     let version_text = cliparser::version(&spec);
    -                println!("{}", version_text);
    +                println!("{}", version_text);
                     exit();
                 }
     
    @@ -1022,7 +1024,7 @@
             }
             Err(error) => {
                 let help_text = cliparser::help(&spec);
    -            println!("{}\n{}", &error, help_text);
    +            println!("{}\n{}", &error, help_text);
                 exit();
             }
         }
    diff --git a/docs/api/src/cli/command.rs.html b/docs/api/src/cli/command.rs.html
    index 6661e6d55..c3575d48b 100644
    --- a/docs/api/src/cli/command.rs.html
    +++ b/docs/api/src/cli/command.rs.html
    @@ -1,4 +1,6 @@
    -command.rs - source
    1
    +command.rs - source
    +    
    1
     2
     3
     4
    @@ -320,7 +322,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "command_test.rs"]
    +#[path = "command_test.rs"]
     mod command_test;
     
     use crate::logger;
    @@ -350,7 +352,7 @@
             }
             Err(error) => {
                 if !force {
    -                error!("Error while executing command, error: {:#?}", error);
    +                error!("Error while executing command, error: {:#?}", error);
                 }
     
                 -1
    @@ -363,7 +365,7 @@
             &Ok(ref output_struct) => get_exit_code(Ok(output_struct.status), force),
             &Err(ref error) => {
                 if !force {
    -                error!("Error while executing command, error: {:#?}", error);
    +                error!("Error while executing command, error: {:#?}", error);
                 }
     
                 -1
    @@ -374,9 +376,9 @@
     /// Validates the exit code code and if not 0 or unable to validate it, panic.
     pub(crate) fn validate_exit_code(code: i32) {
         if code == -1 {
    -        error!("Error while executing command, unable to extract exit code.");
    +        error!("Error while executing command, unable to extract exit code.");
         } else if code != 0 {
    -        error!("Error while executing command, exit code: {}", code);
    +        error!("Error while executing command, exit code: {}", code);
         }
     }
     
    @@ -408,7 +410,7 @@
                     // if log level defaults to not printing the script commands
                     // we also check if we are running in a CI env.
                     // Users will not see the commands while CI builds will have the commands printed out.
    -                envmnt::is("CARGO_MAKE_CI")
    +                envmnt::is("CARGO_MAKE_CI")
                 }
             }
         }
    @@ -450,11 +452,11 @@
         if is_silent() {
             options.output_redirection = IoOptions::Pipe;
             options.print_commands = false;
    -    } else if !capture_output && envmnt::is("CARGO_MAKE_SCRIPT_FORCE_PIPE_STDIN") {
    +    } else if !capture_output && envmnt::is("CARGO_MAKE_SCRIPT_FORCE_PIPE_STDIN") {
             options.input_redirection = IoOptions::Pipe;
         }
     
    -    run_script::run(script_lines.join("\n").as_str(), cli_arguments, &options)
    +    run_script::run(script_lines.join("\n").as_str(), cli_arguments, &options)
     }
     
     /// Runs the requested script text and panics in case of any script error.
    @@ -487,14 +489,14 @@
         let ctrl_c_handling = UnstableFeature::CtrlCHandling.is_env_set();
         let silent = is_silent();
     
    -    debug!("Execute Command: {}", &command_string);
    +    debug!("Execute Command: {}", &command_string);
         let mut command = Command::new(&command_string);
     
         match *args {
             Some(ref args_vec) => {
                 command.args(args_vec);
             }
    -        None => debug!("No command args defined."),
    +        None => debug!("No command args defined."),
         };
     
         command.stdin(Stdio::inherit());
    @@ -509,7 +511,7 @@
             command.stdout(Stdio::inherit()).stderr(Stdio::inherit());
         }
     
    -    info!("Execute Command: {:?}", &command);
    +    info!("Execute Command: {:?}", &command);
     
         let output = if ctrl_c_handling {
             spawn_command(command)
    @@ -517,7 +519,7 @@
             command.output()
         };
     
    -    debug!("Output: {:#?}", &output);
    +    debug!("Output: {:#?}", &output);
     
         output
     }
    @@ -529,16 +531,16 @@
         SET_CTRL_C_HANDLER_ONCE.call_once(|| {
             ctrlc::set_handler(|| {
                 if CTRL_C_COUNT.fetch_add(1, Ordering::SeqCst) == 0 {
    -                info!("Shutting down...");
    +                info!("Shutting down...");
                 }
             })
    -        .expect("Failed to set Ctrl+C handler.");
    +        .expect("Failed to set Ctrl+C handler.");
         });
     
         if CTRL_C_COUNT.load(Ordering::Relaxed) != 0 {
             Err(Error::new(
                 ErrorKind::Other,
    -            "Shutting down - cannot run the command.",
    +            "Shutting down - cannot run the command.",
             ))?;
         }
     
    @@ -627,7 +629,7 @@
     
                 run_command(&command_spec.command, &command_spec.args, validate);
             }
    -        None => debug!("No command defined."),
    +        None => debug!("No command defined."),
         };
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/condition.rs.html b/docs/api/src/cli/condition.rs.html index ce0bedf37..86dcc963a 100644 --- a/docs/api/src/cli/condition.rs.html +++ b/docs/api/src/cli/condition.rs.html @@ -1,4 +1,6 @@ -condition.rs - source
    1
    +condition.rs - source
    +    
    1
     2
     3
     4
    @@ -479,7 +481,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "condition_test.rs"]
    +#[path = "condition_test.rs"]
     mod condition_test;
     
     use crate::command;
    @@ -595,12 +597,12 @@
         let os = condition.os.clone();
         match os {
             Some(os_names) => {
    -            let os_name = envmnt::get_or("CARGO_MAKE_RUST_TARGET_OS", "");
    +            let os_name = envmnt::get_or("CARGO_MAKE_RUST_TARGET_OS", "");
                 let index = os_names.iter().position(|value| *value == os_name);
     
                 match index {
                     None => {
    -                    debug!("Failed OS condition, current OS: {}", &os_name);
    +                    debug!("Failed OS condition, current OS: {}", &os_name);
                         false
                     }
                     _ => true,
    @@ -623,7 +625,7 @@
                 match index {
                     None => {
                         debug!(
    -                        "Failed platform condition, current platform: {}",
    +                        "Failed platform condition, current platform: {}",
                             &platform_name
                         );
                         false
    @@ -648,7 +650,7 @@
                 match index {
                     None => {
                         debug!(
    -                        "Failed profile condition, current profile: {}",
    +                        "Failed profile condition, current profile: {}",
                             &profile_name
                         );
                         false
    @@ -670,18 +672,18 @@
                             let index = match value {
                                 RustChannel::Stable => channel_names
                                     .iter()
    -                                .position(|value| *value == "stable".to_string()),
    +                                .position(|value| *value == "stable".to_string()),
                                 RustChannel::Beta => channel_names
                                     .iter()
    -                                .position(|value| *value == "beta".to_string()),
    +                                .position(|value| *value == "beta".to_string()),
                                 RustChannel::Nightly => channel_names
                                     .iter()
    -                                .position(|value| *value == "nightly".to_string()),
    +                                .position(|value| *value == "nightly".to_string()),
                             };
     
                             match index {
                                 None => {
    -                                debug!("Failed channel condition");
    +                                debug!("Failed channel condition");
                                     false
                                 }
                                 _ => true,
    @@ -797,7 +799,7 @@
                                                 }
                                                 Err(error) => {
                                                     error!(
    -                                            "Unable to extract last modified time for path: {} {:#?}",
    +                                            "Unable to extract last modified time for path: {} {:#?}",
                                                 &value_string, &error
                                             )
                                                 }
    @@ -806,7 +808,7 @@
                                     }
                                     Err(error) => {
                                         error!(
    -                                        "Unable to process paths for glob: {} {:#?}",
    +                                        "Unable to process paths for glob: {} {:#?}",
                                             &glob_pattern, &error
                                         )
                                     }
    @@ -815,7 +817,7 @@
                         }
                         Err(error) => {
                             error!(
    -                            "Unable to fetch paths for glob: {} {:#?}",
    +                            "Unable to fetch paths for glob: {} {:#?}",
                                 &glob_pattern, &error
                             )
                         }
    @@ -847,7 +849,7 @@
                                                     }
                                                     Err(error) => {
                                                         error!(
    -                                            "Unable to extract last modified time for path: {} {:#?}",
    +                                            "Unable to extract last modified time for path: {} {:#?}",
                                                 &value_string, &error
                                             )
                                                     }
    @@ -856,7 +858,7 @@
                                         }
                                         Err(error) => {
                                             error!(
    -                                            "Unable to process paths for glob: {} {:#?}",
    +                                            "Unable to process paths for glob: {} {:#?}",
                                                 &glob_pattern, &error
                                             )
                                         }
    @@ -864,12 +866,12 @@
                                 }
     
                                 if !paths_found {
    -                                error!("Unable to find input files for pattern: {}", &glob_pattern);
    +                                error!("Unable to find input files for pattern: {}", &glob_pattern);
                                 }
                             }
                             Err(error) => {
                                 error!(
    -                                "Unable to fetch paths for glob: {} {:#?}",
    +                                "Unable to fetch paths for glob: {} {:#?}",
                                     &glob_pattern, &error
                                 )
                             }
    @@ -887,7 +889,7 @@
     fn validate_criteria(flow_info: Option<&FlowInfo>, condition: &Option<TaskCondition>) -> bool {
         match condition {
             Some(ref condition_struct) => {
    -            debug!("Checking task condition structure.");
    +            debug!("Checking task condition structure.");
     
                 validate_os(&condition_struct)
                     && validate_platform(&condition_struct)
    @@ -911,7 +913,7 @@
     fn validate_script(condition_script: &Option<Vec<String>>, script_runner: Option<String>) -> bool {
         match condition_script {
             Some(ref script) => {
    -            debug!("Checking task condition script.");
    +            debug!("Checking task condition script.");
     
                 let exit_code =
                     command::run_script_get_exit_code(&script, script_runner, &vec![], false);
    diff --git a/docs/api/src/cli/config.rs.html b/docs/api/src/cli/config.rs.html
    index a57353167..d641a4a6d 100644
    --- a/docs/api/src/cli/config.rs.html
    +++ b/docs/api/src/cli/config.rs.html
    @@ -1,4 +1,6 @@
    -config.rs - source
    1
    +config.rs - source
    +    
    1
     2
     3
     4
    @@ -61,7 +63,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "config_test.rs"]
    +#[path = "config_test.rs"]
     mod config_test;
     
     use crate::storage;
    @@ -72,7 +74,7 @@
     use std::path::{Path, PathBuf};
     use toml;
     
    -static CONFIG_FILE: &'static str = "config.toml";
    +static CONFIG_FILE: &'static str = "config.toml";
     
     fn get_config_directory() -> Option<PathBuf> {
         let os_directory = dirs_next::config_dir();
    @@ -81,14 +83,14 @@
     
     fn load_from_path(directory: PathBuf) -> GlobalConfig {
         let file_path = Path::new(&directory).join(CONFIG_FILE);
    -    debug!("Loading config from: {:#?}", &file_path);
    +    debug!("Loading config from: {:#?}", &file_path);
     
         if file_path.exists() {
             match read_text_file(&file_path) {
                 Ok(config_str) => {
                     let mut global_config: GlobalConfig = match toml::from_str(&config_str) {
                         Ok(value) => value,
    -                    Err(error) => panic!("Unable to parse global configuration file, {}", error),
    +                    Err(error) => panic!("Unable to parse global configuration file, {}", error),
                     };
     
                     global_config.file_name = Some(FromPath::from_path(&file_path));
    @@ -96,7 +98,7 @@
                     global_config
                 }
                 Err(error) => panic!(
    -                "Unable to read config file: {:?} error: {}",
    +                "Unable to read config file: {:?} error: {}",
                     &file_path, error
                 ),
             }
    diff --git a/docs/api/src/cli/descriptor/cargo_alias.rs.html b/docs/api/src/cli/descriptor/cargo_alias.rs.html
    index a1e2892e5..25ad4455c 100644
    --- a/docs/api/src/cli/descriptor/cargo_alias.rs.html
    +++ b/docs/api/src/cli/descriptor/cargo_alias.rs.html
    @@ -1,4 +1,6 @@
    -cargo_alias.rs - source
    1
    +cargo_alias.rs - source
    +    
    1
     2
     3
     4
    @@ -69,7 +71,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "cargo_alias_test.rs"]
    +#[path = "cargo_alias_test.rs"]
     mod cargo_alias_test;
     
     use crate::io;
    @@ -101,7 +103,7 @@
                     let cargo_config: CargoConfig = match toml::from_str(&text) {
                         Ok(value) => value,
                         Err(error) => {
    -                        warn!("Unable to parse cargo config file, {}", error);
    +                        warn!("Unable to parse cargo config file, {}", error);
                             CargoConfig { alias: None }
                         }
                     };
    @@ -109,7 +111,7 @@
                     if let Some(aliases) = cargo_config.alias {
                         for (key, _value) in aliases {
                             let mut task = Task::new();
    -                        task.command = Some("cargo".to_string());
    +                        task.command = Some("cargo".to_string());
                             task.args = Some(vec![key.to_string()]);
                             task.install_crate = Some(InstallCrate::Enabled(false));
     
    @@ -118,7 +120,7 @@
                     }
                 }
             } else {
    -            error!("Invalid config file path provided: {}", &file);
    +            error!("Invalid config file path provided: {}", &file);
             }
         }
     
    @@ -126,6 +128,6 @@
     }
     
     pub(crate) fn load() -> Vec<(String, Task)> {
    -    load_from_file("./.cargo/config.toml")
    +    load_from_file("./.cargo/config.toml")
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/descriptor/descriptor_deserializer.rs.html b/docs/api/src/cli/descriptor/descriptor_deserializer.rs.html index 446d4941c..501e341f3 100644 --- a/docs/api/src/cli/descriptor/descriptor_deserializer.rs.html +++ b/docs/api/src/cli/descriptor/descriptor_deserializer.rs.html @@ -1,4 +1,6 @@ -descriptor_deserializer.rs - source
    1
    +descriptor_deserializer.rs - source
    +    
    1
     2
     3
     4
    @@ -56,7 +58,7 @@
     //! Deserializes and validates the configs.
     
     #[cfg(test)]
    -#[path = "descriptor_deserializer_test.rs"]
    +#[path = "descriptor_deserializer_test.rs"]
     mod descriptor_deserializer_test;
     
     use crate::types::{Config, ExternalConfig};
    @@ -68,20 +70,20 @@
             let deserializer = toml::de::Deserializer::new(descriptor_string);
     
             match serde_ignored::deserialize(deserializer, |path| {
    -            error!("Found unknown key: {}", path);
    +            error!("Found unknown key: {}", path);
             }) {
                 Ok(value) => value,
                 Err(error) => {
    -                error!("Unable to parse internal descriptor: {}", error);
    -                panic!("Unable to parse internal descriptor: {}", error);
    +                error!("Unable to parse internal descriptor: {}", error);
    +                panic!("Unable to parse internal descriptor: {}", error);
                 }
             }
         } else {
             match toml::from_str(descriptor_string) {
                 Ok(value) => value,
                 Err(error) => {
    -                error!("Unable to parse internal descriptor: {}", error);
    -                panic!("Unable to parse internal descriptor: {}", error);
    +                error!("Unable to parse internal descriptor: {}", error);
    +                panic!("Unable to parse internal descriptor: {}", error);
                 }
             }
         };
    @@ -93,12 +95,12 @@
         let deserializer = toml::de::Deserializer::new(descriptor_string);
     
         let config: ExternalConfig = match serde_ignored::deserialize(deserializer, |path| {
    -        warn!("Found unknown key: {} in file: {}", path, file);
    +        warn!("Found unknown key: {} in file: {}", path, file);
         }) {
             Ok(value) => value,
             Err(error) => {
    -            error!("Unable to parse external file: {:#?}, {}", &file, error);
    -            panic!("Unable to parse external file: {:#?}, {}", &file, error);
    +            error!("Unable to parse external file: {:#?}, {}", &file, error);
    +            panic!("Unable to parse external file: {:#?}, {}", &file, error);
             }
         };
     
    diff --git a/docs/api/src/cli/descriptor/env.rs.html b/docs/api/src/cli/descriptor/env.rs.html
    index b1b0407e2..8f26237ac 100644
    --- a/docs/api/src/cli/descriptor/env.rs.html
    +++ b/docs/api/src/cli/descriptor/env.rs.html
    @@ -1,4 +1,6 @@
    -env.rs - source
    1
    +env.rs - source
    +    
    1
     2
     3
     4
    @@ -235,12 +237,12 @@
     use regex::Regex;
     
     #[cfg(test)]
    -#[path = "env_test.rs"]
    +#[path = "env_test.rs"]
     mod env_test;
     
    -static RE_VARIABLE: Lazy<Regex> = Lazy::new(|| Regex::new(r"\$\{.*?}").unwrap());
    +static RE_VARIABLE: Lazy<Regex> = Lazy::new(|| Regex::new(r"\$\{.*?}").unwrap());
     
    -fn env_unique<'a>(vals: &'a [&'a IndexMap<String, EnvValue>]) -> Vec<(&'a str, &'a EnvValue)> {
    +fn env_unique<'a>(vals: &'a [&'a IndexMap<String, EnvValue>]) -> Vec<(&'a str, &'a EnvValue)> {
         let mut visited = IndexSet::new();
         let mut unique = vec![];
     
    @@ -261,12 +263,12 @@
     }
     
     static RE_SH_PARAM: Lazy<Regex> =
    -    Lazy::new(|| Regex::new(r"\$(?:([\w-]+)|\{#?([\w-]+)})").unwrap());
    +    Lazy::new(|| Regex::new(r"\$(?:([\w-]+)|\{#?([\w-]+)})").unwrap());
     
     /// The depends_on for a script is a bit more complicated to find,
     /// this is because it invokes a shell script (`sh`).
     /// This means, that we need to go through the shell script and find all environmental variables
    -/// that are used, but haven't been declared yet.
    +/// that are used, but haven't been declared yet.
     ///
     /// One can also explicitly use a list `depends_on = [...]` to overwrite the existing behavior
     /// for finding all dependencies.
    @@ -274,7 +276,7 @@
     /// This implementation is very conservative, and regardless of the context, will just capture
     /// all environment variables that have been used.
     ///
    -/// A future implementation might further extend this, by looking for `'` usage,
    +/// A future implementation might further extend this, by looking for `'` usage,
     /// `declare` statements of `[declare] name=value`, and then exclude those in the
     /// subsequent analysis.
     ///
    @@ -284,7 +286,7 @@
     /// Chapter 8 Environment Variables:
     ///
     /// > Environment variable names used by the utilities in the Shell and Utilities volume of
    -/// > POSIX.1-2017 consist solely of uppercase letters, digits, and the <underscore> ( '_' )
    +/// > POSIX.1-2017 consist solely of uppercase letters, digits, and the <underscore> ( '_' )
     /// > from the characters defined in Portable Character Set and do not begin with a digit.
     /// > Other characters may be permitted by an implementation;
     /// > applications shall tolerate the presence of such names.
    @@ -377,7 +379,7 @@
             }
         }
     
    -    debug!("env dependencies: {:?}", graph);
    +    debug!("env dependencies: {:?}", graph);
     
         let variables = match toposort(&graph, None) {
             Ok(iter) => iter,
    @@ -387,19 +389,19 @@
                 // In strongly-connected-components every vertex
                 // (node) is reachable from every other node.
                 // This means that there **must** be a cycle.
    -            // This isn't strictly necessary, but aids when debugging.
    +            // This isn't strictly necessary, but aids when debugging.
                 let mut err =
    -                "A cycle between different env variables has been detected (E001, see: https://github.com/sagiegurari/cargo-make#e001 for more information)."
    +                "A cycle between different env variables has been detected (E001, see: https://github.com/sagiegurari/cargo-make#e001 for more information)."
                         .to_owned();
                 for scc in kosaraju_scc(&graph) {
                     let render = scc
                         .iter()
                         .chain(scc.first())
                         .map(ToString::to_string)
    -                    .reduce(|acc, name| format!("{} -> {}", acc, name));
    +                    .reduce(|acc, name| format!("{} -> {}", acc, name));
     
                     if let Some(render) = render {
    -                    err.push_str(&format!(" Cycle: {}.", render));
    +                    err.push_str(&format!(" Cycle: {}.", render));
                     }
                 }
     
    @@ -409,7 +411,7 @@
     
         let mut merge = IndexMap::new();
         for name in variables.into_iter().rev() {
    -        if name.starts_with("CARGO_MAKE_CURRENT_TASK_") {
    +        if name.starts_with("CARGO_MAKE_CURRENT_TASK_") {
                 // CARGO_MAKE_CURRENT_TASK are handled differently and **always**
                 // retain their old value
                 if let Some(value) = base.get(name) {
    diff --git a/docs/api/src/cli/descriptor/makefiles/mod.rs.html b/docs/api/src/cli/descriptor/makefiles/mod.rs.html
    index fc8b8a6f8..481dfbff9 100644
    --- a/docs/api/src/cli/descriptor/makefiles/mod.rs.html
    +++ b/docs/api/src/cli/descriptor/makefiles/mod.rs.html
    @@ -1,4 +1,6 @@
    -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    @@ -26,20 +28,20 @@
     //!
     
     #[cfg(test)]
    -#[path = "mod_test.rs"]
    +#[path = "mod_test.rs"]
     mod mod_test;
     
    -pub(crate) static BASE: &str = include_str!("base.toml");
    +pub(crate) static BASE: &str = include_str!("base.toml");
     pub(crate) static STABLE: &str = concat!(
    -    include_str!("stable.toml"),
    -    include_str!("build-file.toml"),
    -    include_str!("git.toml"),
    -    include_str!("github.toml"),
    -    include_str!("toml.toml"),
    -    include_str!("rust.toml"),
    -    include_str!("rust-coverage.toml"),
    -    include_str!("rust-wasm.toml"),
    -    include_str!("deprecated.toml")
    +    include_str!("stable.toml"),
    +    include_str!("build-file.toml"),
    +    include_str!("git.toml"),
    +    include_str!("github.toml"),
    +    include_str!("toml.toml"),
    +    include_str!("rust.toml"),
    +    include_str!("rust-coverage.toml"),
    +    include_str!("rust-wasm.toml"),
    +    include_str!("deprecated.toml")
     );
    -pub(crate) static BETA: &str = include_str!("beta.toml");
    +pub(crate) static BETA: &str = include_str!("beta.toml");
     
    \ No newline at end of file diff --git a/docs/api/src/cli/descriptor/mod.rs.html b/docs/api/src/cli/descriptor/mod.rs.html index 04d62fa40..befc07371 100644 --- a/docs/api/src/cli/descriptor/mod.rs.html +++ b/docs/api/src/cli/descriptor/mod.rs.html @@ -1,4 +1,6 @@ -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    @@ -649,7 +651,7 @@
     //! the default descriptor.
     
     #[cfg(test)]
    -#[path = "mod_test.rs"]
    +#[path = "mod_test.rs"]
     mod mod_test;
     
     mod cargo_alias;
    @@ -699,9 +701,9 @@
                         let extended_env = task.env.clone().unwrap();
                         let clear = task.clear.clone().unwrap_or(false);
                         if extended_env.len() == 2
    -                        && extended_env.contains_key("CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE")
    +                        && extended_env.contains_key("CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE")
                             && extended_env
    -                            .contains_key("CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY")
    +                            .contains_key("CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY")
                             && !clear
                         {
                             let base_env = value.env.clone().unwrap();
    @@ -727,7 +729,7 @@
         let file_path = file_path_string.as_path();
         let base_directory = match file_path.parent() {
             Some(directory) => FromPath::from_path(directory),
    -        None => "".to_string(),
    +        None => "".to_string(),
         };
     
         match external_config.env_files {
    @@ -766,11 +768,11 @@
                 };
     
                 env.insert(
    -                "CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE".to_string(),
    +                "CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE".to_string(),
                     EnvValue::Value(file_path_string.to_string()),
                 );
                 env.insert(
    -                "CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY".to_string(),
    +                "CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY".to_string(),
                     EnvValue::Value(base_directory.to_string()),
                 );
     
    @@ -792,20 +794,20 @@
     
                 match load_script {
                     Some(ref script) => {
    -                    debug!("Load script found.");
    +                    debug!("Load script found.");
     
                         scriptengine::invoke_script_pre_flow(script, None, None, None, true, &vec![]);
     
                         true
                     }
                     None => {
    -                    debug!("No load script defined.");
    +                    debug!("No load script defined.");
                         false
                     }
                 }
             }
             None => {
    -            debug!("No load script defined.");
    +            debug!("No load script defined.");
                 false
             }
         }
    @@ -862,12 +864,12 @@
         let mut config_section = ConfigSection::new();
         if parent_config.config.is_some() {
             let mut config_section_data = parent_config.config.unwrap();
    -        debug!("Adding parent config section: {:#?}", &config_section_data);
    +        debug!("Adding parent config section: {:#?}", &config_section_data);
             config_section.extend(&mut config_section_data);
         }
         if config.config.is_some() {
             let mut config_section_data = config.config.unwrap();
    -        debug!("Adding config section: {:#?}", &config_section_data);
    +        debug!("Adding config section: {:#?}", &config_section_data);
             config_section.extend(&mut config_section_data);
         }
     
    @@ -915,25 +917,25 @@
         }
     }
     
    -/// Ensure the Makefile's min_version, if present, is older than cargo-make's
    +/// Ensure the Makefile's min_version, if present, is older than cargo-make's
     /// currently running version.
     fn check_makefile_min_version(external_descriptor: &str) -> Result<(), String> {
         let value: toml::Value = match toml::from_str(&external_descriptor) {
             Ok(value) => value,
    -        // If there's an error parsing the file, let the caller function figure
    +        // If there's an error parsing the file, let the caller function figure
             // it out
             Err(_) => return Ok(()),
         };
     
         let min_version = value
    -        .get("config")
    -        .and_then(|config| config.get("min_version"))
    +        .get("config")
    +        .and_then(|config| config.get("min_version"))
             .and_then(|min_ver| min_ver.as_str());
     
         if let Some(ref min_version) = min_version {
             if version::is_newer_found(&min_version) {
                 return Err(format!(
    -                "Unable to run, minimum required version is: {}",
    +                "Unable to run, minimum required version is: {}",
                     &min_version
                 )
                 .to_string());
    @@ -950,7 +952,7 @@
         set_env: bool,
     ) -> Result<ExternalConfig, String> {
         debug!(
    -        "Loading tasks from file: {} base directory: {}",
    +        "Loading tasks from file: {} base directory: {}",
             &file_name, &base_path
         );
     
    @@ -961,7 +963,7 @@
             let absolute_file_path = io::canonicalize_to_string(&file_path_string);
     
             if set_env {
    -            envmnt::set("CARGO_MAKE_MAKEFILE_PATH", &absolute_file_path);
    +            envmnt::set("CARGO_MAKE_MAKEFILE_PATH", &absolute_file_path);
             }
     
             let external_descriptor = io::read_text_file(&file_path);
    @@ -970,7 +972,7 @@
     
             let mut file_config =
                 descriptor_deserializer::load_external_config(&external_descriptor, &file_path_string);
    -        debug!("Loaded external config: {:#?}", &file_config);
    +        debug!("Loaded external config: {:#?}", &file_config);
     
             file_config = add_file_location_info(file_config, &absolute_file_path);
     
    @@ -978,13 +980,13 @@
     
             match file_config.extend {
                 Some(ref extend_struct) => {
    -                let parent_path_buf = Path::new(base_path).join(file_name).join("..");
    +                let parent_path_buf = Path::new(base_path).join(file_name).join("..");
                     let parent_path = file_path
                         .parent()
                         .unwrap_or(&parent_path_buf)
                         .to_str()
    -                    .unwrap_or(".");
    -                debug!("External config parent path: {}", &parent_path);
    +                    .unwrap_or(".");
    +                debug!("External config parent path: {}", &parent_path);
     
                     let base_file_config =
                         load_descriptor_extended_makefiles(&parent_path, extend_struct)?;
    @@ -994,10 +996,10 @@
                 None => Ok(file_config),
             }
         } else if force {
    -        error!("Descriptor file: {:#?} not found.", &file_path);
    -        panic!("Descriptor file: {:#?} not found.", &file_path);
    +        error!("Descriptor file: {:#?} not found.", &file_path);
    +        panic!("Descriptor file: {:#?} not found.", &file_path);
         } else {
    -        debug!("External file not found or is not a file, skipping.");
    +        debug!("External file not found or is not a file, skipping.");
     
             Ok(ExternalConfig::new())
         }
    @@ -1008,7 +1010,7 @@
         experimental: bool,
         modify_config: Option<ModifyConfig>,
     ) -> Config {
    -    debug!("Loading base tasks.");
    +    debug!("Loading base tasks.");
     
         let base_descriptor = if stable {
             makefiles::STABLE
    @@ -1017,15 +1019,15 @@
         };
     
         let mut base_config = descriptor_deserializer::load_config(&base_descriptor, false);
    -    debug!("Loaded base config: {:#?}", &base_config);
    +    debug!("Loaded base config: {:#?}", &base_config);
     
         if experimental {
    -        debug!("Loading experimental tasks.");
    +        debug!("Loading experimental tasks.");
             let experimental_descriptor = makefiles::BETA;
     
             let experimental_config =
                 descriptor_deserializer::load_config(&experimental_descriptor, false);
    -        debug!("Loaded experimental config: {:#?}", &experimental_config);
    +        debug!("Loaded experimental config: {:#?}", &experimental_config);
     
             let mut base_tasks = base_config.tasks;
             let mut experimental_tasks = experimental_config.tasks;
    @@ -1035,8 +1037,8 @@
         }
     
         // reset
    -    envmnt::set("CARGO_MAKE_CORE_TASK_NAMESPACE", "");
    -    envmnt::set("CARGO_MAKE_CORE_TASK_NAMESPACE_PREFIX", "");
    +    envmnt::set("CARGO_MAKE_CORE_TASK_NAMESPACE", "");
    +    envmnt::set("CARGO_MAKE_CORE_TASK_NAMESPACE_PREFIX", "");
     
         match modify_config {
             Some(props) => {
    @@ -1046,8 +1048,8 @@
                     Some(ref namespace) => {
                         let prefix = props.get_namespace_prefix();
     
    -                    envmnt::set("CARGO_MAKE_CORE_TASK_NAMESPACE", &namespace);
    -                    envmnt::set("CARGO_MAKE_CORE_TASK_NAMESPACE_PREFIX", &prefix);
    +                    envmnt::set("CARGO_MAKE_CORE_TASK_NAMESPACE", &namespace);
    +                    envmnt::set("CARGO_MAKE_CORE_TASK_NAMESPACE_PREFIX", &prefix);
                     }
                     None => (),
                 };
    @@ -1093,8 +1095,8 @@
                 let mut cli_env = IndexMap::new();
     
                 for env_pair in &values {
    -                debug!("Checking env pair: {}", &env_pair);
    -                let env_parts: Option<(&str, &str)> = split_once(env_pair, '=');
    +                debug!("Checking env pair: {}", &env_pair);
    +                let env_parts: Option<(&str, &str)> = split_once(env_pair, '=');
     
                     if let Some((key, value)) = env_parts {
                         cli_env.insert(key.to_string(), EnvValue::Value(value.to_string()));
    @@ -1158,9 +1160,9 @@
     ) -> Result<Config, String> {
         let default_config = load_internal_descriptors(stable, experimental, modify_core_tasks);
     
    -    let mut external_config = load_external_descriptor(".", file_name, force, true)?;
    +    let mut external_config = load_external_descriptor(".", file_name, force, true)?;
     
    -    external_config = match std::env::var("CARGO_MAKE_WORKSPACE_MAKEFILE") {
    +    external_config = match std::env::var("CARGO_MAKE_WORKSPACE_MAKEFILE") {
             Ok(workspace_makefile) => {
                 let mut pathbuf = PathBuf::from(workspace_makefile);
                 match pathbuf.clone().file_name() {
    @@ -1192,7 +1194,7 @@
         let config =
             merge_base_config_and_external_config(default_config, external_config, env_map, false)?;
     
    -    debug!("Loaded merged config: {:#?}", &config);
    +    debug!("Loaded merged config: {:#?}", &config);
     
         Ok(config)
     }
    @@ -1204,10 +1206,10 @@
                 for (name, task) in alias_tasks {
                     match config.tasks.get(&name) {
                         None => {
    -                        debug!("Creating cargo alias task: {}", &name);
    +                        debug!("Creating cargo alias task: {}", &name);
                             config.tasks.insert(name, task);
                         }
    -                    Some(_) => debug!("Ignoring cargo alias task: {}", &name),
    +                    Some(_) => debug!("Ignoring cargo alias task: {}", &name),
                     }
                 }
             }
    diff --git a/docs/api/src/cli/environment/crateinfo.rs.html b/docs/api/src/cli/environment/crateinfo.rs.html
    index adf33353a..207077071 100644
    --- a/docs/api/src/cli/environment/crateinfo.rs.html
    +++ b/docs/api/src/cli/environment/crateinfo.rs.html
    @@ -1,4 +1,6 @@
    -crateinfo.rs - source
    1
    +crateinfo.rs - source
    +    
    1
     2
     3
     4
    @@ -427,7 +429,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "crateinfo_test.rs"]
    +#[path = "crateinfo_test.rs"]
     mod crateinfo_test;
     
     use crate::types::{CrateDependency, CrateInfo, PackageInfo, Workspace};
    @@ -447,13 +449,13 @@
     }
     
     #[derive(Debug, Deserialize)]
    -#[serde(rename_all = "kebab-case")]
    +#[serde(rename_all = "kebab-case")]
     struct CargoConfigBuild {
         target: Option<RustTarget>,
     }
     
     #[derive(Debug, Deserialize)]
    -#[serde(from = "PathBuf")]
    +#[serde(from = "PathBuf")]
     struct RustTarget(PathBuf);
     
     impl RustTarget {
    @@ -491,7 +493,7 @@
     }
     
     fn expand_glob_members(glob_member: &str) -> Vec<String> {
    -    let emulation = envmnt::is("CARGO_MAKE_WORKSPACE_EMULATION");
    +    let emulation = envmnt::is("CARGO_MAKE_WORKSPACE_EMULATION");
     
         match glob(glob_member) {
             Ok(entries) => {
    @@ -507,7 +509,7 @@
                             } else {
                                 // ensure Cargo.toml is found
                                 let mut cargo_path = path.clone();
    -                            cargo_path.push("Cargo.toml");
    +                            cargo_path.push("Cargo.toml");
                                 let exists = cargo_path.exists();
     
                                 exists
    @@ -515,7 +517,7 @@
     
                             if should_add {
                                 let mut updated_path = path.to_str().unwrap().to_string();
    -                            updated_path = updated_path.replace("\\", "/");
    +                            updated_path = updated_path.replace("\\", "/");
                                 members.push(updated_path);
                             }
                         }
    @@ -538,7 +540,7 @@
                     let mut index = 0;
                     for member in existing_members.iter() {
                         // glob
    -                    if member.contains("*") {
    +                    if member.contains("*") {
                             let mut expanded_members = expand_glob_members(&member);
     
                             members.remove(index);
    @@ -570,7 +572,7 @@
         ensure_inside_workspace: bool,
     ) -> Vec<String> {
         let mut members = vec![];
    -    debug!("Searching members in dependencies: {:#?}", &dependencies);
    +    debug!("Searching members in dependencies: {:#?}", &dependencies);
     
         match dependencies {
             Some(ref dependencies) => {
    @@ -580,9 +582,9 @@
                             Some(ref path) => {
                                 // workspace dependencies are members only if inside the workspace
                                 // directory (this is a simple not accurate check for that)
    -                            if ensure_inside_workspace && path.starts_with("..") {
    +                            if ensure_inside_workspace && path.starts_with("..") {
                                     // skip
    -                            } else if path.starts_with("./") {
    +                            } else if path.starts_with("./") {
                                     let member_path =
                                         path.chars().skip(2).take(path.len() - 2).collect();
                                     members.push(member_path);
    @@ -680,7 +682,7 @@
             add_members(crate_info, workspace_dependencies);
     
             if crate_info.package.is_some() {
    -            let members_vec = vec![".".to_string()];
    +            let members_vec = vec![".".to_string()];
                 add_members(crate_info, members_vec);
             }
     
    @@ -692,30 +694,30 @@
     
     /// Loads the crate info based on the Cargo.toml found in the current working directory.
     pub(crate) fn load() -> CrateInfo {
    -    load_from(Path::new("Cargo.toml").to_path_buf())
    +    load_from(Path::new("Cargo.toml").to_path_buf())
     }
     
     pub(crate) fn load_from(file_path: PathBuf) -> CrateInfo {
         if file_path.exists() {
    -        info!("Calling cargo metadata to extract project info");
    +        info!("Calling cargo metadata to extract project info");
     
             match MetadataCommand::new().manifest_path(&file_path).exec() {
                 Ok(metadata) => {
    -                info!("Cargo metadata done");
    -                debug!("Cargo metadata: {:#?}", &metadata);
    +                info!("Cargo metadata done");
    +                debug!("Cargo metadata: {:#?}", &metadata);
                     let mut crate_info = convert_metadata_to_crate_info(&metadata);
     
    -                debug!("Reading file: {:#?}", &file_path);
    +                debug!("Reading file: {:#?}", &file_path);
                     let crate_info_string = match fsio::file::read_text_file(&file_path) {
                         Ok(content) => content,
    -                    Err(error) => panic!("Unable to open Cargo.toml, error: {}", error),
    +                    Err(error) => panic!("Unable to open Cargo.toml, error: {}", error),
                     };
     
                     let crate_info_deserialized: CrateInfoMinimal =
                         match toml::from_str(&crate_info_string) {
                             Ok(value) => value,
                             Err(error) => {
    -                            warn!("Unable to parse Cargo.toml, {}", error);
    +                            warn!("Unable to parse Cargo.toml, {}", error);
                                 CrateInfoMinimal::new()
                             }
                         };
    @@ -724,11 +726,11 @@
     
                     load_workspace_members(&mut crate_info);
     
    -                debug!("Loaded Cargo.toml: {:#?}", &crate_info);
    +                debug!("Loaded Cargo.toml: {:#?}", &crate_info);
     
                     crate_info
                 }
    -            Err(error) => panic!("Unable to parse Cargo.toml, {}", error),
    +            Err(error) => panic!("Unable to parse Cargo.toml, {}", error),
             }
         } else {
             CrateInfo::new()
    @@ -759,11 +761,11 @@
     
         let config_file = path
             .ancestors()
    -        .map(|ancestor| ancestor.join(".cargo"))
    +        .map(|ancestor| ancestor.join(".cargo"))
             .chain(home)
    -        .map(|config_file| config_file.join("config"))
    +        .map(|config_file| config_file.join("config"))
             .filter_map(|config_file| {
    -            let config_file_with_extension = config_file.with_extension("toml");
    +            let config_file_with_extension = config_file.with_extension("toml");
     
                 if config_file.exists() {
                     Some(config_file)
    @@ -799,11 +801,11 @@
     pub(crate) fn crate_target_dirs(home: Option<PathBuf>) -> CrateTargetDirs {
         let metadata = MetadataCommand::new()
             .exec()
    -        .map_err(|err| debug!("Unable to extract cargo metadata, error: {}", err))
    +        .map_err(|err| debug!("Unable to extract cargo metadata, error: {}", err))
             .ok();
         let host = metadata
             .map(|metadata| metadata.target_directory)
    -        .unwrap_or_else(|| "target".into());
    +        .unwrap_or_else(|| "target".into());
         let custom = get_cargo_config(home)
             .and_then(|config| config.build)
             .and_then(|build| build.target)
    @@ -812,7 +814,7 @@
     }
     
     pub(crate) fn search_workspace_root() -> Option<String> {
    -    if envmnt::is("CARGO_MAKE_WORKSPACE_EMULATION") {
    +    if envmnt::is("CARGO_MAKE_WORKSPACE_EMULATION") {
             search_workspace_root_for_emulation()
         } else {
             search_workspace_root_via_metadata()
    @@ -822,10 +824,10 @@
     fn search_workspace_root_for_emulation() -> Option<String> {
         let path_value = envmnt::get_any(
             &vec![
    -            "CARGO_MAKE_WORKSPACE_EMULATION_ROOT_DIRECTORY",
    -            "CARGO_MAKE_WORKING_DIRECTORY",
    +            "CARGO_MAKE_WORKSPACE_EMULATION_ROOT_DIRECTORY",
    +            "CARGO_MAKE_WORKING_DIRECTORY",
             ],
    -        "",
    +        "",
         );
     
         if path_value.is_empty() {
    @@ -836,12 +838,12 @@
     }
     
     fn search_workspace_root_via_metadata() -> Option<String> {
    -    debug!("Getting cargo metadata.");
    +    debug!("Getting cargo metadata.");
     
         MetadataCommand::new()
             .exec()
             .map(|metadata| metadata.workspace_root.to_string())
    -        .map_err(|err| debug!("Unable to extract cargo metadata, error: {:#?}", err))
    +        .map_err(|err| debug!("Unable to extract cargo metadata, error: {:#?}", err))
             .ok()
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/environment/mod.rs.html b/docs/api/src/cli/environment/mod.rs.html index 4bcc82eb4..d68704856 100644 --- a/docs/api/src/cli/environment/mod.rs.html +++ b/docs/api/src/cli/environment/mod.rs.html @@ -1,4 +1,6 @@ -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    @@ -858,6 +860,13 @@
     858
     859
     860
    +861
    +862
    +863
    +864
    +865
    +866
    +867
     
    //! # env
     //!
     //! Sets up the env vars before running the tasks.
    @@ -866,7 +875,7 @@
     pub(crate) mod crateinfo;
     
     #[cfg(test)]
    -#[path = "mod_test.rs"]
    +#[path = "mod_test.rs"]
     mod mod_test;
     
     use crate::command;
    @@ -904,16 +913,16 @@
                 if exit_code != 0 {
                     error!(
                         concat!(
    -                        "Error while evaluating script for env: {}, exit code: {}\n",
    -                        "Script:\n{:#?}\n",
    -                        "Stdout:\n{}\n",
    -                        "Stderr:\n{}\n"
    +                        "Error while evaluating script for env: {}, exit code: {}\n",
    +                        "Script:\n{:#?}\n",
    +                        "Stdout:\n{}\n",
    +                        "Stderr:\n{}\n"
                         ),
                         key, exit_code, env_value.script, &stdout, &stderr
                     );
                 }
     
    -            debug!("Env script stdout:\n{}", &stdout);
    +            debug!("Env script stdout:\n{}", &stdout);
     
                 let multi_line = match env_value.multi_line {
                     Some(bool_value) => bool_value,
    @@ -923,21 +932,21 @@
                 if multi_line {
                     stdout.to_string()
                 } else {
    -                let mut lines: Vec<&str> = stdout.split("\n").collect();
    +                let mut lines: Vec<&str> = stdout.split("\n").collect();
                     lines.retain(|&line| line.len() > 0);
     
                     if lines.len() > 0 {
                         let line = lines[lines.len() - 1].to_string();
     
    -                    let line_str = str::replace(&line, "\r", "");
    +                    let line_str = str::replace(&line, "\r", "");
     
                         line_str.to_string()
                     } else {
    -                    "".to_string()
    +                    "".to_string()
                     }
                 }
             }
    -        _ => "".to_string(),
    +        _ => "".to_string(),
         }
     }
     
    @@ -952,12 +961,12 @@
     fn evaluate_and_set_env(key: &str, value: &str) {
         let env_value = expand_value(&value);
     
    -    debug!("Setting Env: {} Value: {}", &key, &env_value);
    +    debug!("Setting Env: {} Value: {}", &key, &env_value);
         envmnt::set(&key, &env_value);
     }
     
     fn set_env_for_bool(key: &str, value: bool) {
    -    debug!("Setting Env: {} Value: {}", &key, &value);
    +    debug!("Setting Env: {} Value: {}", &key, &value);
         envmnt::set_bool(&key, value);
     }
     
    @@ -986,17 +995,24 @@
     }
     
     fn set_env_for_decode_info(key: &str, decode_info: &EnvValueDecode) {
    -    let source_value = expand_value(&decode_info.source);
    -
    -    let mapped_value = match decode_info.mapping.get(&source_value) {
    -        Some(value) => value.to_string(),
    -        None => match decode_info.default_value {
    -            Some(ref value) => value.clone().to_string(),
    -            None => source_value.clone(),
    -        },
    +    let valid = match decode_info.condition {
    +        Some(ref condition) => condition::validate_conditions_without_context(condition.clone()),
    +        None => true,
         };
     
    -    evaluate_and_set_env(&key, &mapped_value);
    +    if valid {
    +        let source_value = expand_value(&decode_info.source);
    +
    +        let mapped_value = match decode_info.mapping.get(&source_value) {
    +            Some(value) => value.to_string(),
    +            None => match decode_info.default_value {
    +                Some(ref value) => value.clone().to_string(),
    +                None => source_value.clone(),
    +            },
    +        };
    +
    +        evaluate_and_set_env(&key, &mapped_value);
    +    }
     }
     
     fn set_env_for_conditional_value(key: &str, conditional_value: &EnvValueConditioned) {
    @@ -1037,7 +1053,7 @@
         };
     
         if current_profile_name == profile_name_string || found {
    -        debug!("Setting Up Profile: {} Env.", &profile_name);
    +        debug!("Setting Up Profile: {} Env.", &profile_name);
     
             set_env_for_config(sub_env.clone(), None, false);
         }
    @@ -1058,10 +1074,10 @@
         additional_profiles: Option<&Vec<String>>,
         allow_sub_env: bool,
     ) {
    -    debug!("Setting Up Env.");
    +    debug!("Setting Up Env.");
     
         for (key, env_value) in &env {
    -        debug!("Setting env: {} = {:#?}", &key, &env_value);
    +        debug!("Setting env: {} = {:#?}", &key, &env_value);
     
             match *env_value {
                 EnvValue::Value(ref value) => evaluate_and_set_env(&key, value),
    @@ -1167,11 +1183,11 @@
     }
     
     pub(crate) fn set_current_task_meta_info_env(env: IndexMap<String, EnvValue>) {
    -    debug!("Setting Up Env.");
    +    debug!("Setting Up Env.");
     
         for (key, env_value) in &env {
    -        if key.starts_with("CARGO_MAKE_CURRENT_TASK_") {
    -            debug!("Setting env: {} = {:#?}", &key, &env_value);
    +        if key.starts_with("CARGO_MAKE_CURRENT_TASK_") {
    +            debug!("Setting env: {} = {:#?}", &key, &env_value);
     
                 match *env_value {
                     EnvValue::Value(ref value) => evaluate_and_set_env(&key, value),
    @@ -1183,7 +1199,7 @@
     
     /// Updates the env for the current execution based on the descriptor.
     fn initialize_env(config: &Config, cli_args: &Vec<String>) {
    -    debug!("Initializing Env.");
    +    debug!("Initializing Env.");
     
         let additional_profiles = match config.config.additional_profiles {
             Some(ref profiles) => Some(profiles),
    @@ -1199,10 +1215,10 @@
     
     fn setup_env_for_duckscript() {
         let mut version = duckscript::version();
    -    envmnt::set("CARGO_MAKE_DUCKSCRIPT_VERSION", version);
    +    envmnt::set("CARGO_MAKE_DUCKSCRIPT_VERSION", version);
     
         version = duckscriptsdk::version();
    -    envmnt::set("CARGO_MAKE_DUCKSCRIPT_SDK_VERSION", version);
    +    envmnt::set("CARGO_MAKE_DUCKSCRIPT_SDK_VERSION", version);
     }
     
     fn setup_env_for_crate(home: Option<PathBuf>) -> CrateInfo {
    @@ -1213,35 +1229,35 @@
     
         if package_info.name.is_some() {
             let crate_name = package_info.name.unwrap();
    -        envmnt::set("CARGO_MAKE_CRATE_NAME", &crate_name);
    +        envmnt::set("CARGO_MAKE_CRATE_NAME", &crate_name);
     
    -        let crate_fs_name = str::replace(&crate_name, "-", "_");
    -        envmnt::set("CARGO_MAKE_CRATE_FS_NAME", &crate_fs_name);
    +        let crate_fs_name = str::replace(&crate_name, "-", "_");
    +        envmnt::set("CARGO_MAKE_CRATE_FS_NAME", &crate_fs_name);
         }
     
    -    envmnt::set_optional("CARGO_MAKE_CRATE_VERSION", &package_info.version);
    -    envmnt::set_optional("CARGO_MAKE_CRATE_DESCRIPTION", &package_info.description);
    -    envmnt::set_optional("CARGO_MAKE_CRATE_LICENSE", &package_info.license);
    +    envmnt::set_optional("CARGO_MAKE_CRATE_VERSION", &package_info.version);
    +    envmnt::set_optional("CARGO_MAKE_CRATE_DESCRIPTION", &package_info.description);
    +    envmnt::set_optional("CARGO_MAKE_CRATE_LICENSE", &package_info.license);
         envmnt::set_optional(
    -        "CARGO_MAKE_CRATE_DOCUMENTATION",
    +        "CARGO_MAKE_CRATE_DOCUMENTATION",
             &package_info.documentation,
         );
    -    envmnt::set_optional("CARGO_MAKE_CRATE_HOMEPAGE", &package_info.homepage);
    -    envmnt::set_optional("CARGO_MAKE_CRATE_REPOSITORY", &package_info.repository);
    +    envmnt::set_optional("CARGO_MAKE_CRATE_HOMEPAGE", &package_info.homepage);
    +    envmnt::set_optional("CARGO_MAKE_CRATE_REPOSITORY", &package_info.repository);
     
         let has_dependencies = match crate_info.dependencies {
             Some(ref dependencies) => dependencies.len() > 0,
             None => crate_info.workspace.is_some(),
         };
     
    -    envmnt::set_bool("CARGO_MAKE_CRATE_HAS_DEPENDENCIES", has_dependencies);
    +    envmnt::set_bool("CARGO_MAKE_CRATE_HAS_DEPENDENCIES", has_dependencies);
     
         let is_workspace = !crate_info.workspace.is_none();
    -    envmnt::set_bool("CARGO_MAKE_CRATE_IS_WORKSPACE", is_workspace);
    +    envmnt::set_bool("CARGO_MAKE_CRATE_IS_WORKSPACE", is_workspace);
         if is_workspace {
    -        envmnt::set_bool("CARGO_MAKE_USE_WORKSPACE_PROFILE", true);
    -    } else if !envmnt::exists("CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER")
    -        || envmnt::exists("CARGO_MAKE_WORKSPACE_EMULATION_ROOT_DIRECTORY")
    +        envmnt::set_bool("CARGO_MAKE_USE_WORKSPACE_PROFILE", true);
    +    } else if !envmnt::exists("CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER")
    +        || envmnt::exists("CARGO_MAKE_WORKSPACE_EMULATION_ROOT_DIRECTORY")
         {
             // in case we started the build directly from a workspace member
             // or we are running in a workspace emulation mode, lets
    @@ -1252,20 +1268,20 @@
         let workspace = crate_info.workspace.unwrap_or(Workspace::new());
         let members = workspace.members.unwrap_or(vec![]);
         let mut env_options = envmnt::ListOptions::new();
    -    env_options.separator = Some(",".to_string());
    -    envmnt::set_list_with_options("CARGO_MAKE_CRATE_WORKSPACE_MEMBERS", &members, &env_options);
    +    env_options.separator = Some(",".to_string());
    +    envmnt::set_list_with_options("CARGO_MAKE_CRATE_WORKSPACE_MEMBERS", &members, &env_options);
     
         // check if Cargo.lock file exists in working directory
    -    let lock_file = Path::new("Cargo.lock");
    +    let lock_file = Path::new("Cargo.lock");
         let lock_file_exists = lock_file.exists();
    -    envmnt::set_bool("CARGO_MAKE_CRATE_LOCK_FILE_EXISTS", lock_file_exists);
    +    envmnt::set_bool("CARGO_MAKE_CRATE_LOCK_FILE_EXISTS", lock_file_exists);
     
         let crate_target_dirs = crateinfo::crate_target_dirs(home);
    -    envmnt::set("CARGO_MAKE_CRATE_TARGET_DIRECTORY", &crate_target_dirs.host);
    +    envmnt::set("CARGO_MAKE_CRATE_TARGET_DIRECTORY", &crate_target_dirs.host);
         match crate_target_dirs.custom {
    -        Some(ref value) => envmnt::set("CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY", value),
    +        Some(ref value) => envmnt::set("CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY", value),
             None => envmnt::set(
    -            "CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY",
    +            "CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY",
                 &crate_target_dirs.host,
             ),
         }
    @@ -1277,15 +1293,15 @@
         let info = git_info::get();
         let git_info_clone = info.clone();
     
    -    envmnt::set_optional("CARGO_MAKE_GIT_BRANCH", &info.current_branch);
    -    envmnt::set_optional("CARGO_MAKE_GIT_USER_NAME", &info.user_name);
    -    envmnt::set_optional("CARGO_MAKE_GIT_USER_EMAIL", &info.user_email);
    +    envmnt::set_optional("CARGO_MAKE_GIT_BRANCH", &info.current_branch);
    +    envmnt::set_optional("CARGO_MAKE_GIT_USER_NAME", &info.user_name);
    +    envmnt::set_optional("CARGO_MAKE_GIT_USER_EMAIL", &info.user_email);
         envmnt::set_optional(
    -        "CARGO_MAKE_GIT_HEAD_LAST_COMMIT_HASH",
    +        "CARGO_MAKE_GIT_HEAD_LAST_COMMIT_HASH",
             &info.head.last_commit_hash,
         );
         envmnt::set_optional(
    -        "CARGO_MAKE_GIT_HEAD_LAST_COMMIT_HASH_PREFIX",
    +        "CARGO_MAKE_GIT_HEAD_LAST_COMMIT_HASH_PREFIX",
             &info.head.last_commit_hash_short,
         );
     
    @@ -1296,43 +1312,43 @@
         let rustinfo = rust_info::get();
         let rust_info_clone = rustinfo.clone();
     
    -    envmnt::set_optional("CARGO_MAKE_RUST_VERSION", &rustinfo.version);
    +    envmnt::set_optional("CARGO_MAKE_RUST_VERSION", &rustinfo.version);
     
         if let Some(channel_option) = rustinfo.channel {
             let channel = match channel_option {
    -            RustChannel::Stable => "stable",
    -            RustChannel::Beta => "beta",
    -            RustChannel::Nightly => "nightly",
    +            RustChannel::Stable => "stable",
    +            RustChannel::Beta => "beta",
    +            RustChannel::Nightly => "nightly",
             };
     
    -        envmnt::set("CARGO_MAKE_RUST_CHANNEL", channel);
    +        envmnt::set("CARGO_MAKE_RUST_CHANNEL", channel);
         }
     
         envmnt::set(
    -        "CARGO_MAKE_RUST_TARGET_ARCH",
    -        &rustinfo.target_arch.unwrap_or("unknown".to_string()),
    +        "CARGO_MAKE_RUST_TARGET_ARCH",
    +        &rustinfo.target_arch.unwrap_or("unknown".to_string()),
         );
         envmnt::set(
    -        "CARGO_MAKE_RUST_TARGET_ENV",
    -        &rustinfo.target_env.unwrap_or("unknown".to_string()),
    +        "CARGO_MAKE_RUST_TARGET_ENV",
    +        &rustinfo.target_env.unwrap_or("unknown".to_string()),
         );
         envmnt::set(
    -        "CARGO_MAKE_RUST_TARGET_OS",
    -        &rustinfo.target_os.unwrap_or("unknown".to_string()),
    +        "CARGO_MAKE_RUST_TARGET_OS",
    +        &rustinfo.target_os.unwrap_or("unknown".to_string()),
         );
         envmnt::set(
    -        "CARGO_MAKE_RUST_TARGET_POINTER_WIDTH",
    +        "CARGO_MAKE_RUST_TARGET_POINTER_WIDTH",
             &rustinfo
                 .target_pointer_width
    -            .unwrap_or("unknown".to_string()),
    +            .unwrap_or("unknown".to_string()),
         );
         envmnt::set(
    -        "CARGO_MAKE_RUST_TARGET_VENDOR",
    -        &rustinfo.target_vendor.unwrap_or("unknown".to_string()),
    +        "CARGO_MAKE_RUST_TARGET_VENDOR",
    +        &rustinfo.target_vendor.unwrap_or("unknown".to_string()),
         );
    -    envmnt::set_optional("CARGO_MAKE_RUST_TARGET_TRIPLE", &rustinfo.target_triple);
    +    envmnt::set_optional("CARGO_MAKE_RUST_TARGET_TRIPLE", &rustinfo.target_triple);
         envmnt::set_or_remove(
    -        "CARGO_MAKE_CRATE_TARGET_TRIPLE",
    +        "CARGO_MAKE_CRATE_TARGET_TRIPLE",
             &crateinfo::crate_target_triple(rustinfo.target_triple, home.clone()),
         );
     
    @@ -1342,10 +1358,10 @@
     fn setup_env_for_ci() -> CiInfo {
         let ci_info_struct = ci_info::get();
     
    -    envmnt::set_bool("CARGO_MAKE_CI", ci_info_struct.ci);
    -    envmnt::set_bool("CARGO_MAKE_PR", ci_info_struct.pr.unwrap_or(false));
    -    envmnt::set_optional("CARGO_MAKE_CI_BRANCH_NAME", &ci_info_struct.branch_name);
    -    envmnt::set_optional("CARGO_MAKE_CI_VENDOR", &ci_info_struct.name);
    +    envmnt::set_bool("CARGO_MAKE_CI", ci_info_struct.ci);
    +    envmnt::set_bool("CARGO_MAKE_PR", ci_info_struct.pr.unwrap_or(false));
    +    envmnt::set_optional("CARGO_MAKE_CI_BRANCH_NAME", &ci_info_struct.branch_name);
    +    envmnt::set_optional("CARGO_MAKE_CI_VENDOR", &ci_info_struct.name);
     
         ci_info_struct
     }
    @@ -1369,7 +1385,7 @@
             None => get_base_directory_name(),
         };
     
    -    envmnt::set_or_remove("CARGO_MAKE_PROJECT_NAME", &project_name);
    +    envmnt::set_or_remove("CARGO_MAKE_PROJECT_NAME", &project_name);
     
         let project_version = match crate_info.workspace {
             Some(_) => {
    @@ -1381,13 +1397,13 @@
                     },
                 };
     
    -            envmnt::set_or_remove("CARGO_MAKE_PROJECT_VERSION_MEMBER", &main_member);
    +            envmnt::set_or_remove("CARGO_MAKE_PROJECT_VERSION_MEMBER", &main_member);
     
                 match main_member {
                     Some(member) => {
                         let mut path = PathBuf::new();
                         path.push(member);
    -                    path.push("Cargo.toml");
    +                    path.push("Cargo.toml");
                         let member_crate_info = crateinfo::load_from(path);
     
                         match member_crate_info.package {
    @@ -1404,7 +1420,7 @@
             },
         };
     
    -    envmnt::set_or_remove("CARGO_MAKE_PROJECT_VERSION", &project_version);
    +    envmnt::set_or_remove("CARGO_MAKE_PROJECT_VERSION", &project_version);
     }
     
     /// Sets up the env before the tasks execution.
    @@ -1415,21 +1431,21 @@
         home: Option<PathBuf>,
         time_summary_vec: &mut Vec<(String, u128)>,
     ) -> EnvInfo {
    -    envmnt::set_bool("CARGO_MAKE", true);
    -    envmnt::set("CARGO_MAKE_TASK", &task);
    +    envmnt::set_bool("CARGO_MAKE", true);
    +    envmnt::set("CARGO_MAKE_TASK", &task);
     
    -    envmnt::set("CARGO_MAKE_COMMAND", &cli_args.command);
    +    envmnt::set("CARGO_MAKE_COMMAND", &cli_args.command);
     
         let task_arguments = match cli_args.arguments.clone() {
             Some(args) => args,
             None => vec![],
         };
    -    envmnt::set_list("CARGO_MAKE_TASK_ARGS", &task_arguments);
    +    envmnt::set_list("CARGO_MAKE_TASK_ARGS", &task_arguments);
     
         // load duckscript_info
         let mut now = SystemTime::now();
         setup_env_for_duckscript();
    -    time_summary::add(time_summary_vec, "[Setup Env - Duckscript]", now);
    +    time_summary::add(time_summary_vec, "[Setup Env - Duckscript]", now);
     
         // load crate info
         now = SystemTime::now();
    @@ -1438,7 +1454,7 @@
         } else {
             setup_env_for_crate(home.clone())
         };
    -    time_summary::add(time_summary_vec, "[Setup Env - Crate Info]", now);
    +    time_summary::add(time_summary_vec, "[Setup Env - Crate Info]", now);
     
         // load git info
         now = SystemTime::now();
    @@ -1447,7 +1463,7 @@
         } else {
             setup_env_for_git_repo()
         };
    -    time_summary::add(time_summary_vec, "[Setup Env - Git]", now);
    +    time_summary::add(time_summary_vec, "[Setup Env - Git]", now);
     
         // load rust info
         now = SystemTime::now();
    @@ -1456,22 +1472,22 @@
         } else {
             setup_env_for_rust(home)
         };
    -    time_summary::add(time_summary_vec, "[Setup Env - Rust]", now);
    +    time_summary::add(time_summary_vec, "[Setup Env - Rust]", now);
     
         // load CI info
         now = SystemTime::now();
         let ci_info_struct = setup_env_for_ci();
    -    time_summary::add(time_summary_vec, "[Setup Env - CI]", now);
    +    time_summary::add(time_summary_vec, "[Setup Env - CI]", now);
     
         // setup project info
         now = SystemTime::now();
         setup_env_for_project(config, &crate_info);
    -    time_summary::add(time_summary_vec, "[Setup Env - Project]", now);
    +    time_summary::add(time_summary_vec, "[Setup Env - Project]", now);
     
         // load env vars
         now = SystemTime::now();
         initialize_env(config, &cli_args.arguments.clone().unwrap_or(vec![]));
    -    time_summary::add(time_summary_vec, "[Setup Env - Vars]", now);
    +    time_summary::add(time_summary_vec, "[Setup Env - Vars]", now);
     
         EnvInfo {
             rust_info: rustinfo,
    @@ -1482,11 +1498,11 @@
     }
     
     fn set_workspace_cwd(directory_path: &Path, force: bool) {
    -    if force || !envmnt::exists("CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY") {
    +    if force || !envmnt::exists("CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY") {
             let directory_path_string: String = FromPath::from_path(directory_path);
     
             envmnt::set(
    -            "CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY",
    +            "CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY",
                 directory_path_string,
             );
         }
    @@ -1504,7 +1520,7 @@
     }
     
     fn get_directory_path(path_option: Option<&str>) -> PathBuf {
    -    let cwd_str = path_option.unwrap_or(".");
    +    let cwd_str = path_option.unwrap_or(".");
         let directory = expand_value(cwd_str);
     
         let directory_path_string = io::canonicalize_to_string(&directory);
    @@ -1516,29 +1532,29 @@
         let directory_path = directory_path_buf.as_path();
     
         debug!(
    -        "Changing working directory to: {}",
    +        "Changing working directory to: {}",
             directory_path.display()
         );
     
         match env::set_current_dir(&directory_path) {
             Err(error) => {
                 error!(
    -                "Unable to set current working directory to: {} {:#?}",
    +                "Unable to set current working directory to: {} {:#?}",
                     directory_path.display(),
                     error
                 );
                 None
             }
             _ => {
    -            envmnt::set("CARGO_MAKE_WORKING_DIRECTORY", &directory_path);
    +            envmnt::set("CARGO_MAKE_WORKING_DIRECTORY", &directory_path);
     
                 set_workspace_cwd(&directory_path, false);
     
    -            debug!("Working directory changed to: {}", directory_path.display());
    +            debug!("Working directory changed to: {}", directory_path.display());
     
                 let home = home::cargo_home_with_cwd(directory_path).ok();
     
    -            envmnt::set_optional("CARGO_MAKE_CARGO_HOME", &home);
    +            envmnt::set_optional("CARGO_MAKE_CARGO_HOME", &home);
                 home
             }
         }
    @@ -1557,14 +1573,14 @@
             Some(file_name) => {
                 let expanded_file_name = expand_value(&file_name);
     
    -            let file_path = if expanded_file_name.starts_with(".") {
    +            let file_path = if expanded_file_name.starts_with(".") {
                     let (base_path, check_relative_path) = match base_directory {
                         Some(file) => (file, true),
    -                    None => (envmnt::get_or("CARGO_MAKE_WORKING_DIRECTORY", "."), false),
    +                    None => (envmnt::get_or("CARGO_MAKE_WORKING_DIRECTORY", "."), false),
                     };
     
    -                if check_relative_path && base_path.starts_with(".") {
    -                    Path::new(&envmnt::get_or("CARGO_MAKE_WORKING_DIRECTORY", "."))
    +                if check_relative_path && base_path.starts_with(".") {
    +                    Path::new(&envmnt::get_or("CARGO_MAKE_WORKING_DIRECTORY", "."))
                             .join(&base_path)
                             .join(expanded_file_name)
                     } else {
    @@ -1593,13 +1609,13 @@
                         match envmnt::evaluate_and_load_file(file_path_str, evaluate_env_var) {
                             Err(error) => {
                                 error!(
    -                                "Unable to load env file: {} Error: {:#?}",
    +                                "Unable to load env file: {} Error: {:#?}",
                                     &file_path_str, error
                                 );
                                 false
                             }
                             _ => {
    -                            debug!("Loaded env file: {}", &file_path_str);
    +                            debug!("Loaded env file: {}", &file_path_str);
                                 true
                             }
                         }
    @@ -1612,7 +1628,7 @@
     }
     
     fn get_project_root_for_path(directory: &PathBuf) -> Option<String> {
    -    let file_path = Path::new(directory).join("Cargo.toml");
    +    let file_path = Path::new(directory).join("Cargo.toml");
     
         if file_path.exists() {
             match directory.to_str() {
    @@ -1660,22 +1676,22 @@
             Some(ref args) => {
                 let mut expanded_args = vec![];
     
    -            let task_args = match envmnt::get_list("CARGO_MAKE_TASK_ARGS") {
    +            let task_args = match envmnt::get_list("CARGO_MAKE_TASK_ARGS") {
                     Some(list) => list,
                     None => vec![],
                 };
     
                 for index in 0..args.len() {
    -                if args[index].contains("${@}") {
    +                if args[index].contains("${@}") {
                         if task_args.len() > 0 {
    -                        if args[index] == "${@}" {
    +                        if args[index] == "${@}" {
                                 for arg_index in 0..task_args.len() {
                                     expanded_args.push(task_args[arg_index].clone());
                                 }
                             } else {
                                 for arg_index in 0..task_args.len() {
                                     let value_string =
    -                                    str::replace(&args[index], "${@}", &task_args[arg_index]);
    +                                    str::replace(&args[index], "${@}", &task_args[arg_index]);
                                     expanded_args.push(value_string);
                                 }
                             }
    diff --git a/docs/api/src/cli/execution_plan.rs.html b/docs/api/src/cli/execution_plan.rs.html
    index 8b55a8d77..e84ab6dbd 100644
    --- a/docs/api/src/cli/execution_plan.rs.html
    +++ b/docs/api/src/cli/execution_plan.rs.html
    @@ -1,4 +1,6 @@
    -execution_plan.rs - source
    1
    +execution_plan.rs - source
    +    
    1
     2
     3
     4
    @@ -505,7 +507,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "execution_plan_test.rs"]
    +#[path = "execution_plan_test.rs"]
     mod execution_plan_test;
     
     use crate::environment;
    @@ -538,9 +540,9 @@
     
                 match alias {
                     Some(ref alias) if seen.contains(alias) => {
    -                    let chain = seen.join(" -> ");
    -                    error!("Detected cycle while resolving alias {}: {}", &name, chain);
    -                    panic!("Detected cycle while resolving alias {}: {}", &name, chain);
    +                    let chain = seen.join(" -> ");
    +                    error!("Detected cycle while resolving alias {}: {}", &name, chain);
    +                    panic!("Detected cycle while resolving alias {}: {}", &name, chain);
                     }
                     Some(ref alias) => get_task_name_recursive(config, alias, seen),
                     None => Some(name.to_string()),
    @@ -568,8 +570,8 @@
         match get_optional_normalized_task(config, name, support_alias) {
             Some(task) => task,
             None => {
    -            error!("Task {} not found", &name);
    -            panic!("Task {} not found", &name);
    +            error!("Task {} not found", &name);
    +            panic!("Task {} not found", &name);
             }
         }
     }
    @@ -598,9 +600,9 @@
     
                             if let Some(ref env) = normalized_task.env {
                                 if env.len() == 2
    -                                && env.contains_key("CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE")
    +                                && env.contains_key("CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE")
                                     && env.contains_key(
    -                                    "CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY",
    +                                    "CARGO_MAKE_CURRENT_TASK_INITIAL_MAKEFILE_DIRECTORY",
                                     )
                                 {
                                     normalized_task.env = None;
    @@ -624,7 +626,7 @@
     fn get_workspace_members_config(members_config: String) -> HashSet<String> {
         let mut members = HashSet::new();
     
    -    let members_list: Vec<&str> = members_config.split(';').collect();
    +    let members_list: Vec<&str> = members_config.split(';').collect();
     
         for member in members_list.iter() {
             if member.len() > 0 {
    @@ -643,7 +645,7 @@
             let mut found = false;
     
             for member_iter in members_map {
    -            if member_iter.contains("*") {
    +            if member_iter.contains("*") {
                     found = match Pattern::new(member_iter) {
                         Ok(pattern) => pattern.matches(&member),
                         _ => false,
    @@ -672,10 +674,10 @@
     }
     
     fn filter_workspace_members(members: &Vec<String>) -> Vec<String> {
    -    let skip_members_config = envmnt::get_or("CARGO_MAKE_WORKSPACE_SKIP_MEMBERS", "");
    +    let skip_members_config = envmnt::get_or("CARGO_MAKE_WORKSPACE_SKIP_MEMBERS", "");
         let skip_members = get_workspace_members_config(skip_members_config);
     
    -    let include_members_config = envmnt::get_or("CARGO_MAKE_WORKSPACE_INCLUDE_MEMBERS", "");
    +    let include_members_config = envmnt::get_or("CARGO_MAKE_WORKSPACE_INCLUDE_MEMBERS", "");
         let include_members = get_workspace_members_config(include_members_config);
     
         let mut filtered_members = vec![];
    @@ -685,7 +687,7 @@
             {
                 filtered_members.push(member.to_string());
             } else {
    -            debug!("Skipping Member: {}.", &member);
    +            debug!("Skipping Member: {}.", &member);
             }
         }
     
    @@ -694,13 +696,13 @@
     
     fn create_workspace_task(crate_info: &CrateInfo, task: &str) -> Task {
         let set_workspace_emulation = crate_info.workspace.is_none()
    -        && envmnt::is("CARGO_MAKE_WORKSPACE_EMULATION")
    -        && !envmnt::exists("CARGO_MAKE_WORKSPACE_EMULATION_ROOT_DIRECTORY");
    +        && envmnt::is("CARGO_MAKE_WORKSPACE_EMULATION")
    +        && !envmnt::exists("CARGO_MAKE_WORKSPACE_EMULATION_ROOT_DIRECTORY");
         if set_workspace_emulation {
             environment::search_and_set_workspace_cwd();
    -        let root_directory = envmnt::get_or_panic("CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY");
    +        let root_directory = envmnt::get_or_panic("CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY");
             envmnt::set(
    -            "CARGO_MAKE_WORKSPACE_EMULATION_ROOT_DIRECTORY",
    +            "CARGO_MAKE_WORKSPACE_EMULATION_ROOT_DIRECTORY",
                 &root_directory,
             );
         }
    @@ -710,12 +712,12 @@
             let workspace = workspace_clone.unwrap_or(Workspace::new());
             workspace.members.unwrap_or(vec![])
         } else {
    -        envmnt::get_list("CARGO_MAKE_CRATE_WORKSPACE_MEMBERS").unwrap_or(vec![])
    +        envmnt::get_list("CARGO_MAKE_CRATE_WORKSPACE_MEMBERS").unwrap_or(vec![])
         };
     
         let log_level = logger::get_log_level();
     
    -    let profile_name = if envmnt::is_or("CARGO_MAKE_USE_WORKSPACE_PROFILE", true) {
    +    let profile_name = if envmnt::is_or("CARGO_MAKE_USE_WORKSPACE_PROFILE", true) {
             profile::get()
         } else {
             profile::default_profile()
    @@ -725,12 +727,12 @@
         let mut script_lines = vec![];
     
         if !filtered_members.is_empty() {
    -        let cargo_make_command = "cargo make";
    +        let cargo_make_command = "cargo make";
     
    -        script_lines.push("workspace_directory = pwd".to_string());
    +        script_lines.push("workspace_directory = pwd".to_string());
             for member in &filtered_members {
    -            let mut cd_line = "cd ./".to_string();
    -            cd_line.push_str(&member.replace("\\", "/"));
    +            let mut cd_line = "cd ./".to_string();
    +            cd_line.push_str(&member.replace("\\", "/"));
                 script_lines.push(cd_line);
     
                 //get member name
    @@ -739,40 +741,40 @@
                     None => member.clone(),
                 };
     
    -            debug!("Adding Member: {} Path: {}", &member_name, &member);
    +            debug!("Adding Member: {} Path: {}", &member_name, &member);
     
    -            let mut make_line = "exec --fail-on-error ".to_string();
    +            let mut make_line = "exec --fail-on-error ".to_string();
                 make_line.push_str(&cargo_make_command);
                 make_line
    -                .push_str(" --disable-check-for-updates --allow-private --no-on-error --loglevel=");
    +                .push_str(" --disable-check-for-updates --allow-private --no-on-error --loglevel=");
                 make_line.push_str(&log_level);
    -            make_line.push_str(" --env CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER=");
    +            make_line.push_str(" --env CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER=");
                 make_line.push_str(&member_name);
    -            make_line.push_str(" --profile ");
    +            make_line.push_str(" --profile ");
                 make_line.push_str(&profile_name);
    -            make_line.push_str(" -- ");
    +            make_line.push_str(" -- ");
                 make_line.push_str(&task);
     
    -            if let Some(args) = envmnt::get_list("CARGO_MAKE_TASK_ARGS") {
    +            if let Some(args) = envmnt::get_list("CARGO_MAKE_TASK_ARGS") {
                     for arg in args {
    -                    make_line.push_str(" ");
    +                    make_line.push_str(" ");
                         make_line.push_str(&arg);
                     }
                 }
     
                 script_lines.push(make_line);
     
    -            script_lines.push("cd ${workspace_directory}".to_string());
    +            script_lines.push("cd ${workspace_directory}".to_string());
             }
         }
     
         //only if environment variable is set
    -    let task_env = if envmnt::is_or("CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE", false) {
    -        match env::var("CARGO_MAKE_MAKEFILE_PATH") {
    +    let task_env = if envmnt::is_or("CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE", false) {
    +        match env::var("CARGO_MAKE_MAKEFILE_PATH") {
                 Ok(makefile) => {
                     let mut env_map = IndexMap::new();
                     env_map.insert(
    -                    "CARGO_MAKE_WORKSPACE_MAKEFILE".to_string(),
    +                    "CARGO_MAKE_WORKSPACE_MAKEFILE".to_string(),
                         EnvValue::Value(makefile.to_string()),
                     );
     
    @@ -784,10 +786,10 @@
             None
         };
     
    -    debug!("Workspace Task Script: {:#?}", &script_lines);
    +    debug!("Workspace Task Script: {:#?}", &script_lines);
     
         let mut workspace_task = Task::new();
    -    workspace_task.script_runner = Some("@duckscript".to_string());
    +    workspace_task.script_runner = Some("@duckscript".to_string());
         workspace_task.script = Some(ScriptValue::Text(script_lines));
         workspace_task.env = task_env;
     
    @@ -814,14 +816,14 @@
         // if project is not a workspace or if workspace is disabled via cli, return no workspace flow
         if disable_workspace
             || (sub_flow && !task_enable_workspace)
    -        || (crate_info.workspace.is_none() && !envmnt::is("CARGO_MAKE_WORKSPACE_EMULATION"))
    -        || envmnt::exists("CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER")
    +        || (crate_info.workspace.is_none() && !envmnt::is("CARGO_MAKE_WORKSPACE_EMULATION"))
    +        || envmnt::exists("CARGO_MAKE_CRATE_CURRENT_WORKSPACE_MEMBER")
         {
             false
         } else {
    -        // project is a workspace and wasn't disabled via cli, need to check requested task
    +        // project is a workspace and wasn't disabled via cli, need to check requested task
     
    -        // use requested task's workspace flag if set
    +        // use requested task's workspace flag if set
             if task_set_workspace {
                 task_enable_workspace
             } else {
    @@ -843,7 +845,7 @@
     ) {
         if let Some(skip_tasks_pattern_regex) = skip_tasks_pattern {
             if skip_tasks_pattern_regex.is_match(&task.name) {
    -            debug!("Skipping task: {} due to skip pattern.", &task.name);
    +            debug!("Skipping task: {} due to skip pattern.", &task.name);
                 return;
             }
         }
    @@ -851,7 +853,7 @@
         if let Some(path) = &task.path {
             // this is referring to a task in another file
             // so we create a proxy task to invoke it
    -        let proxy_name = format!("{}_proxy", task.name);
    +        let proxy_name = format!("{}_proxy", task.name);
     
             let path_obj = Path::new(path);
             let (working_directory, makefile) = if path_obj.is_file() {
    @@ -859,7 +861,7 @@
                 let working_directory = get_parent_directory(&path_obj);
                 (working_directory, filename)
             } else {
    -            (Some(path.to_string()), Some("Makefile.toml".to_string()))
    +            (Some(path.to_string()), Some("Makefile.toml".to_string()))
             };
     
             let mut proxy_task = create_proxy_task(&task.name, true, false, makefile, None);
    @@ -870,7 +872,7 @@
                 config: proxy_task,
             };
     
    -        debug!("Created external dependency step: {:#?}", &step);
    +        debug!("Created external dependency step: {:#?}", &step);
     
             steps.push(step);
             task_names.insert(task.to_string());
    @@ -879,7 +881,7 @@
     
         let task_config = get_normalized_task(config, &task.name, true);
     
    -    debug!("Normalized Task: {} config: {:#?}", &task, &task_config);
    +    debug!("Normalized Task: {} config: {:#?}", &task, &task_config);
     
         let is_private = match task_config.private {
             Some(value) => value,
    @@ -904,7 +906,7 @@
                             );
                         }
                     }
    -                _ => debug!("No dependencies found for task: {}", &task),
    +                _ => debug!("No dependencies found for task: {}", &task),
                 };
     
                 if !task_names.contains(&task.name) {
    @@ -914,12 +916,12 @@
                     });
                     task_names.insert(task.to_string());
                 } else if root {
    -                error!("Circular reference found for task: {}", &task);
    +                error!("Circular reference found for task: {}", &task);
                 }
             }
         } else {
    -        error!("Task {} is private", &task);
    -        panic!("Task {} is private", &task);
    +        error!("Task {} is private", &task);
    +        panic!("Task {} is private", &task);
         }
     }
     
    @@ -951,11 +953,11 @@
         if !sub_flow {
             match config.config.legacy_migration_task {
                 Some(ref task) => add_predefined_step(config, task, &mut steps),
    -            None => debug!("Legacy migration task not defined."),
    +            None => debug!("Legacy migration task not defined."),
             };
             match config.config.init_task {
                 Some(ref task) => add_predefined_step(config, task, &mut steps),
    -            None => debug!("Init task not defined."),
    +            None => debug!("Init task not defined."),
             };
         }
     
    @@ -972,7 +974,7 @@
                 let workspace_task = create_workspace_task(crate_info, task);
     
                 steps.push(Step {
    -                name: "workspace".to_string(),
    +                name: "workspace".to_string(),
                     config: workspace_task,
                 });
             } else {
    @@ -987,14 +989,14 @@
                 );
             }
         } else {
    -        debug!("Skipping task: {} due to skip pattern.", &task);
    +        debug!("Skipping task: {} due to skip pattern.", &task);
         }
     
         if !sub_flow {
             // always add end task even if already executed due to some dependency
             match config.config.end_task {
                 Some(ref task) => add_predefined_step(config, task, &mut steps),
    -            None => debug!("Ent task not defined."),
    +            None => debug!("Ent task not defined."),
             };
         }
     
    diff --git a/docs/api/src/cli/functions/decode_func.rs.html b/docs/api/src/cli/functions/decode_func.rs.html
    index ccb021da4..7d94aafe4 100644
    --- a/docs/api/src/cli/functions/decode_func.rs.html
    +++ b/docs/api/src/cli/functions/decode_func.rs.html
    @@ -1,4 +1,6 @@
    -decode_func.rs - source
    1
    +decode_func.rs - source
    +    
    1
     2
     3
     4
    @@ -64,7 +66,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "decode_func_test.rs"]
    +#[path = "decode_func_test.rs"]
     mod decode_func_test;
     
     use crate::environment;
    @@ -72,11 +74,11 @@
     
     pub(crate) fn invoke(function_args: &Vec<String>) -> Vec<String> {
         if function_args.len() == 0 {
    -        error!("decode expects at least one argument.");
    +        error!("decode expects at least one argument.");
         }
     
         let env_key = function_args[0].clone();
    -    let env_value = envmnt::get_or(&env_key, "");
    +    let env_value = envmnt::get_or(&env_key, "");
     
         let mut mapped_value = None;
         let mut found = false;
    diff --git a/docs/api/src/cli/functions/getat_func.rs.html b/docs/api/src/cli/functions/getat_func.rs.html
    index 692800054..941254fe4 100644
    --- a/docs/api/src/cli/functions/getat_func.rs.html
    +++ b/docs/api/src/cli/functions/getat_func.rs.html
    @@ -1,4 +1,6 @@
    -getat_func.rs - source
    1
    +getat_func.rs - source
    +    
    1
     2
     3
     4
    @@ -51,7 +53,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "getat_func_test.rs"]
    +#[path = "getat_func_test.rs"]
     mod getat_func_test;
     
     use envmnt;
    @@ -59,7 +61,7 @@
     pub(crate) fn invoke(function_args: &Vec<String>) -> Vec<String> {
         if function_args.len() != 3 {
             error!(
    -            "split expects only 3 arguments (environment variable name, split by character, index)"
    +            "split expects only 3 arguments (environment variable name, split by character, index)"
             );
         }
     
    @@ -68,18 +70,18 @@
         let index: usize = match function_args[2].parse() {
             Ok(value) => value,
             Err(error) => {
    -            error!("Invalid index value: {}", &error);
    +            error!("Invalid index value: {}", &error);
                 return vec![]; // should not get here
             }
         };
     
         if split_by.len() != 1 {
    -        error!("split expects a single character separator");
    +        error!("split expects a single character separator");
         }
     
         let split_by_char = split_by.chars().next().unwrap();
     
    -    let value = envmnt::get_or(&env_key, "");
    +    let value = envmnt::get_or(&env_key, "");
     
         if value.len() > index {
             let splitted = value.split(split_by_char);
    diff --git a/docs/api/src/cli/functions/mod.rs.html b/docs/api/src/cli/functions/mod.rs.html
    index 86a037d63..bf18b4351 100644
    --- a/docs/api/src/cli/functions/mod.rs.html
    +++ b/docs/api/src/cli/functions/mod.rs.html
    @@ -1,4 +1,6 @@
    -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    @@ -131,7 +133,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "mod_test.rs"]
    +#[path = "mod_test.rs"]
     mod mod_test;
     
     mod decode_func;
    @@ -144,25 +146,25 @@
     
     fn run_function(function_name: &str, function_args: &Vec<String>) -> Vec<String> {
         debug!(
    -        "Running function: {} arguments: {:#?}",
    +        "Running function: {} arguments: {:#?}",
             &function_name, &function_args
         );
     
         match function_name {
    -        "split" => split_func::invoke(function_args),
    -        "remove-empty" => remove_empty_func::invoke(function_args),
    -        "trim" => trim_func::invoke(function_args),
    -        "getat" => getat_func::invoke(function_args),
    -        "decode" => decode_func::invoke(function_args),
    +        "split" => split_func::invoke(function_args),
    +        "remove-empty" => remove_empty_func::invoke(function_args),
    +        "trim" => trim_func::invoke(function_args),
    +        "getat" => getat_func::invoke(function_args),
    +        "decode" => decode_func::invoke(function_args),
             _ => {
    -            error!("Unknown function: {}", &function_name);
    -            panic!("Unknown function: {}", &function_name);
    +            error!("Unknown function: {}", &function_name);
    +            panic!("Unknown function: {}", &function_name);
             }
         }
     }
     
     fn get_function_name(function_string: &str) -> Option<String> {
    -    match function_string.find('(') {
    +    match function_string.find('(') {
             Some(index) => Some(function_string[0..index].to_string()),
             None => None,
         }
    @@ -179,12 +181,12 @@
     }
     
     fn get_function_arguments(function_string: &str) -> Option<Vec<String>> {
    -    if function_string.starts_with("(") && function_string.ends_with(")") {
    +    if function_string.starts_with("(") && function_string.ends_with(")") {
             let args_string = function_string[1..(function_string.len() - 1)].to_string();
     
             let arguments = if args_string.len() > 0 {
                 args_string
    -                .split(",")
    +                .split(",")
                     .map(|str_value| get_function_argument(&str_value))
                     .collect()
             } else {
    @@ -200,7 +202,7 @@
     fn evaluate_and_run(value: &str) -> Vec<String> {
         let value_string = value.to_string();
     
    -    if value_string.starts_with("@@") {
    +    if value_string.starts_with("@@") {
             let mut function_string = value[2..].to_string();
     
             let func_name_option = get_function_name(&function_string);
    diff --git a/docs/api/src/cli/functions/remove_empty_func.rs.html b/docs/api/src/cli/functions/remove_empty_func.rs.html
    index dfc818b83..bb408cc4c 100644
    --- a/docs/api/src/cli/functions/remove_empty_func.rs.html
    +++ b/docs/api/src/cli/functions/remove_empty_func.rs.html
    @@ -1,4 +1,6 @@
    -remove_empty_func.rs - source
    1
    +remove_empty_func.rs - source
    +    
    1
     2
     3
     4
    @@ -30,19 +32,19 @@
     //!
     
     #[cfg(test)]
    -#[path = "remove_empty_func_test.rs"]
    +#[path = "remove_empty_func_test.rs"]
     mod remove_empty_func_test;
     
     use envmnt;
     
     pub(crate) fn invoke(function_args: &Vec<String>) -> Vec<String> {
         if function_args.len() != 1 {
    -        error!("remove_empty expects only 1 argument (environment variable name)");
    +        error!("remove_empty expects only 1 argument (environment variable name)");
         }
     
         let env_key = function_args[0].clone();
     
    -    let value = envmnt::get_or(&env_key, "");
    +    let value = envmnt::get_or(&env_key, "");
     
         if value.len() > 0 {
             vec![value]
    diff --git a/docs/api/src/cli/functions/split_func.rs.html b/docs/api/src/cli/functions/split_func.rs.html
    index 051185e88..80a14fc6a 100644
    --- a/docs/api/src/cli/functions/split_func.rs.html
    +++ b/docs/api/src/cli/functions/split_func.rs.html
    @@ -1,4 +1,6 @@
    -split_func.rs - source
    1
    +split_func.rs - source
    +    
    1
     2
     3
     4
    @@ -55,7 +57,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "split_func_test.rs"]
    +#[path = "split_func_test.rs"]
     mod split_func_test;
     
     use envmnt;
    @@ -63,7 +65,7 @@
     pub(crate) fn invoke(function_args: &Vec<String>) -> Vec<String> {
         let args_count = function_args.len();
         if args_count < 2 || args_count > 3 {
    -        error!("split expects two or three arguments (environment variable name, split by character, optional mode: default, remove-empty)");
    +        error!("split expects two or three arguments (environment variable name, split by character, optional mode: default, remove-empty)");
         }
     
         let env_key = function_args[0].clone();
    @@ -71,17 +73,17 @@
         let mode_name = if args_count == 3 {
             &function_args[2]
         } else {
    -        "default"
    +        "default"
         };
    -    let remove_empty = mode_name == "remove-empty";
    +    let remove_empty = mode_name == "remove-empty";
     
         if split_by.len() != 1 {
    -        error!("split expects a single character separator");
    +        error!("split expects a single character separator");
         }
     
         let split_by_char = split_by.chars().next().unwrap();
     
    -    let value = envmnt::get_or(&env_key, "");
    +    let value = envmnt::get_or(&env_key, "");
     
         if value.len() > 0 {
             let splitted = value.split(split_by_char);
    diff --git a/docs/api/src/cli/functions/trim_func.rs.html b/docs/api/src/cli/functions/trim_func.rs.html
    index 87723aab1..0613a992b 100644
    --- a/docs/api/src/cli/functions/trim_func.rs.html
    +++ b/docs/api/src/cli/functions/trim_func.rs.html
    @@ -1,4 +1,6 @@
    -trim_func.rs - source
    1
    +trim_func.rs - source
    +    
    1
     2
     3
     4
    @@ -47,19 +49,19 @@
     //!
     
     #[cfg(test)]
    -#[path = "trim_func_test.rs"]
    +#[path = "trim_func_test.rs"]
     mod trim_func_test;
     
     use envmnt;
     
     pub(crate) fn invoke(function_args: &Vec<String>) -> Vec<String> {
         if function_args.len() > 2 {
    -        error!("trim expects up to 2 arguments (environment variable name and optionally start/end trim flag)");
    +        error!("trim expects up to 2 arguments (environment variable name and optionally start/end trim flag)");
         }
     
         let env_key = function_args[0].clone();
     
    -    let value = envmnt::get_or(&env_key, "");
    +    let value = envmnt::get_or(&env_key, "");
     
         let trimmed_value = if function_args.len() == 1 {
             value.trim().to_string()
    @@ -67,11 +69,11 @@
             let trim_type = function_args[1].clone();
     
             match trim_type.as_ref() {
    -            "start" => value.trim_start().to_string(),
    -            "end" => value.trim_end().to_string(),
    +            "start" => value.trim_start().to_string(),
    +            "end" => value.trim_end().to_string(),
                 _ => {
    -                error!("Invalid trim type provided, only start or end are supported.");
    -                panic!("Invalid trim type provided, only start or end are supported.");
    +                error!("Invalid trim type provided, only start or end are supported.");
    +                panic!("Invalid trim type provided, only start or end are supported.");
                 }
             }
         };
    diff --git a/docs/api/src/cli/installer/cargo_plugin_installer.rs.html b/docs/api/src/cli/installer/cargo_plugin_installer.rs.html
    index b832f9011..d10e43f08 100644
    --- a/docs/api/src/cli/installer/cargo_plugin_installer.rs.html
    +++ b/docs/api/src/cli/installer/cargo_plugin_installer.rs.html
    @@ -1,4 +1,6 @@
    -cargo_plugin_installer.rs - source
    1
    +cargo_plugin_installer.rs - source
    +    
    1
     2
     3
     4
    @@ -161,13 +163,33 @@
     161
     162
     163
    +164
    +165
    +166
    +167
    +168
    +169
    +170
    +171
    +172
    +173
    +174
    +175
    +176
    +177
    +178
    +179
    +180
    +181
    +182
    +183
     
    //! # cargo_plugin_installer
     //!
     //! Installs cargo plugins automatically if needed.
     //!
     
     #[cfg(test)]
    -#[path = "cargo_plugin_installer_test.rs"]
    +#[path = "cargo_plugin_installer_test.rs"]
     mod cargo_plugin_installer_test;
     
     use crate::command;
    @@ -177,49 +199,69 @@
     use envmnt;
     use std::process::Command;
     
    +fn is_crate_in_list_output_legacy(crate_name: &str, output: &str) -> bool {
    +    let lines: Vec<&str> = output.split(' ').collect();
    +    for mut line in lines {
    +        line = line.trim();
    +
    +        debug!("Checking: {}", &line);
    +
    +        if line.contains(crate_name) && crate_name.contains(line) {
    +            debug!("Found installed crate.");
    +
    +            return true;
    +        }
    +    }
    +
    +    false
    +}
    +
    +fn is_crate_in_list_output(crate_name: &str, output: &str) -> bool {
    +    let lines: Vec<&str> = output.split('\n').collect();
    +    for mut line in lines {
    +        line = line.trim();
    +
    +        debug!("Checking: {}", &line);
    +        let words: Vec<&str> = line.split(' ').collect();
    +
    +        if words[0].contains(crate_name) && crate_name.contains(words[0]) {
    +            debug!("Found installed crate.");
    +
    +            return true;
    +        }
    +    }
    +
    +    false
    +}
    +
     fn is_crate_installed(toolchain: &Option<ToolchainSpecifier>, crate_name: &str) -> bool {
    -    debug!("Getting list of installed cargo commands.");
    +    debug!("Getting list of installed cargo commands.");
     
         let mut command_struct = match toolchain {
             Some(ref toolchain_string) => {
    -            let command_spec = wrap_command(toolchain_string, "cargo", &None);
    +            let command_spec = wrap_command(toolchain_string, "cargo", &None);
                 let mut cmd = Command::new(command_spec.command);
                 cmd.args(command_spec.args.unwrap());
     
                 cmd
             }
    -        None => Command::new("cargo"),
    +        None => Command::new("cargo"),
         };
     
    -    let result = command_struct.arg("--list").output();
    +    let result = command_struct.arg("--list").output();
     
         match result {
             Ok(output) => {
    -            let mut found = false;
    -
                 let exit_code = command::get_exit_code(Ok(output.status), false);
                 command::validate_exit_code(exit_code);
     
                 let stdout = String::from_utf8_lossy(&output.stdout);
    -            let lines: Vec<&str> = stdout.split(' ').collect();
    -            for mut line in lines {
    -                line = line.trim();
    -
    -                debug!("Checking: {}", &line);
    -
    -                if line.contains(crate_name) && crate_name.contains(line) {
    -                    found = true;
    -                    debug!("Found installed crate.");
    -
    -                    break;
    -                }
    -            }
    -
    -            found
    +            is_crate_in_list_output(crate_name, &stdout)
    +                || is_crate_in_list_output_legacy(crate_name, &stdout)
             }
             Err(error) => {
                 error!(
    -                "Unable to check if crate is installed: {} {:#?}",
    +                "Unable to check if crate is installed: {} {:#?}",
                     crate_name, &error
                 );
                 false
    @@ -229,7 +271,7 @@
     
     fn should_skip_crate_name(args: &Option<Vec<String>>) -> bool {
         match *args {
    -        Some(ref args_vec) => args_vec.contains(&"--git".to_string()),
    +        Some(ref args_vec) => args_vec.contains(&"--git".to_string()),
             None => false,
         }
     }
    @@ -243,12 +285,12 @@
     ) -> Vec<String> {
         let install_command_str = match install_command {
             Some(value) => value.clone(),
    -        None => "install".to_string(),
    +        None => "install".to_string(),
         };
         let mut install_args = vec![install_command_str.to_string()];
     
         if force {
    -        install_args.push("--force".to_string());
    +        install_args.push("--force".to_string());
         }
     
         match *args {
    @@ -257,16 +299,16 @@
                     install_args.push(arg.to_string());
                 }
             }
    -        None => debug!("No crate installation args defined."),
    +        None => debug!("No crate installation args defined."),
         };
     
         let skip_crate_name = should_skip_crate_name(&args);
         if !skip_crate_name {
             // add locked flags
             if let Some(version) = version_option {
    -            if envmnt::is("CARGO_MAKE_CRATE_INSTALLATION_LOCKED") {
    -                install_args.push("--locked".to_string());
    -                install_args.push("--version".to_string());
    +            if envmnt::is("CARGO_MAKE_CRATE_INSTALLATION_LOCKED") {
    +                install_args.push("--locked".to_string());
    +                install_args.push("--version".to_string());
                     install_args.push(version.to_string());
                 }
             }
    @@ -317,10 +359,10 @@
     
             match toolchain {
                 Some(ref toolchain_string) => {
    -                let command_spec = wrap_command(&toolchain_string, "cargo", &Some(install_args));
    +                let command_spec = wrap_command(&toolchain_string, "cargo", &Some(install_args));
                     command::run_command(&command_spec.command, &command_spec.args, validate)
                 }
    -            None => command::run_command("cargo", &Some(install_args), validate),
    +            None => command::run_command("cargo", &Some(install_args), validate),
             };
         }
     }
    diff --git a/docs/api/src/cli/installer/crate_installer.rs.html b/docs/api/src/cli/installer/crate_installer.rs.html
    index c2fdb2d28..28c762a27 100644
    --- a/docs/api/src/cli/installer/crate_installer.rs.html
    +++ b/docs/api/src/cli/installer/crate_installer.rs.html
    @@ -1,4 +1,6 @@
    -crate_installer.rs - source
    1
    +crate_installer.rs - source
    +    
    1
     2
     3
     4
    @@ -122,7 +124,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "crate_installer_test.rs"]
    +#[path = "crate_installer_test.rs"]
     mod crate_installer_test;
     
     use crate::command;
    @@ -158,8 +160,8 @@
         };
     
         let remove_lock =
    -        if automatic_lock_version && !envmnt::is("CARGO_MAKE_CRATE_INSTALLATION_LOCKED") {
    -            envmnt::set_bool("CARGO_MAKE_CRATE_INSTALLATION_LOCKED", true);
    +        if automatic_lock_version && !envmnt::is("CARGO_MAKE_CRATE_INSTALLATION_LOCKED") {
    +            envmnt::set_bool("CARGO_MAKE_CRATE_INSTALLATION_LOCKED", true);
                 true
             } else {
                 false
    @@ -174,9 +176,9 @@
         );
     
         let command_spec = match toolchain {
    -        Some(ref toolchain_string) => wrap_command(toolchain_string, "cargo", &Some(install_args)),
    +        Some(ref toolchain_string) => wrap_command(toolchain_string, "cargo", &Some(install_args)),
             None => CommandSpec {
    -            command: "cargo".to_string(),
    +            command: "cargo".to_string(),
                 args: Some(install_args),
             },
         };
    @@ -184,7 +186,7 @@
         command::run_command(&command_spec.command, &command_spec.args, validate);
     
         if remove_lock {
    -        envmnt::remove("CARGO_MAKE_CRATE_INSTALLATION_LOCKED");
    +        envmnt::remove("CARGO_MAKE_CRATE_INSTALLATION_LOCKED");
         }
     }
     
    @@ -227,7 +229,7 @@
         };
     
         if run_installation {
    -        debug!("Crate: {} not installed.", &info.crate_name);
    +        debug!("Crate: {} not installed.", &info.crate_name);
     
             if !invoke_rustup_install(&toolchain, &info) {
                 invoke_cargo_install(&toolchain, &info, &args, validate);
    diff --git a/docs/api/src/cli/installer/crate_version_check.rs.html b/docs/api/src/cli/installer/crate_version_check.rs.html
    index 115eec6ef..da4151c26 100644
    --- a/docs/api/src/cli/installer/crate_version_check.rs.html
    +++ b/docs/api/src/cli/installer/crate_version_check.rs.html
    @@ -1,4 +1,6 @@
    -crate_version_check.rs - source
    1
    +crate_version_check.rs - source
    +    
    1
     2
     3
     4
    @@ -231,7 +233,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "crate_version_check_test.rs"]
    +#[path = "crate_version_check_test.rs"]
     mod crate_version_check_test;
     
     use crate::command;
    @@ -255,10 +257,10 @@
     }
     
     fn get_cargo_home() -> Option<String> {
    -    let cargo_home = match env::var("CARGO_HOME") {
    +    let cargo_home = match env::var("CARGO_HOME") {
             Ok(value) => Some(value.to_string()),
             Err(_) => match dirs_next::home_dir() {
    -            Some(directory) => match directory.join(".cargo").to_str() {
    +            Some(directory) => match directory.join(".cargo").to_str() {
                     Some(value) => Some(value.to_string()),
                     None => None,
                 },
    @@ -280,19 +282,19 @@
     }
     
     fn load_crates_toml(cargo_home: &str) -> Option<CratesRegistryInfo> {
    -    let file_path = Path::new(cargo_home).join(".crates.toml");
    +    let file_path = Path::new(cargo_home).join(".crates.toml");
     
         if file_path.exists() && file_path.is_file() {
             match fsio::file::read_text_file(&file_path) {
                 Ok(file_content) => match toml::from_str(&file_content) {
                     Ok(info) => Some(info),
                     Err(error) => {
    -                    warn!("Unable to parse crates descriptor, error: {}", &error);
    +                    warn!("Unable to parse crates descriptor, error: {}", &error);
                         None
                     }
                 },
                 Err(error) => {
    -                warn!("Unable to open crates descriptor, error: {}", &error);
    +                warn!("Unable to open crates descriptor, error: {}", &error);
                     None
                 }
             }
    @@ -302,7 +304,7 @@
     }
     
     fn parse_version_from_string(version_line: &str, crate_name: &str) -> VersionParseOutput {
    -    let parts: Vec<&str> = version_line.split(' ').collect();
    +    let parts: Vec<&str> = version_line.split(' ').collect();
     
         if parts.len() >= 2 && parts[0] == crate_name {
             match Version::parse(parts[1]) {
    @@ -340,7 +342,7 @@
                 Some(info) => get_crate_version_from_info(&crate_name, &info),
                 None => {
                     warn!(
    -                    "Unable to read crates registry information to validate {} crate version.",
    +                    "Unable to read crates registry information to validate {} crate version.",
                         &crate_name
                     );
                     None
    @@ -348,7 +350,7 @@
             },
             None => {
                 warn!(
    -                "Unable to find cargo home directory to validate {} crate version.",
    +                "Unable to find cargo home directory to validate {} crate version.",
                     &crate_name
                 );
                 None
    @@ -361,12 +363,12 @@
                 Some(value) => {
                     let result = command::run_command_get_output_string(
                         &value,
    -                    &Some(vec!["--version".to_string()]),
    +                    &Some(vec!["--version".to_string()]),
                     );
     
                     match result {
                         Some(ref output) => {
    -                        debug!("Version CLI output: {}", output);
    +                        debug!("Version CLI output: {}", output);
     
                             match parse_version_from_string(output, crate_name) {
                                 VersionParseOutput::Version(version) => Some(version),
    @@ -412,14 +414,14 @@
                 }
                 None => {
                     warn!(
    -                    "Unable to read currently installed version for crate: {}",
    +                    "Unable to read currently installed version for crate: {}",
                         &crate_name
                     );
                     true
                 }
             },
             _ => {
    -            warn!("Unable to parse min version value: {}", &min_version);
    +            warn!("Unable to parse min version value: {}", &min_version);
                 true
             }
         }
    @@ -440,14 +442,14 @@
                 }
                 None => {
                     warn!(
    -                    "Unable to read currently installed version for crate: {}",
    +                    "Unable to read currently installed version for crate: {}",
                         &crate_name
                     );
                     true
                 }
             },
             _ => {
    -            warn!("Unable to parse version value: {}", &version);
    +            warn!("Unable to parse version value: {}", &version);
                 true
             }
         }
    diff --git a/docs/api/src/cli/installer/mod.rs.html b/docs/api/src/cli/installer/mod.rs.html
    index 44f69c1ce..d76f05c53 100644
    --- a/docs/api/src/cli/installer/mod.rs.html
    +++ b/docs/api/src/cli/installer/mod.rs.html
    @@ -1,4 +1,6 @@
    -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    @@ -196,7 +198,7 @@
     pub(crate) mod rustup_component_installer;
     
     #[cfg(test)]
    -#[path = "mod_test.rs"]
    +#[path = "mod_test.rs"]
     mod mod_test;
     
     use crate::scriptengine;
    @@ -207,12 +209,12 @@
     fn get_cargo_plugin_info_from_command(task_config: &Task) -> Option<(String, String)> {
         match task_config.command {
             Some(ref command) => {
    -            if command == "cargo" {
    +            if command == "cargo" {
                     match task_config.args {
                         Some(ref args) => {
    -                        if args.len() > 0 && !args[0].starts_with("-") {
    +                        if args.len() > 0 && !args[0].starts_with("-") {
                                 // create crate name
    -                            let mut crate_name = "cargo-".to_string();
    +                            let mut crate_name = "cargo-".to_string();
                                 crate_name = crate_name + &args[0];
     
                                 Some((args[0].clone(), crate_name))
    @@ -286,7 +288,7 @@
                             validate,
                             &None,
                             &None,
    -                        &Some(false), // we can't validate, so we do not allow force
    +                        &Some(false), // we can't validate, so we do not allow force
                         ),
                     };
                 }
    @@ -298,8 +300,8 @@
                                 Some(arg) => match install_info.crate_name {
                                     Some(ref crate_name) => (arg, crate_name.to_string()),
                                     None => {
    -                                    error!("Missing crate name to invoke.");
    -                                    panic!("Missing crate name to invoke.");
    +                                    error!("Missing crate name to invoke.");
    +                                    panic!("Missing crate name to invoke.");
                                     }
                                 },
                                 None => match install_info.crate_name {
    @@ -307,8 +309,8 @@
                                         (crate_name.to_string(), crate_name.to_string())
                                     }
                                     None => {
    -                                    error!("Missing cargo command to invoke.");
    -                                    panic!("Missing crate command to invoke.");
    +                                    error!("Missing cargo command to invoke.");
    +                                    panic!("Missing crate command to invoke.");
                                     }
                                 },
                             },
    @@ -361,7 +363,7 @@
                             &None,
                         );
                     }
    -                None => debug!("No installation script defined."),
    +                None => debug!("No installation script defined."),
                 },
             },
         }
    diff --git a/docs/api/src/cli/installer/rustup_component_installer.rs.html b/docs/api/src/cli/installer/rustup_component_installer.rs.html
    index 46e107c64..c73a80ede 100644
    --- a/docs/api/src/cli/installer/rustup_component_installer.rs.html
    +++ b/docs/api/src/cli/installer/rustup_component_installer.rs.html
    @@ -1,4 +1,6 @@
    -rustup_component_installer.rs - source
    1
    +rustup_component_installer.rs - source
    +    
    1
     2
     3
     4
    @@ -144,7 +146,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "rustup_component_installer_test.rs"]
    +#[path = "rustup_component_installer_test.rs"]
     mod rustup_component_installer_test;
     
     use crate::command;
    @@ -169,7 +171,7 @@
         };
     
         debug!(
    -        "Validating installation using command: {} args: {:#?}",
    +        "Validating installation using command: {} args: {:#?}",
             binary, &test_args
         );
         let result = command_struct.args(test_args).output();
    @@ -177,7 +179,7 @@
         match result {
             Ok(output) => {
                 let exit_code = command::get_exit_code(Ok(output.status), false);
    -            debug!("Installation validation test exit code: {}", exit_code);
    +            debug!("Installation validation test exit code: {}", exit_code);
     
                 if exit_code != 0 {
                     false
    @@ -187,7 +189,7 @@
             }
             Err(error) => {
                 debug!(
    -                "Unable to check if crate is installed: {} {:#?}",
    +                "Unable to check if crate is installed: {} {:#?}",
                     binary, &error
                 );
                 false
    @@ -199,15 +201,15 @@
         toolchain: &Option<ToolchainSpecifier>,
         info: &InstallRustupComponentInfo,
     ) -> bool {
    -    let mut command_spec = Command::new("rustup");
    -    command_spec.arg("component");
    -    command_spec.arg("add");
    +    let mut command_spec = Command::new("rustup");
    +    command_spec.arg("component");
    +    command_spec.arg("add");
     
         match toolchain {
             Some(ref toolchain) => {
                 let channel = get_channel(toolchain);
     
    -            command_spec.arg("--toolchain");
    +            command_spec.arg("--toolchain");
                 command_spec.arg(&channel);
             }
             None => {}
    @@ -221,14 +223,14 @@
     
                 if exit_code != 0 {
                     debug!(
    -                    "Failed to add component: {} via rustup",
    +                    "Failed to add component: {} via rustup",
                         &info.rustup_component_name
                     );
     
                     false
                 } else {
                     debug!(
    -                    "Component: {} added via rustup",
    +                    "Component: {} added via rustup",
                         &info.rustup_component_name
                     );
     
    @@ -237,7 +239,7 @@
             }
             Err(error) => {
                 debug!(
    -                "Failed to add component: {} via rustup, error: {:#?}",
    +                "Failed to add component: {} via rustup, error: {:#?}",
                     &info.rustup_component_name, &error
                 );
                 false
    @@ -260,7 +262,7 @@
     
         if !installed {
             debug!(
    -            "Rustup Component: {} not installed.",
    +            "Rustup Component: {} not installed.",
                 &info.rustup_component_name
             );
     
    @@ -268,7 +270,7 @@
     
             if validate && !installed {
                 error!(
    -                "Failed to add rustup component: {}",
    +                "Failed to add rustup component: {}",
                     &info.rustup_component_name
                 );
             }
    diff --git a/docs/api/src/cli/io.rs.html b/docs/api/src/cli/io.rs.html
    index 9d72a7e0c..0e8526ffc 100644
    --- a/docs/api/src/cli/io.rs.html
    +++ b/docs/api/src/cli/io.rs.html
    @@ -1,4 +1,6 @@
    -io.rs - source
    1
    +io.rs - source
    +    
    1
     2
     3
     4
    @@ -163,7 +165,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "io_test.rs"]
    +#[path = "io_test.rs"]
     mod io_test;
     
     use fsio::file::modify_file;
    @@ -182,8 +184,8 @@
         match fsio::file::write_text_file(&file_path, text) {
             Ok(_) => file_path,
             Err(error) => {
    -            error!("Unable to create file: {} {:#?}", &file_path, &error);
    -            panic!("Unable to create file, error: {}", error);
    +            error!("Unable to create file: {} {:#?}", &file_path, &error);
    +            panic!("Unable to create file, error: {}", error);
             }
         }
     }
    @@ -197,16 +199,16 @@
         match modify_file(&file_path, write_content, false) {
             Ok(_) => file_path,
             Err(error) => {
    -            error!("Unable to write to file: {} {:#?}", &file_path, &error);
    -            panic!("Unable to write to file, error: {}", error);
    +            error!("Unable to write to file: {} {:#?}", &file_path, &error);
    +            panic!("Unable to write to file, error: {}", error);
             }
         }
     }
     
     pub(crate) fn delete_file(file: &str) {
         match fsio::file::delete(file) {
    -        Ok(_) => debug!("File deleted: {}", &file),
    -        Err(error) => debug!("Unable to delete file: {} {:#?}", &file, error),
    +        Ok(_) => debug!("File deleted: {}", &file),
    +        Err(error) => debug!("Unable to delete file: {} {:#?}", &file, error),
         }
     }
     
    @@ -218,11 +220,11 @@
     }
     
     pub(crate) fn read_text_file(file_path: &PathBuf) -> String {
    -    debug!("Opening file: {:#?}", &file_path);
    +    debug!("Opening file: {:#?}", &file_path);
     
         match fsio::file::read_text_file(file_path) {
             Ok(content) => content,
    -        Err(error) => panic!("Unable to read file: {:?} error: {:#?}", file_path, error),
    +        Err(error) => panic!("Unable to read file: {:?} error: {:#?}", file_path, error),
         }
     }
     
    @@ -240,9 +242,9 @@
                         Ok(path) => {
                             if (include_dirs && path.is_dir()) || (include_files && path.is_file()) {
                                 let mut value_string: String = FromPath::from_path(&path);
    -                            value_string = value_string.replace("\\", "/");
    -                            if !value_string.starts_with("./") {
    -                                value_string.insert_str(0, "./");
    +                            value_string = value_string.replace("\\", "/");
    +                            if !value_string.starts_with("./") {
    +                                value_string.insert_str(0, "./");
                                 }
     
                                 path_list.push(value_string);
    @@ -250,7 +252,7 @@
                         }
                         Err(error) => {
                             error!(
    -                            "Error while iterating over path entries of glob: {}, error: {:#?}",
    +                            "Error while iterating over path entries of glob: {}, error: {:#?}",
                                 glob_pattern, error
                             );
                             return vec![];
    @@ -260,7 +262,7 @@
             }
             Err(error) => {
                 error!(
    -                "Error while running glob: {}, error: {:#?}",
    +                "Error while running glob: {}, error: {:#?}",
                     glob_pattern, error
                 );
                 return vec![];
    @@ -272,8 +274,8 @@
                 let mut included_paths = HashSet::new();
     
                 match ignore_type_value.as_str() {
    -                "git" => {
    -                    for entry in WalkBuilder::new("./")
    +                "git" => {
    +                    for entry in WalkBuilder::new("./")
                             .hidden(true)
                             .parents(true)
                             .git_ignore(true)
    @@ -283,17 +285,17 @@
                             match entry {
                                 Ok(path) => {
                                     let mut value_string: String = FromPath::from_path(&path.path());
    -                                value_string = value_string.replace("\\", "/");
    +                                value_string = value_string.replace("\\", "/");
                                     included_paths.insert(value_string);
                                 }
                                 Err(error) => error!(
    -                                "Error while running git ignore path checks, error: {:#?}",
    +                                "Error while running git ignore path checks, error: {:#?}",
                                     error
                                 ),
                             }
                         }
                     }
    -                _ => error!("Unsupported ignore type: {}", &ignore_type_value),
    +                _ => error!("Unsupported ignore type: {}", &ignore_type_value),
                 };
     
                 if included_paths.is_empty() {
    diff --git a/docs/api/src/cli/legacy.rs.html b/docs/api/src/cli/legacy.rs.html
    index d81aeeab4..d0eaec527 100644
    --- a/docs/api/src/cli/legacy.rs.html
    +++ b/docs/api/src/cli/legacy.rs.html
    @@ -1,4 +1,6 @@
    -legacy.rs - source
    1
    +legacy.rs - source
    +    
    1
     2
     3
     4
    @@ -98,7 +100,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "legacy_test.rs"]
    +#[path = "legacy_test.rs"]
     mod legacy_test;
     
     use dirs_next;
    @@ -109,13 +111,13 @@
     
     fn get_legacy_cargo_make_home() -> Option<PathBuf> {
         match dirs_next::home_dir() {
    -        Some(directory) => Some(directory.join(".cargo-make")),
    +        Some(directory) => Some(directory.join(".cargo-make")),
             None => None,
         }
     }
     
     pub(crate) fn get_cargo_make_home() -> Option<PathBuf> {
    -    match env::var("CARGO_MAKE_HOME") {
    +    match env::var("CARGO_MAKE_HOME") {
             Ok(directory) => Some(PathBuf::from(directory)),
             _ => get_legacy_cargo_make_home(),
         }
    @@ -140,11 +142,11 @@
     
             if exists {
                 let target_file = target_directory.join(file);
    -            info!("Legacy cargo-make file: {:#?} exists, target directory: {:#?} exists, copy to: {:#?}", &legacy_file, &target_directory, &target_file);
    +            info!("Legacy cargo-make file: {:#?} exists, target directory: {:#?} exists, copy to: {:#?}", &legacy_file, &target_directory, &target_file);
     
                 match copy(&legacy_file, &target_file) {
                     Ok(_) => {
    -                    info!("Delete legacy cargo-make file: {:#?}", &legacy_file);
    +                    info!("Delete legacy cargo-make file: {:#?}", &legacy_file);
                         fsio::file::delete(&legacy_file).unwrap_or(());
     
                         // delete old directory (will only work if empty)
    @@ -154,7 +156,7 @@
                     }
                     Err(error) => {
                         info!(
    -                        "Error while copying legacy file: {:#?} to: {:#?}, error: {:#?}",
    +                        "Error while copying legacy file: {:#?} to: {:#?}, error: {:#?}",
                             &legacy_file, &target_file, &error
                         );
                         false
    @@ -170,7 +172,7 @@
     
     pub(crate) fn migrate(target_directory: PathBuf, file: &str) -> bool {
         debug!(
    -        "Legacy cargo-make target_directory: {:#?} file: {:#?} ",
    +        "Legacy cargo-make target_directory: {:#?} file: {:#?} ",
             &target_directory, &file
         );
     
    @@ -182,7 +184,7 @@
     
     pub(crate) fn show_deprecated_attriute_warning(old_attribute: &str, new_attribute: &str) {
         warn!(
    -        "[DEPRECATED] The attribute '{}' has been replaced with '{}'. Please update your makefile.",
    +        "[DEPRECATED] The attribute '{}' has been replaced with '{}'. Please update your makefile.",
             old_attribute, new_attribute
         );
     }
    diff --git a/docs/api/src/cli/logger.rs.html b/docs/api/src/cli/logger.rs.html
    index f149a923d..637418e0b 100644
    --- a/docs/api/src/cli/logger.rs.html
    +++ b/docs/api/src/cli/logger.rs.html
    @@ -1,4 +1,6 @@
    -logger.rs - source
    1
    +logger.rs - source
    +    
    1
     2
     3
     4
    @@ -187,7 +189,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "logger_test.rs"]
    +#[path = "logger_test.rs"]
     mod logger_test;
     
     use crate::recursion_level;
    @@ -219,11 +221,11 @@
     pub(crate) fn get_level(level_name: &str) -> LogLevel {
         let mut level = LogLevel::INFO;
     
    -    if level_name == "verbose" {
    +    if level_name == "verbose" {
             level = LogLevel::VERBOSE;
    -    } else if level_name == "error" {
    +    } else if level_name == "error" {
             level = LogLevel::ERROR;
    -    } else if level_name == "off" {
    +    } else if level_name == "off" {
             level = LogLevel::OFF;
         }
     
    @@ -232,14 +234,14 @@
     
     /// Returns the current logger level name
     pub(crate) fn get_log_level() -> String {
    -    let level = if envmnt::is_equal("CARGO_MAKE_LOG_LEVEL", "off") {
    -        "off"
    +    let level = if envmnt::is_equal("CARGO_MAKE_LOG_LEVEL", "off") {
    +        "off"
         } else if log_enabled!(Level::Debug) {
    -        "verbose"
    +        "verbose"
         } else if log_enabled!(Level::Info) {
    -        "info"
    +        "info"
         } else {
    -        "error"
    +        "error"
         };
     
         level.to_string()
    @@ -247,7 +249,7 @@
     
     fn get_name_for_filter(filter: &LevelFilter) -> String {
         let level = match filter {
    -        LevelFilter::Off => return "off".to_string(),
    +        LevelFilter::Off => return "off".to_string(),
             LevelFilter::Debug => Level::Debug,
             LevelFilter::Warn => Level::Warn,
             LevelFilter::Error => Level::Error,
    @@ -259,10 +261,10 @@
     
     fn get_name_for_level(level: &Level) -> String {
         match level {
    -        Level::Debug => "verbose".to_string(),
    -        Level::Warn => "warn".to_string(),
    -        Level::Error => "error".to_string(),
    -        _ => "info".to_string(),
    +        Level::Debug => "verbose".to_string(),
    +        Level::Warn => "warn".to_string(),
    +        Level::Error => "error".to_string(),
    +        _ => "info".to_string(),
         }
     }
     
    @@ -296,7 +298,7 @@
     pub(crate) fn should_reduce_output(flow_info: &FlowInfo) -> bool {
         match flow_info.config.config.reduce_output {
             Some(value) => value,
    -        None => !envmnt::is("CARGO_MAKE_CI"),
    +        None => !envmnt::is("CARGO_MAKE_CI"),
         }
     }
     
    @@ -304,7 +306,7 @@
     ///
     /// # Arguments
     ///
    -/// * `level_name` - The log level name ('verbose', 'info', 'error', 'off')
    +/// * `level_name` - The log level name ('verbose', 'info', 'error', 'off')
     pub(crate) fn init(options: &LoggerOptions) {
         let level_name = &options.level;
         let color = options.color;
    @@ -319,25 +321,25 @@
         };
         let level_name_value = get_name_for_filter(&log_level);
     
    -    envmnt::set("CARGO_MAKE_LOG_LEVEL", &level_name_value);
    -    envmnt::set_bool("CARGO_MAKE_DISABLE_COLOR", !color);
    +    envmnt::set("CARGO_MAKE_LOG_LEVEL", &level_name_value);
    +    envmnt::set_bool("CARGO_MAKE_DISABLE_COLOR", !color);
     
         let recursion_lvl = recursion_level::get();
         let recursion_level_log = if recursion_lvl == 0 {
    -        "".to_string()
    +        "".to_string()
         } else {
    -        format!("[{}]", recursion_lvl)
    +        format!("[{}]", recursion_lvl)
         };
     
         let result = fern::Dispatch::new()
             .format(move |out, message, record| {
    -            let name = env!("CARGO_PKG_NAME");
    +            let name = env!("CARGO_PKG_NAME");
     
                 let record_level = record.level();
     
                 if cfg!(test) {
                     if record_level == LevelFilter::Error {
    -                    panic!("test error flow: {}", message);
    +                    panic!("test error flow: {}", message);
                     }
                 }
     
    @@ -346,12 +348,12 @@
                 let record_level_fmt = get_formatted_log_level(&record_level, color);
     
                 out.finish(format_args!(
    -                "[{}]{} {} - {}",
    +                "[{}]{} {} - {}",
                     &name_fmt, &recursion_level_log, &record_level_fmt, &message
                 ));
     
                 if record_level == Level::Error {
    -                warn!("Build Failed.");
    +                warn!("Build Failed.");
     
                     exit(1);
                 }
    @@ -361,7 +363,7 @@
             .apply();
     
         if result.is_err() {
    -        println!("Unable to setup logger.");
    +        println!("Unable to setup logger.");
         }
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/mod.rs.html b/docs/api/src/cli/mod.rs.html index 65bb97238..df0506788 100644 --- a/docs/api/src/cli/mod.rs.html +++ b/docs/api/src/cli/mod.rs.html @@ -1,4 +1,6 @@ -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    @@ -244,14 +246,34 @@
     244
     245
     246
    +247
    +248
    +249
    +250
    +251
    +252
    +253
    +254
    +255
    +256
    +257
    +258
    +259
    +260
    +261
    +262
    +263
     
    #![deny(
         absolute_paths_not_starting_with_crate,
         ambiguous_associated_items,
    +    ambiguous_glob_imports,
         ambiguous_glob_reexports,
    +    ambiguous_wide_pointer_comparisons,
         anonymous_parameters,
         arithmetic_overflow,
         array_into_iter,
         asm_sub_register,
    +    async_fn_in_trait,
         bad_asm_style,
         bindings_with_variant_name,
         break_with_label_and_loop,
    @@ -263,6 +285,7 @@
         confusable_idents,
         const_evaluatable_unchecked,
         const_item_mutation,
    +    const_patterns_without_partial_eq,
         dead_code,
         deprecated,
         deprecated_cfg_attr_crate_type_name,
    @@ -275,6 +298,7 @@
         dropping_references,
         duplicate_macro_attributes,
         dyn_drop,
    +    elided_lifetimes_in_associated_constant,
         ellipsis_inclusive_range_patterns,
         enum_intrinsics_non_enums,
         explicit_outlives_requirements,
    @@ -285,9 +309,9 @@
         forgetting_copy_types,
         forgetting_references,
         function_item_references,
    +    hidden_glob_reexports,
         ill_formed_attribute_input,
         illegal_floating_point_literal_pattern,
    -    implied_bounds_entailment,
         improper_ctypes,
         improper_ctypes_definitions,
         incomplete_features,
    @@ -295,10 +319,14 @@
         indirect_structural_match,
         ineffective_unstable_trait_impl,
         inline_no_sanitize,
    -    invalid_alignment,
    +    internal_features,
         invalid_atomic_ordering,
         invalid_doc_attributes,
    +    invalid_from_utf8,
    +    invalid_from_utf8_unchecked,
         invalid_macro_export_arguments,
    +    invalid_nan_comparisons,
    +    invalid_reference_casting,
         invalid_type_param_default,
         invalid_value,
         irrefutable_let_patterns,
    @@ -308,6 +336,7 @@
         legacy_derive_helpers,
         let_underscore_drop,
         let_underscore_lock,
    +    long_running_const_eval,
         macro_expanded_macro_exports_accessed_by_absolute_paths,
         map_unit_fn,
         meta_variable_misuse,
    @@ -336,11 +365,13 @@
         path_statements,
         patterns_in_fns_without_body,
         pointer_structural_match,
    -    private_in_public,
    +    private_bounds,
    +    private_interfaces,
         proc_macro_back_compat,
         proc_macro_derive_resolution_fallback,
         pub_use_of_private_extern_crate,
         redundant_semicolons,
    +    refining_impl_trait,
         repr_transparent_external_private_fields,
         rust_2021_incompatible_closure_captures,
         rust_2021_incompatible_or_patterns,
    @@ -350,6 +381,7 @@
         soft_unstable,
         special_module_name,
         stable_features,
    +    static_mut_ref,
         suspicious_auto_trait_impls,
         suspicious_double_ref_op,
         temporary_cstring_as_ptr,
    @@ -364,9 +396,11 @@
         unconditional_panic,
         unconditional_recursion,
         undefined_naked_function_abi,
    +    undropped_manually_drops,
         unexpected_cfgs,
         ungated_async_fn_track_caller,
         uninhabited_static,
    +    unit_bindings,
         unknown_crate_types,
         unnameable_test_items,
         unreachable_code,
    @@ -381,6 +415,7 @@
         unused_allocation,
         unused_assignments,
         unused_assignments,
    +    unused_associated_type_bounds,
         unused_attributes,
         unused_braces,
         unused_comparisons,
    @@ -398,12 +433,13 @@
         unused_mut,
         unused_parens,
         unused_qualifications,
    -    unused_tuple_struct_fields,
         unused_unsafe,
         unused_variables,
         useless_deprecated,
    +    useless_ptr_null_checks,
         where_clauses_object_safety,
    -    while_true
    +    while_true,
    +    writes_through_immutable_pointer
     )]
     #![warn(macro_use_extern_crate, unknown_lints)]
     #![allow(
    diff --git a/docs/api/src/cli/plugin/descriptor.rs.html b/docs/api/src/cli/plugin/descriptor.rs.html
    index 6ca3f4ac3..99d9ba17b 100644
    --- a/docs/api/src/cli/plugin/descriptor.rs.html
    +++ b/docs/api/src/cli/plugin/descriptor.rs.html
    @@ -1,4 +1,6 @@
    -descriptor.rs - source
    1
    +descriptor.rs - source
    +    
    1
     2
     3
     4
    @@ -73,7 +75,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "descriptor_test.rs"]
    +#[path = "descriptor_test.rs"]
     mod descriptor_test;
     
     use crate::plugin::types::{Plugin, Plugins};
    diff --git a/docs/api/src/cli/plugin/mod.rs.html b/docs/api/src/cli/plugin/mod.rs.html
    index bb2a53e31..8b8e55193 100644
    --- a/docs/api/src/cli/plugin/mod.rs.html
    +++ b/docs/api/src/cli/plugin/mod.rs.html
    @@ -1,4 +1,6 @@
    -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    diff --git a/docs/api/src/cli/plugin/runner.rs.html b/docs/api/src/cli/plugin/runner.rs.html
    index 9b19c223a..64925c2fc 100644
    --- a/docs/api/src/cli/plugin/runner.rs.html
    +++ b/docs/api/src/cli/plugin/runner.rs.html
    @@ -1,4 +1,6 @@
    -runner.rs - source
    1
    +runner.rs - source
    +    
    1
     2
     3
     4
    @@ -316,7 +318,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "runner_test.rs"]
    +#[path = "runner_test.rs"]
     mod runner_test;
     
     use crate::environment;
    @@ -342,7 +344,7 @@
     ) -> String {
         let name_string = name.to_string();
         if seen.contains(&name_string) {
    -        error!("Detected cycle while resolving plugin alias: {}", name);
    +        error!("Detected cycle while resolving plugin alias: {}", name);
         }
         seen.push(name_string);
     
    @@ -380,7 +382,7 @@
         impl_plugin_name: String,
     ) {
         debug!(
    -        "Running Task: {} via plugin: {} script:\n{}",
    +        "Running Task: {} via plugin: {} script:\n{}",
             &step.name, &impl_plugin_name, &plugin.script
         );
     
    @@ -391,7 +393,7 @@
     
         let mut context = duck_script::create_common_context(&cli_arguments);
     
    -    let mut script_text = "exit_on_error true\n".to_string();
    +    let mut script_text = "exit_on_error true\n".to_string();
         setup_script_globals(
             &mut context,
             flow_info,
    @@ -407,7 +409,7 @@
     
                 match run_script(&script_text, context) {
                     Ok(_) => (),
    -                Err(error) => error!("Error while running plugin: {}", error),
    +                Err(error) => error!("Error while running plugin: {}", error),
                 };
     
                 // revert to originl working directory
    @@ -416,7 +418,7 @@
                     environment::setup_cwd(Some(&path));
                 }
             }
    -        Err(error) => error!("Unable to load duckscript SDK: {}", error),
    +        Err(error) => error!("Unable to load duckscript SDK: {}", error),
         };
     }
     
    @@ -429,18 +431,18 @@
     ) {
         context
             .variables
    -        .insert("flow.task.name".to_string(), flow_info.task.to_string());
    -    script.push_str("flow.cli.args = array\n");
    +        .insert("flow.task.name".to_string(), flow_info.task.to_string());
    +    script.push_str("flow.cli.args = array\n");
         if let Some(ref cli_arguments) = flow_info.cli_arguments {
             for arg in cli_arguments {
    -            script.push_str("array_push ${flow.cli.args} \"");
    -            script.push_str(&arg.replace("$", "\\$"));
    -            script.push_str("\"\n");
    +            script.push_str("array_push ${flow.cli.args} \"");
    +            script.push_str(&arg.replace("$", "\\$"));
    +            script.push_str("\"\n");
             }
         }
         context
             .variables
    -        .insert("plugin.impl.name".to_string(), impl_plugin_name.to_string());
    +        .insert("plugin.impl.name".to_string(), impl_plugin_name.to_string());
     
         setup_script_globals_for_task(context, step, script);
     }
    @@ -451,63 +453,63 @@
         let json_string = json!(task);
         context
             .variables
    -        .insert("task.as_json".to_string(), json_string.to_string());
    +        .insert("task.as_json".to_string(), json_string.to_string());
     
         // meta info
         context.variables.insert(
    -        "task.has_condition".to_string(),
    +        "task.has_condition".to_string(),
             (task.condition.is_some() || task.condition_script.is_some()).to_string(),
         );
         context.variables.insert(
    -        "task.has_env".to_string(),
    +        "task.has_env".to_string(),
             (task.env_files.is_some() || task.env.is_some()).to_string(),
         );
         context.variables.insert(
    -        "task.has_install_instructions".to_string(),
    +        "task.has_install_instructions".to_string(),
             (task.install_crate.is_some()
                 || task.install_crate_args.is_some()
                 || task.install_script.is_some())
             .to_string(),
         );
         context.variables.insert(
    -        "task.has_command".to_string(),
    +        "task.has_command".to_string(),
             task.command.is_some().to_string(),
         );
         context.variables.insert(
    -        "task.has_script".to_string(),
    +        "task.has_script".to_string(),
             task.script.is_some().to_string(),
         );
         context.variables.insert(
    -        "task.has_run_task".to_string(),
    +        "task.has_run_task".to_string(),
             task.run_task.is_some().to_string(),
         );
         context.variables.insert(
    -        "task.has_dependencies".to_string(),
    +        "task.has_dependencies".to_string(),
             task.dependencies.is_some().to_string(),
         );
         context.variables.insert(
    -        "task.has_toolchain_specifier".to_string(),
    +        "task.has_toolchain_specifier".to_string(),
             task.toolchain.is_some().to_string(),
         );
     
         context
             .variables
    -        .insert("task.name".to_string(), step.name.clone());
    +        .insert("task.name".to_string(), step.name.clone());
     
         context.variables.insert(
    -        "task.description".to_string(),
    -        task.description.unwrap_or("".to_string()),
    +        "task.description".to_string(),
    +        task.description.unwrap_or("".to_string()),
         );
         context.variables.insert(
    -        "task.category".to_string(),
    -        task.category.unwrap_or("".to_string()),
    +        "task.category".to_string(),
    +        task.category.unwrap_or("".to_string()),
         );
         context.variables.insert(
    -        "task.disabled".to_string(),
    +        "task.disabled".to_string(),
             task.disabled.unwrap_or(false).to_string(),
         );
         context.variables.insert(
    -        "task.private".to_string(),
    +        "task.private".to_string(),
             task.private.unwrap_or(false).to_string(),
         );
         let deprecated = match task.deprecated {
    @@ -519,53 +521,53 @@
         };
         context
             .variables
    -        .insert("task.deprecated".to_string(), deprecated.to_string());
    +        .insert("task.deprecated".to_string(), deprecated.to_string());
         context.variables.insert(
    -        "task.workspace".to_string(),
    +        "task.workspace".to_string(),
             task.workspace.unwrap_or(false).to_string(),
         );
         context.variables.insert(
    -        "task.plugin.name".to_string(),
    -        task.plugin.unwrap_or("".to_string()),
    +        "task.plugin.name".to_string(),
    +        task.plugin.unwrap_or("".to_string()),
         );
         context
             .variables
    -        .insert("task.watch".to_string(), task.watch.is_some().to_string());
    +        .insert("task.watch".to_string(), task.watch.is_some().to_string());
         context.variables.insert(
    -        "task.ignore_errors".to_string(),
    +        "task.ignore_errors".to_string(),
             task.ignore_errors.unwrap_or(false).to_string(),
         );
         context.variables.insert(
    -        "task.cwd".to_string(),
    -        task.cwd.unwrap_or("".to_string()).to_string(),
    +        "task.cwd".to_string(),
    +        task.cwd.unwrap_or("".to_string()).to_string(),
         );
         context.variables.insert(
    -        "task.command".to_string(),
    -        task.command.unwrap_or("".to_string()).to_string(),
    +        "task.command".to_string(),
    +        task.command.unwrap_or("".to_string()).to_string(),
         );
    -    script.push_str("task.args = array\n");
    +    script.push_str("task.args = array\n");
         if let Some(args) = task.args {
             for arg in &args {
    -            script.push_str("array_push ${task.args} \"");
    -            script.push_str(&arg.replace("$", "\\$"));
    -            script.push_str("\"\n");
    +            script.push_str("array_push ${task.args} \"");
    +            script.push_str(&arg.replace("$", "\\$"));
    +            script.push_str("\"\n");
             }
         }
         context.variables.insert(
    -        "task.script_runner".to_string(),
    -        task.script_runner.unwrap_or("".to_string()).to_string(),
    +        "task.script_runner".to_string(),
    +        task.script_runner.unwrap_or("".to_string()).to_string(),
         );
    -    script.push_str("task.script_runner_args = array\n");
    +    script.push_str("task.script_runner_args = array\n");
         if let Some(args) = task.script_runner_args {
             for arg in &args {
    -            script.push_str("array_push ${task.script_runner_args} \"");
    +            script.push_str("array_push ${task.script_runner_args} \"");
                 script.push_str(arg);
    -            script.push_str("\"\n");
    +            script.push_str("\"\n");
             }
         }
         context.variables.insert(
    -        "task.script_extension".to_string(),
    -        task.script_extension.unwrap_or("".to_string()).to_string(),
    +        "task.script_extension".to_string(),
    +        task.script_extension.unwrap_or("".to_string()).to_string(),
         );
     }
     
    @@ -602,7 +604,7 @@
                 Some(ref plugin_name) => match get_plugin(&flow_info.config, plugin_name) {
                     Some((normalized_plugin_name, plugin)) => {
                         debug!(
    -                        "Running Task: {} via plugin: {}",
    +                        "Running Task: {} via plugin: {}",
                             &step.name, &normalized_plugin_name
                         );
     
    @@ -612,7 +614,7 @@
                     }
                     None => {
                         error!(
    -                        "Invalid task: {}, unknown plugin: {}",
    +                        "Invalid task: {}, unknown plugin: {}",
                             &step.name, plugin_name
                         );
                         false
    diff --git a/docs/api/src/cli/plugin/sdk/cm_plugin_check_task_condition.rs.html b/docs/api/src/cli/plugin/sdk/cm_plugin_check_task_condition.rs.html
    index 230a6c960..d0a4eee7b 100644
    --- a/docs/api/src/cli/plugin/sdk/cm_plugin_check_task_condition.rs.html
    +++ b/docs/api/src/cli/plugin/sdk/cm_plugin_check_task_condition.rs.html
    @@ -1,4 +1,6 @@
    -cm_plugin_check_task_condition.rs - source
    1
    +cm_plugin_check_task_condition.rs - source
    +    
    1
     2
     3
     4
    @@ -45,7 +47,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "cm_plugin_check_task_condition_test.rs"]
    +#[path = "cm_plugin_check_task_condition_test.rs"]
     mod cm_plugin_check_task_condition_test;
     
     use crate::runner;
    @@ -60,7 +62,7 @@
     
     impl Command for CommandImpl {
         fn name(&self) -> String {
    -        "cm_plugin_check_task_condition".to_string()
    +        "cm_plugin_check_task_condition".to_string()
         }
     
         fn clone_and_box(&self) -> Box<dyn Command> {
    diff --git a/docs/api/src/cli/plugin/sdk/cm_plugin_force_plugin_clear.rs.html b/docs/api/src/cli/plugin/sdk/cm_plugin_force_plugin_clear.rs.html
    index bac446547..370bd86c8 100644
    --- a/docs/api/src/cli/plugin/sdk/cm_plugin_force_plugin_clear.rs.html
    +++ b/docs/api/src/cli/plugin/sdk/cm_plugin_force_plugin_clear.rs.html
    @@ -1,4 +1,6 @@
    -cm_plugin_force_plugin_clear.rs - source
    1
    +cm_plugin_force_plugin_clear.rs - source
    +    
    1
     2
     3
     4
    @@ -49,7 +51,7 @@
     
     impl Command for CommandImpl {
         fn name(&self) -> String {
    -        "cm_plugin_force_plugin_clear".to_string()
    +        "cm_plugin_force_plugin_clear".to_string()
         }
     
         fn clone_and_box(&self) -> Box<dyn Command> {
    @@ -59,7 +61,7 @@
         fn run(&self, _arguments: Vec<String>) -> CommandResult {
             self.flow_state.borrow_mut().forced_plugin = None;
     
    -        CommandResult::Continue(Some("true".to_string()))
    +        CommandResult::Continue(Some("true".to_string()))
         }
     }
     
    diff --git a/docs/api/src/cli/plugin/sdk/cm_plugin_force_plugin_set.rs.html b/docs/api/src/cli/plugin/sdk/cm_plugin_force_plugin_set.rs.html
    index 582edafd2..c403f5573 100644
    --- a/docs/api/src/cli/plugin/sdk/cm_plugin_force_plugin_set.rs.html
    +++ b/docs/api/src/cli/plugin/sdk/cm_plugin_force_plugin_set.rs.html
    @@ -1,4 +1,6 @@
    -cm_plugin_force_plugin_set.rs - source
    1
    +cm_plugin_force_plugin_set.rs - source
    +    
    1
     2
     3
     4
    @@ -46,7 +48,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "cm_plugin_force_plugin_set_test.rs"]
    +#[path = "cm_plugin_force_plugin_set_test.rs"]
     mod cm_plugin_force_plugin_set_test;
     
     use crate::types::{FlowState, Step};
    @@ -62,7 +64,7 @@
     
     impl Command for CommandImpl {
         fn name(&self) -> String {
    -        "cm_plugin_force_plugin_set".to_string()
    +        "cm_plugin_force_plugin_set".to_string()
         }
     
         fn clone_and_box(&self) -> Box<dyn Command> {
    @@ -72,7 +74,7 @@
         fn run(&self, _arguments: Vec<String>) -> CommandResult {
             self.flow_state.borrow_mut().forced_plugin = self.step.config.plugin.clone();
     
    -        CommandResult::Continue(Some("true".to_string()))
    +        CommandResult::Continue(Some("true".to_string()))
         }
     }
     
    diff --git a/docs/api/src/cli/plugin/sdk/cm_plugin_run_custom_task.rs.html b/docs/api/src/cli/plugin/sdk/cm_plugin_run_custom_task.rs.html
    index 7658249df..82f495d82 100644
    --- a/docs/api/src/cli/plugin/sdk/cm_plugin_run_custom_task.rs.html
    +++ b/docs/api/src/cli/plugin/sdk/cm_plugin_run_custom_task.rs.html
    @@ -1,4 +1,6 @@
    -cm_plugin_run_custom_task.rs - source
    1
    +cm_plugin_run_custom_task.rs - source
    +    
    1
     2
     3
     4
    @@ -77,7 +79,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "cm_plugin_run_custom_task_test.rs"]
    +#[path = "cm_plugin_run_custom_task_test.rs"]
     mod cm_plugin_run_custom_task_test;
     
     use crate::runner;
    @@ -96,7 +98,7 @@
     
     impl Command for CommandImpl {
         fn name(&self) -> String {
    -        "cm_plugin_run_custom_task".to_string()
    +        "cm_plugin_run_custom_task".to_string()
         }
     
         fn clone_and_box(&self) -> Box<dyn Command> {
    @@ -105,7 +107,7 @@
     
         fn run(&self, arguments: Vec<String>) -> CommandResult {
             if arguments.is_empty() {
    -            CommandResult::Error("No task data provided.".to_string())
    +            CommandResult::Error("No task data provided.".to_string())
             } else {
                 let task: Task = match serde_json::from_str(&arguments[0]) {
                     Ok(value) => value,
    @@ -128,7 +130,7 @@
                     &options,
                 );
     
    -            CommandResult::Continue(Some("true".to_string()))
    +            CommandResult::Continue(Some("true".to_string()))
             }
         }
     }
    diff --git a/docs/api/src/cli/plugin/sdk/cm_plugin_run_task.rs.html b/docs/api/src/cli/plugin/sdk/cm_plugin_run_task.rs.html
    index c93266ec0..7d9eb598d 100644
    --- a/docs/api/src/cli/plugin/sdk/cm_plugin_run_task.rs.html
    +++ b/docs/api/src/cli/plugin/sdk/cm_plugin_run_task.rs.html
    @@ -1,4 +1,6 @@
    -cm_plugin_run_task.rs - source
    1
    +cm_plugin_run_task.rs - source
    +    
    1
     2
     3
     4
    @@ -62,7 +64,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "cm_plugin_run_task_test.rs"]
    +#[path = "cm_plugin_run_task_test.rs"]
     mod cm_plugin_run_task_test;
     
     use crate::runner;
    @@ -80,7 +82,7 @@
     
     impl Command for CommandImpl {
         fn name(&self) -> String {
    -        "cm_plugin_run_task".to_string()
    +        "cm_plugin_run_task".to_string()
         }
     
         fn clone_and_box(&self) -> Box<dyn Command> {
    @@ -99,7 +101,7 @@
                 &options,
             );
     
    -        CommandResult::Continue(Some("true".to_string()))
    +        CommandResult::Continue(Some("true".to_string()))
         }
     }
     
    diff --git a/docs/api/src/cli/plugin/sdk/mod.rs.html b/docs/api/src/cli/plugin/sdk/mod.rs.html
    index 3e64561da..0b1c702c1 100644
    --- a/docs/api/src/cli/plugin/sdk/mod.rs.html
    +++ b/docs/api/src/cli/plugin/sdk/mod.rs.html
    @@ -1,4 +1,6 @@
    -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    diff --git a/docs/api/src/cli/plugin/types.rs.html b/docs/api/src/cli/plugin/types.rs.html
    index 689fc6bc7..c4b1a160d 100644
    --- a/docs/api/src/cli/plugin/types.rs.html
    +++ b/docs/api/src/cli/plugin/types.rs.html
    @@ -1,4 +1,6 @@
    -types.rs - source
    1
    +types.rs - source
    +    
    1
     2
     3
     4
    @@ -38,7 +40,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "types_test.rs"]
    +#[path = "types_test.rs"]
     mod types_test;
     
     use indexmap::IndexMap;
    @@ -56,7 +58,7 @@
         /// The plugin name aliases
         pub(crate) aliases: Option<IndexMap<String, String>>,
         /// All plugin definitions
    -    #[serde(rename = "impl")]
    +    #[serde(rename = "impl")]
         pub(crate) plugins: IndexMap<String, Plugin>,
     }
     
    diff --git a/docs/api/src/cli/profile.rs.html b/docs/api/src/cli/profile.rs.html
    index d8be1b365..51cb58057 100644
    --- a/docs/api/src/cli/profile.rs.html
    +++ b/docs/api/src/cli/profile.rs.html
    @@ -1,4 +1,6 @@
    -profile.rs - source
    1
    +profile.rs - source
    +    
    1
     2
     3
     4
    @@ -64,15 +66,15 @@
     //!
     
     #[cfg(test)]
    -#[path = "profile_test.rs"]
    +#[path = "profile_test.rs"]
     mod profile_test;
     
     use envmnt;
     
    -static PROFILE_ENV_KEY: &str = "CARGO_MAKE_PROFILE";
    -static DEFAULT_PROFILE_ENV_KEY: &str = "CARGO_MAKE_DEFAULT_PROFILE";
    -static ADDITIONAL_PROFILES_ENV_KEY: &str = "CARGO_MAKE_ADDITIONAL_PROFILES";
    -static DEFAULT_PROFILE: &str = "development";
    +static PROFILE_ENV_KEY: &str = "CARGO_MAKE_PROFILE";
    +static DEFAULT_PROFILE_ENV_KEY: &str = "CARGO_MAKE_DEFAULT_PROFILE";
    +static ADDITIONAL_PROFILES_ENV_KEY: &str = "CARGO_MAKE_ADDITIONAL_PROFILES";
    +static DEFAULT_PROFILE: &str = "development";
     
     fn normalize_profile(profile: &str) -> String {
         let profile_normalized = profile.to_lowercase();
    diff --git a/docs/api/src/cli/proxy_task.rs.html b/docs/api/src/cli/proxy_task.rs.html
    index c38202015..a1fa3a3d6 100644
    --- a/docs/api/src/cli/proxy_task.rs.html
    +++ b/docs/api/src/cli/proxy_task.rs.html
    @@ -1,4 +1,6 @@
    -proxy_task.rs - source
    1
    +proxy_task.rs - source
    +    
    1
     2
     3
     4
    @@ -76,7 +78,7 @@
     use crate::{logger, profile, types::Task};
     
     #[cfg(test)]
    -#[path = "proxy_task_test.rs"]
    +#[path = "proxy_task_test.rs"]
     mod proxy_task_test;
     
     pub(crate) fn create_proxy_task(
    @@ -89,43 +91,43 @@
         //get log level name
         let log_level = logger::get_log_level();
     
    -    let mut log_level_arg = "--loglevel=".to_string();
    +    let mut log_level_arg = "--loglevel=".to_string();
         log_level_arg.push_str(&log_level);
     
         //get profile
         let profile_name = profile::get();
     
    -    let mut profile_arg = "--profile=".to_string();
    +    let mut profile_arg = "--profile=".to_string();
         profile_arg.push_str(&profile_name);
     
         //setup common args
         let mut args = vec![
    -        "make".to_string(),
    -        "--disable-check-for-updates".to_string(),
    -        "--no-on-error".to_string(),
    +        "make".to_string(),
    +        "--disable-check-for-updates".to_string(),
    +        "--no-on-error".to_string(),
             log_level_arg.to_string(),
             profile_arg.to_string(),
         ];
     
         if allow_private {
    -        args.push("--allow-private".to_string());
    +        args.push("--allow-private".to_string());
         }
     
         if skip_init_end_tasks {
    -        args.push("--skip-init-end-tasks".to_string());
    +        args.push("--skip-init-end-tasks".to_string());
         }
     
         //get makefile location
         let makefile_path_option = match makefile {
             Some(makefile_path) => Some(makefile_path),
    -        None => match env::var("CARGO_MAKE_MAKEFILE_PATH") {
    +        None => match env::var("CARGO_MAKE_MAKEFILE_PATH") {
                 Ok(makefile_path) => Some(makefile_path),
                 _ => None,
             },
         };
         if let Some(makefile_path) = makefile_path_option {
             if makefile_path.len() > 0 {
    -            args.push("--makefile".to_string());
    +            args.push("--makefile".to_string());
                 args.push(makefile_path);
             }
         };
    @@ -139,7 +141,7 @@
         }
     
         let mut proxy_task = Task::new();
    -    proxy_task.command = Some("cargo".to_string());
    +    proxy_task.command = Some("cargo".to_string());
         proxy_task.args = Some(args);
     
         proxy_task.get_normalized_task()
    diff --git a/docs/api/src/cli/recursion_level.rs.html b/docs/api/src/cli/recursion_level.rs.html
    index 5257293cf..f942033bf 100644
    --- a/docs/api/src/cli/recursion_level.rs.html
    +++ b/docs/api/src/cli/recursion_level.rs.html
    @@ -1,4 +1,6 @@
    -recursion_level.rs - source
    1
    +recursion_level.rs - source
    +    
    1
     2
     3
     4
    @@ -32,12 +34,12 @@
     //!
     
     #[cfg(test)]
    -#[path = "recursion_level_test.rs"]
    +#[path = "recursion_level_test.rs"]
     mod recursion_level_test;
     
     use envmnt;
     
    -static RECURSION_ENV_VAR_NAME: &str = "CARGO_MAKE_INTERNAL_RECURSION_LEVEL";
    +static RECURSION_ENV_VAR_NAME: &str = "CARGO_MAKE_INTERNAL_RECURSION_LEVEL";
     
     pub(crate) fn get() -> u32 {
         envmnt::get_u32(RECURSION_ENV_VAR_NAME, 0)
    diff --git a/docs/api/src/cli/runner.rs.html b/docs/api/src/cli/runner.rs.html
    index 486dac4ad..7758272ca 100644
    --- a/docs/api/src/cli/runner.rs.html
    +++ b/docs/api/src/cli/runner.rs.html
    @@ -1,4 +1,6 @@
    -runner.rs - source
    1
    +runner.rs - source
    +    
    1
     2
     3
     4
    @@ -665,7 +667,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "runner_test.rs"]
    +#[path = "runner_test.rs"]
     mod runner_test;
     
     use crate::command;
    @@ -700,16 +702,16 @@
                 let expanded_cwd = environment::expand_value(cwd);
     
                 if expanded_cwd.len() > 0 {
    -                let directory = envmnt::get_or("CARGO_MAKE_WORKING_DIRECTORY", "");
    +                let directory = envmnt::get_or("CARGO_MAKE_WORKING_DIRECTORY", "");
     
                     environment::setup_cwd(Some(&expanded_cwd));
     
                     directory
                 } else {
    -                "".to_string()
    +                "".to_string()
                 }
             }
    -        None => "".to_string(),
    +        None => "".to_string(),
         };
     
         action();
    @@ -778,7 +780,7 @@
         );
     
         Step {
    -        name: "cargo_make_run_fork".to_string(),
    +        name: "cargo_make_run_fork".to_string(),
             config: fork_task,
         }
     }
    @@ -793,7 +795,7 @@
                     config: cleanup_task_info.clone(),
                 },
             ),
    -        None => error!("Cleanup task: {} not found.", &task),
    +        None => error!("Cleanup task: {} not found.", &task),
         }
     }
     
    @@ -851,7 +853,7 @@
     
             // clean up task only supported for forked tasks
             if !fork && cleanup_task.is_some() {
    -            error!("Invalid task, cannot use cleanup_task without fork.");
    +            error!("Invalid task, cannot use cleanup_task without fork.");
             }
     
             for name in names {
    @@ -908,9 +910,9 @@
     }
     
     fn create_watch_task_name(task: &str) -> String {
    -    let mut watch_task_name = "".to_string();
    +    let mut watch_task_name = "".to_string();
         watch_task_name.push_str(&task);
    -    watch_task_name.push_str("-watch");
    +    watch_task_name.push_str("-watch");
     
         watch_task_name
     }
    @@ -938,7 +940,7 @@
     }
     
     fn is_watch_enabled() -> bool {
    -    !envmnt::is_or("CARGO_MAKE_DISABLE_WATCH", false)
    +    !envmnt::is_or("CARGO_MAKE_DISABLE_WATCH", false)
     }
     
     fn should_watch(task: &Task) -> bool {
    @@ -991,14 +993,14 @@
     
             if validate_condition(&flow_info, &step) {
                 if logger::should_reduce_output(&flow_info) && step.config.script.is_none() {
    -                debug!("Running Task: {}", &step.name);
    +                debug!("Running Task: {}", &step.name);
                 } else {
    -                info!("Running Task: {}", &step.name);
    +                info!("Running Task: {}", &step.name);
                 }
     
                 if !step.config.is_valid() {
                     error!(
    -                    "Invalid task: {}, contains multiple actions.\n{:#?}",
    +                    "Invalid task: {}, contains multiple actions.\n{:#?}",
                         &step.name, &step.config
                     );
                 }
    @@ -1008,13 +1010,13 @@
                     Some(deprecated) => match deprecated {
                         DeprecationInfo::Boolean(value) => {
                             if value {
    -                            warn!("Task: {} is deprecated.", &step.name);
    +                            warn!("Task: {} is deprecated.", &step.name);
                             }
     
                             ()
                         }
                         DeprecationInfo::Message(ref message) => {
    -                        warn!("Task: {} is deprecated - {}", &step.name, message);
    +                        warn!("Task: {} is deprecated - {}", &step.name, message);
     
                             ()
                         }
    @@ -1034,7 +1036,7 @@
                     None => (),
                 };
     
    -            envmnt::set("CARGO_MAKE_CURRENT_TASK_NAME", &step.name);
    +            envmnt::set("CARGO_MAKE_CURRENT_TASK_NAME", &step.name);
     
                 //make sure profile env is not overwritten
                 profile::set(&profile_name);
    @@ -1094,19 +1096,19 @@
                 let fail_message = match step.config.condition {
                     Some(ref condition) => match condition.fail_message {
                         Some(ref value) => value.to_string(),
    -                    None => "".to_string(),
    +                    None => "".to_string(),
                     },
    -                None => "".to_string(),
    +                None => "".to_string(),
                 };
     
                 if logger::should_reduce_output(&flow_info) && !step.config.is_actionable() {
    -                debug!("Skipping Task: {} {}", &step.name, &fail_message);
    +                debug!("Skipping Task: {} {}", &step.name, &fail_message);
                 } else {
    -                info!("Skipping Task: {} {}", &step.name, &fail_message);
    +                info!("Skipping Task: {} {}", &step.name, &fail_message);
                 }
             }
         } else {
    -        debug!("Ignoring Empty Task: {}", &step.name);
    +        debug!("Ignoring Empty Task: {}", &step.name);
         }
     }
     
    @@ -1126,80 +1128,80 @@
     
         let mut env_map = task_config.env.unwrap_or(IndexMap::new());
         env_map.insert(
    -        "CARGO_MAKE_DISABLE_WATCH".to_string(),
    -        EnvValue::Value("true".to_string()),
    +        "CARGO_MAKE_DISABLE_WATCH".to_string(),
    +        EnvValue::Value("true".to_string()),
         );
         task_config.env = Some(env_map);
     
         let make_args = task_config.args.unwrap();
         let mut make_command = String::new();
         for make_arg in make_args {
    -        if make_arg.contains(" ") {
    -            make_command.push_str("\"");
    +        if make_arg.contains(" ") {
    +            make_command.push_str("\"");
                 make_command.push_str(&make_arg);
    -            make_command.push_str("\"");
    +            make_command.push_str("\"");
             } else {
                 make_command.push_str(&make_arg);
             }
     
    -        make_command.push(' ');
    +        make_command.push(' ');
         }
         make_command = make_command.trim().to_string();
     
    -    let mut watch_args = vec!["watch".to_string()];
    +    let mut watch_args = vec!["watch".to_string()];
     
         match options {
             Some(task_watch_options) => match task_watch_options {
                 TaskWatchOptions::Options(watch_options) => {
                     let watch_version = match watch_options.version {
                         Some(value) => value.to_string(),
    -                    _ => "8.4.1".to_string(), // current version
    +                    _ => "8.4.1".to_string(), // current version
                     };
    -                task_config.install_crate_args = Some(vec!["--version".to_string(), watch_version]);
    +                task_config.install_crate_args = Some(vec!["--version".to_string(), watch_version]);
     
                     match watch_options.why {
                         Some(option_value) => {
                             if option_value {
    -                            watch_args.push("--why".to_string());
    +                            watch_args.push("--why".to_string());
                             } else {
    -                            watch_args.push("-q".to_string());
    +                            watch_args.push("-q".to_string());
                             }
                         }
    -                    None => watch_args.push("-q".to_string()),
    +                    None => watch_args.push("-q".to_string()),
                     }
     
                     if let Some(option_value) = watch_options.postpone {
                         if option_value {
    -                        watch_args.push("--postpone".to_string());
    +                        watch_args.push("--postpone".to_string());
                         }
                     }
     
                     match watch_options.ignore_pattern {
    -                    Some(value) => watch_args.extend_from_slice(&["-i".to_string(), value]),
    +                    Some(value) => watch_args.extend_from_slice(&["-i".to_string(), value]),
                         _ => (),
                     };
     
                     if let Some(option_value) = watch_options.no_git_ignore {
                         if option_value {
    -                        watch_args.push("--no-gitignore".to_string());
    +                        watch_args.push("--no-gitignore".to_string());
                         }
                     }
     
                     match watch_options.watch {
                         Some(paths) => {
                             for watch_path in paths {
    -                            watch_args.extend_from_slice(&["-w".to_string(), watch_path])
    +                            watch_args.extend_from_slice(&["-w".to_string(), watch_path])
                             }
                         }
                         _ => (),
                     };
                 }
    -            _ => watch_args.push("-q".to_string()),
    +            _ => watch_args.push("-q".to_string()),
             },
    -        None => watch_args.push("-q".to_string()),
    +        None => watch_args.push("-q".to_string()),
         }
     
    -    watch_args.extend_from_slice(&["-x".to_string(), make_command.to_string()]);
    +    watch_args.extend_from_slice(&["-x".to_string(), make_command.to_string()]);
     
         task_config.args = Some(watch_args);
     
    @@ -1218,7 +1220,7 @@
             sub_flow,
             &flow_info.skip_tasks_pattern,
         );
    -    debug!("Created execution plan: {:#?}", &execution_plan);
    +    debug!("Created execution plan: {:#?}", &execution_plan);
     
         run_task_flow(&flow_info, flow_state, &execution_plan);
     }
    @@ -1246,7 +1248,7 @@
                 _ => (),
             };
     
    -        error!("Task error detected, exit code: {}", &exit_code);
    +        error!("Task error detected, exit code: {}", &exit_code);
         }
     }
     
    @@ -1269,7 +1271,7 @@
             Some(ref pattern) => match Regex::new(pattern) {
                 Ok(reg) => Some(reg),
                 Err(_) => {
    -                warn!("Invalid skip tasks pattern provided: {}", pattern);
    +                warn!("Invalid skip tasks pattern provided: {}", pattern);
                     None
                 }
             },
    @@ -1301,13 +1303,13 @@
         let time_string = match start_time.elapsed() {
             Ok(elapsed) => {
                 let time_millies = elapsed.as_millis() as f64 / 1000.0;
    -            format!(" in {:.2} seconds", time_millies)
    +            format!(" in {:.2} seconds", time_millies)
             }
    -        _ => "".to_string(),
    +        _ => "".to_string(),
         };
     
         time_summary::print(&flow_state_rc.borrow().time_summary);
     
    -    info!("Build Done{}.", &time_string);
    +    info!("Build Done{}.", &time_string);
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/scriptengine/duck_script/mod.rs.html b/docs/api/src/cli/scriptengine/duck_script/mod.rs.html index 74a3024a3..ff70448e6 100644 --- a/docs/api/src/cli/scriptengine/duck_script/mod.rs.html +++ b/docs/api/src/cli/scriptengine/duck_script/mod.rs.html @@ -1,4 +1,6 @@ -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    @@ -111,7 +113,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "mod_test.rs"]
    +#[path = "mod_test.rs"]
     mod mod_test;
     
     mod sdk;
    @@ -135,36 +137,36 @@
         flow_state: Option<Rc<RefCell<FlowState>>>,
         validate: bool,
     ) {
    -    let mut array_command = "@ = array".to_string();
    +    let mut array_command = "@ = array".to_string();
         let mut index = 0;
         for _ in cli_arguments {
             index = index + 1;
    -        array_command.push_str(format!(" ${{{}}}", index).as_str());
    +        array_command.push_str(format!(" ${{{}}}", index).as_str());
         }
     
         let log_level = get_log_level();
         let level = get_level(&log_level);
         if level == LogLevel::OFF {
    -        array_command.push_str("alias echo noop");
    +        array_command.push_str("alias echo noop");
         }
     
    -    let mut script_text = script.join("\n");
    +    let mut script_text = script.join("\n");
         script_text.insert_str(
             0,
    -        format!("exit_on_error true\n{}\n", &array_command).as_str(),
    +        format!("exit_on_error true\n{}\n", &array_command).as_str(),
         );
     
         let mut context = create_common_context(cli_arguments);
     
         match load_sdk(&mut context.commands, flow_info, flow_state) {
             Ok(_) => {
    -            let directory = envmnt::get_or("CARGO_MAKE_WORKING_DIRECTORY", "");
    +            let directory = envmnt::get_or("CARGO_MAKE_WORKING_DIRECTORY", "");
     
                 match runner::run_script(&script_text, context) {
                     Ok(_) => (),
                     Err(error) => {
                         if validate {
    -                        error!("Error while running duckscript: {}", error);
    +                        error!("Error while running duckscript: {}", error);
                         }
                     }
                 };
    @@ -176,7 +178,7 @@
             }
             Err(error) => {
                 if validate {
    -                error!("Unable to load duckscript SDK: {}", error);
    +                error!("Unable to load duckscript SDK: {}", error);
                 }
             }
         };
    diff --git a/docs/api/src/cli/scriptengine/duck_script/sdk/cm_run_task.rs.html b/docs/api/src/cli/scriptengine/duck_script/sdk/cm_run_task.rs.html
    index cbca6ce63..9631801c7 100644
    --- a/docs/api/src/cli/scriptengine/duck_script/sdk/cm_run_task.rs.html
    +++ b/docs/api/src/cli/scriptengine/duck_script/sdk/cm_run_task.rs.html
    @@ -1,4 +1,6 @@
    -cm_run_task.rs - source
    1
    +cm_run_task.rs - source
    +    
    1
     2
     3
     4
    @@ -87,7 +89,7 @@
     
     impl Command for CommandImpl {
         fn name(&self) -> String {
    -        "cm_run_task".to_string()
    +        "cm_run_task".to_string()
         }
     
         fn clone_and_box(&self) -> Box<dyn Command> {
    @@ -96,9 +98,9 @@
     
         fn run(&self, arguments: Vec<String>) -> CommandResult {
             if arguments.is_empty() {
    -            CommandResult::Error("No task name provided.".to_string())
    +            CommandResult::Error("No task name provided.".to_string())
             } else {
    -            let (task_name, async_run) = if arguments.len() > 0 && arguments[0] == "--async" {
    +            let (task_name, async_run) = if arguments.len() > 0 && arguments[0] == "--async" {
                     (arguments[1].clone(), true)
                 } else {
                     (arguments[0].clone(), false)
    @@ -122,9 +124,9 @@
                         runner::run_flow(&sub_flow_info, self.flow_state.clone(), true);
                     }
     
    -                CommandResult::Continue(Some("true".to_string()))
    +                CommandResult::Continue(Some("true".to_string()))
                 } else {
    -                CommandResult::Error(format!("Task: {} not found.", &arguments[0]).to_string())
    +                CommandResult::Error(format!("Task: {} not found.", &arguments[0]).to_string())
                 }
             }
         }
    diff --git a/docs/api/src/cli/scriptengine/duck_script/sdk/mod.rs.html b/docs/api/src/cli/scriptengine/duck_script/sdk/mod.rs.html
    index 491ad9819..5f18233cd 100644
    --- a/docs/api/src/cli/scriptengine/duck_script/sdk/mod.rs.html
    +++ b/docs/api/src/cli/scriptengine/duck_script/sdk/mod.rs.html
    @@ -1,4 +1,6 @@
    -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    diff --git a/docs/api/src/cli/scriptengine/generic_script.rs.html b/docs/api/src/cli/scriptengine/generic_script.rs.html
    index 87d9eed08..b93ff56c4 100644
    --- a/docs/api/src/cli/scriptengine/generic_script.rs.html
    +++ b/docs/api/src/cli/scriptengine/generic_script.rs.html
    @@ -1,4 +1,6 @@
    -generic_script.rs - source
    1
    +generic_script.rs - source
    +    
    1
     2
     3
     4
    @@ -56,7 +58,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "generic_script_test.rs"]
    +#[path = "generic_script_test.rs"]
     mod generic_script_test;
     
     use crate::command;
    @@ -79,7 +81,7 @@
         args.append(cli_arguments);
     
         let exit_code = command::run_command(runner, &Some(args), false);
    -    debug!("Executed script, exit code: {}", exit_code);
    +    debug!("Executed script, exit code: {}", exit_code);
     
         exit_code == 0
     }
    @@ -99,7 +101,7 @@
         delete_file(&file);
     
         if validate && !valid {
    -        error!("Unable to execute script.");
    +        error!("Unable to execute script.");
         }
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/scriptengine/mod.rs.html b/docs/api/src/cli/scriptengine/mod.rs.html index 9f529c7d8..dd1921514 100644 --- a/docs/api/src/cli/scriptengine/mod.rs.html +++ b/docs/api/src/cli/scriptengine/mod.rs.html @@ -1,4 +1,6 @@ -mod.rs - source
    1
    +mod.rs - source
    +    
    1
     2
     3
     4
    @@ -321,7 +323,7 @@
     mod shell_to_batch;
     
     #[cfg(test)]
    -#[path = "mod_test.rs"]
    +#[path = "mod_test.rs"]
     mod mod_test;
     
     use crate::environment;
    @@ -358,7 +360,7 @@
             ScriptValue::File(info) => {
                 let mut file_path_string = String::new();
                 if !info.absolute_path.unwrap_or(false) {
    -                file_path_string.push_str("${CARGO_MAKE_WORKING_DIRECTORY}/");
    +                file_path_string.push_str("${CARGO_MAKE_WORKING_DIRECTORY}/");
                 }
                 file_path_string.push_str(&info.file);
     
    @@ -369,7 +371,7 @@
                 file_path.push(expanded_value);
     
                 let script_text = io::read_text_file(&file_path);
    -            let lines: Vec<&str> = script_text.split('\n').collect();
    +            let lines: Vec<&str> = script_text.split('\n').collect();
     
                 let mut script_lines: Vec<String> = vec![];
     
    @@ -398,14 +400,14 @@
     }
     
     fn get_internal_runner(script_runner: &str) -> EngineType {
    -    if script_runner == "@duckscript" {
    -        debug!("Duckscript detected.");
    +    if script_runner == "@duckscript" {
    +        debug!("Duckscript detected.");
             EngineType::Duckscript
    -    } else if script_runner == "@rust" {
    -        debug!("Rust script detected.");
    +    } else if script_runner == "@rust" {
    +        debug!("Rust script detected.");
             EngineType::Rust
    -    } else if script_runner == "@shell" {
    -        debug!("Shell to batch detected.");
    +    } else if script_runner == "@shell" {
    +        debug!("Shell to batch detected.");
             EngineType::Shell2Batch
         } else {
             EngineType::Unsupported
    @@ -419,7 +421,7 @@
     ) -> EngineType {
         match script_runner {
             Some(ref runner) => {
    -            debug!("Checking script runner: {}", runner);
    +            debug!("Checking script runner: {}", runner);
     
                 let engine_type = get_internal_runner(runner);
     
    @@ -427,11 +429,11 @@
                     EngineType::Unsupported => {
                         if script_extension.is_some() {
                             // if both script runner and extension is defined, we use generic script runner
    -                        debug!("Generic script detected.");
    +                        debug!("Generic script detected.");
                             EngineType::Generic
                         } else {
                             // use default OS extension with custom runner
    -                        debug!("OS script with custom runner detected.");
    +                        debug!("OS script with custom runner detected.");
                             EngineType::OS
                         }
                     }
    @@ -450,7 +452,7 @@
     
                             match engine_type {
                                 EngineType::Unsupported => {
    -                                debug!("Shebang line does not point to an internal engine, using normal shebang script runner.");
    +                                debug!("Shebang line does not point to an internal engine, using normal shebang script runner.");
                                     EngineType::Shebang
                                 }
                                 _ => engine_type,
    @@ -477,7 +479,7 @@
                 // setup toolchain environment
                 let (reset_env, original_cargo) = match task.toolchain {
                     Some(ref toolchain) => match toolchain::get_cargo_binary_path(toolchain) {
    -                    Some(cargo_binary) => (true, envmnt::get_set("CARGO", cargo_binary)),
    +                    Some(cargo_binary) => (true, envmnt::get_set("CARGO", cargo_binary)),
                         None => (false, None),
                     },
                     None => (false, None),
    @@ -496,7 +498,7 @@
                 // reset toolchain environment
                 if reset_env {
                     if let Some(value) = original_cargo {
    -                    envmnt::set("CARGO", value)
    +                    envmnt::set("CARGO", value)
                     }
                 }
     
    diff --git a/docs/api/src/cli/scriptengine/os_script.rs.html b/docs/api/src/cli/scriptengine/os_script.rs.html
    index 20038be33..77600daba 100644
    --- a/docs/api/src/cli/scriptengine/os_script.rs.html
    +++ b/docs/api/src/cli/scriptengine/os_script.rs.html
    @@ -1,4 +1,6 @@
    -os_script.rs - source
    1
    +os_script.rs - source
    +    
    1
     2
     3
     4
    @@ -23,7 +25,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "os_script_test.rs"]
    +#[path = "os_script_test.rs"]
     mod os_script_test;
     
     use crate::command;
    diff --git a/docs/api/src/cli/scriptengine/rsscript.rs.html b/docs/api/src/cli/scriptengine/rsscript.rs.html
    index ade8b17ec..c0d051389 100644
    --- a/docs/api/src/cli/scriptengine/rsscript.rs.html
    +++ b/docs/api/src/cli/scriptengine/rsscript.rs.html
    @@ -1,4 +1,6 @@
    -rsscript.rs - source
    1
    +rsscript.rs - source
    +    
    1
     2
     3
     4
    @@ -120,7 +122,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "rsscript_test.rs"]
    +#[path = "rsscript_test.rs"]
     mod rsscript_test;
     
     use crate::command;
    @@ -136,12 +138,12 @@
     }
     
     fn get_script_runner() -> ScriptRunner {
    -    let provider = envmnt::get_or("CARGO_MAKE_RUST_SCRIPT_PROVIDER", "rust-script");
    +    let provider = envmnt::get_or("CARGO_MAKE_RUST_SCRIPT_PROVIDER", "rust-script");
     
         match provider.as_str() {
    -        "rust-script" => ScriptRunner::RustScript,
    -        "cargo-script" => ScriptRunner::CargoScript,
    -        "cargo-play" => ScriptRunner::CargoPlay,
    +        "rust-script" => ScriptRunner::RustScript,
    +        "cargo-script" => ScriptRunner::CargoScript,
    +        "cargo-play" => ScriptRunner::CargoPlay,
             _ => ScriptRunner::CargoScript,
         }
     }
    @@ -151,11 +153,11 @@
         match provider {
             ScriptRunner::RustScript => {
                 let info = InstallCrateInfo {
    -                crate_name: "rust-script".to_string(),
    +                crate_name: "rust-script".to_string(),
                     rustup_component_name: None,
    -                binary: "rust-script".to_string(),
    +                binary: "rust-script".to_string(),
                     test_arg: TestArg {
    -                    inner: vec!["--version".to_string()],
    +                    inner: vec!["--version".to_string()],
                     },
                     min_version: None,
                     version: None,
    @@ -167,8 +169,8 @@
             }
             ScriptRunner::CargoScript => cargo_plugin_installer::install_crate(
                 &None,
    -            Some("script"),
    -            "cargo-script",
    +            Some("script"),
    +            "cargo-script",
                 &None,
                 true,
                 &None,
    @@ -177,8 +179,8 @@
             ),
             ScriptRunner::CargoPlay => cargo_plugin_installer::install_crate(
                 &None,
    -            Some("play"),
    -            "cargo-play",
    +            Some("play"),
    +            "cargo-play",
                 &None,
                 true,
                 &None,
    @@ -189,14 +191,14 @@
     }
     
     fn create_rust_file(rust_script: &Vec<String>) -> String {
    -    create_persisted_script_file(rust_script, "rs")
    +    create_persisted_script_file(rust_script, "rs")
     }
     
     fn run_file(file: &str, cli_arguments: &Vec<String>, provider: &ScriptRunner) -> bool {
         let (use_cargo, command) = match provider {
    -        ScriptRunner::RustScript => (false, "rust-script"),
    -        ScriptRunner::CargoScript => (true, "script"),
    -        ScriptRunner::CargoPlay => (true, "play"),
    +        ScriptRunner::RustScript => (false, "rust-script"),
    +        ScriptRunner::CargoScript => (true, "script"),
    +        ScriptRunner::CargoPlay => (true, "play"),
         };
     
         let mut args = vec![];
    @@ -208,11 +210,11 @@
         args.append(&mut cli_args);
     
         let exit_code = if use_cargo {
    -        command::run_command("cargo", &Some(args), false)
    +        command::run_command("cargo", &Some(args), false)
         } else {
             command::run_command(command, &Some(args), false)
         };
    -    debug!("Executed rust code, exit code: {}", exit_code);
    +    debug!("Executed rust code, exit code: {}", exit_code);
     
         exit_code == 0
     }
    @@ -227,7 +229,7 @@
         let valid = run_file(&file, &cli_arguments, &provider);
     
         if validate && !valid {
    -        error!("Unable to execute rust code.");
    +        error!("Unable to execute rust code.");
         }
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/scriptengine/script_utils.rs.html b/docs/api/src/cli/scriptengine/script_utils.rs.html index 11a474932..2a8e9746d 100644 --- a/docs/api/src/cli/scriptengine/script_utils.rs.html +++ b/docs/api/src/cli/scriptengine/script_utils.rs.html @@ -1,4 +1,6 @@ -script_utils.rs - source
    1
    +script_utils.rs - source
    +    
    1
     2
     3
     4
    @@ -77,7 +79,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "script_utils_test.rs"]
    +#[path = "script_utils_test.rs"]
     mod script_utils_test;
     
     use crate::io::create_text_file;
    @@ -88,23 +90,23 @@
     use std::path::PathBuf;
     
     pub(crate) fn create_script_file(script_text: &Vec<String>, extension: &str) -> String {
    -    let text = script_text.join("\n");
    +    let text = script_text.join("\n");
     
         create_text_file(&text, &extension)
     }
     
     pub(crate) fn create_persisted_script_file(script_text: &Vec<String>, extension: &str) -> String {
    -    let text = script_text.join("\n");
    +    let text = script_text.join("\n");
     
         let string_bytes = text.as_bytes();
         let bytes = Sha256::digest(string_bytes);
         let file_name = bytes_to_hex(&bytes[..]);
     
    -    let directory = envmnt::get_or_panic("CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY");
    +    let directory = envmnt::get_or_panic("CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY");
         let mut file_path_buf = PathBuf::new();
         file_path_buf.push(&directory);
    -    file_path_buf.push("_cargo_make_temp");
    -    file_path_buf.push("persisted_scripts");
    +    file_path_buf.push("_cargo_make_temp");
    +    file_path_buf.push("persisted_scripts");
         file_path_buf.push(file_name);
         file_path_buf.set_extension(extension);
     
    @@ -117,8 +119,8 @@
             match write_text_file(&file_path_string, &text) {
                 Ok(_) => file_path_string,
                 Err(error) => {
    -                error!("Unable to create file: {} {:#?}", &file_path_string, &error);
    -                panic!("Unable to create file, error: {}", error);
    +                error!("Unable to create file: {} {:#?}", &file_path_string, &error);
    +                panic!("Unable to create file, error: {}", error);
                 }
             }
         }
    @@ -127,14 +129,14 @@
     fn bytes_to_hex(bytes: &[u8]) -> String {
         let mut hex_string = String::with_capacity(2 * bytes.len());
         for byte in bytes {
    -        match write!(hex_string, "{:02X}", byte) {
    +        match write!(hex_string, "{:02X}", byte) {
                 Err(error) => {
                     error!(
    -                    "Unable to conver script hash to hex string, error: {}",
    +                    "Unable to conver script hash to hex string, error: {}",
                         &error
                     );
                     panic!(
    -                    "Unable to conver script hash to hex string, error: {}",
    +                    "Unable to conver script hash to hex string, error: {}",
                         &error
                     );
                 }
    diff --git a/docs/api/src/cli/scriptengine/shebang_script.rs.html b/docs/api/src/cli/scriptengine/shebang_script.rs.html
    index adae96fe6..fd8ad440b 100644
    --- a/docs/api/src/cli/scriptengine/shebang_script.rs.html
    +++ b/docs/api/src/cli/scriptengine/shebang_script.rs.html
    @@ -1,4 +1,6 @@
    -shebang_script.rs - source
    1
    +shebang_script.rs - source
    +    
    1
     2
     3
     4
    @@ -137,16 +139,16 @@
     //!
     
     #[cfg(test)]
    -#[path = "shebang_script_test.rs"]
    +#[path = "shebang_script_test.rs"]
     mod shebang_script_test;
     
     use crate::scriptengine::generic_script;
     use std::path::Path;
     
    -#[cfg(target_os = "windows")]
    -const DEFAULT_EXTENSION: &'static str = "cmd.exe";
    -#[cfg(not(target_os = "windows"))]
    -const DEFAULT_EXTENSION: &'static str = "sh";
    +#[cfg(target_os = "windows")]
    +const DEFAULT_EXTENSION: &'static str = "cmd.exe";
    +#[cfg(not(target_os = "windows"))]
    +const DEFAULT_EXTENSION: &'static str = "sh";
     
     #[derive(Debug, Clone)]
     /// Holds flow information
    @@ -172,11 +174,11 @@
             Some(line) => {
                 let trimmed_line = line.trim();
     
    -            if trimmed_line.starts_with("#!") {
    -                let mut lines = trimmed_line.split("\n");
    +            if trimmed_line.starts_with("#!") {
    +                let mut lines = trimmed_line.split("\n");
                     match lines.next() {
                         Some(first_line) => {
    -                        let mut shebang_line = first_line.replace("#!", "");
    +                        let mut shebang_line = first_line.replace("#!", "");
                             shebang_line = shebang_line.trim().to_string();
     
                             if !shebang_line.is_empty() {
    @@ -218,14 +220,14 @@
             None => return DEFAULT_EXTENSION.to_string(),
         };
     
    -    let extension = if runner_no_extension == "python" {
    -        "py"
    -    } else if runner_no_extension == "perl" {
    -        "pl"
    -    } else if runner_no_extension == "node" {
    -        "js"
    -    } else if runner_no_extension == "powershell" || runner_no_extension == "pwsh" {
    -        "ps1"
    +    let extension = if runner_no_extension == "python" {
    +        "py"
    +    } else if runner_no_extension == "perl" {
    +        "pl"
    +    } else if runner_no_extension == "node" {
    +        "js"
    +    } else if runner_no_extension == "powershell" || runner_no_extension == "pwsh" {
    +        "ps1"
         } else {
             DEFAULT_EXTENSION
         };
    @@ -259,7 +261,7 @@
             }
             None => {
                 if validate {
    -                error!("Unable to execute script using shebang.");
    +                error!("Unable to execute script using shebang.");
                 }
             }
         };
    diff --git a/docs/api/src/cli/scriptengine/shell_to_batch.rs.html b/docs/api/src/cli/scriptengine/shell_to_batch.rs.html
    index 728775c67..9aa43deb8 100644
    --- a/docs/api/src/cli/scriptengine/shell_to_batch.rs.html
    +++ b/docs/api/src/cli/scriptengine/shell_to_batch.rs.html
    @@ -1,4 +1,6 @@
    -shell_to_batch.rs - source
    1
    +shell_to_batch.rs - source
    +    
    1
     2
     3
     4
    @@ -31,7 +33,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "shell_to_batch_test.rs"]
    +#[path = "shell_to_batch_test.rs"]
     mod shell_to_batch_test;
     
     use crate::command;
    @@ -39,11 +41,11 @@
     
     pub(crate) fn execute(script: &Vec<String>, cli_arguments: &Vec<String>, validate: bool) {
         if cfg!(windows) {
    -        let shell_script = script.join("\n");
    +        let shell_script = script.join("\n");
             let windows_batch = shell2batch::convert(&shell_script);
     
             let windows_script_lines = windows_batch
    -            .split("\n")
    +            .split("\n")
                 .map(|string| string.to_string())
                 .collect();
     
    diff --git a/docs/api/src/cli/storage.rs.html b/docs/api/src/cli/storage.rs.html
    index e46186d4b..98ad09d9d 100644
    --- a/docs/api/src/cli/storage.rs.html
    +++ b/docs/api/src/cli/storage.rs.html
    @@ -1,4 +1,6 @@
    -storage.rs - source
    1
    +storage.rs - source
    +    
    1
     2
     3
     4
    @@ -48,7 +50,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "storage_test.rs"]
    +#[path = "storage_test.rs"]
     mod storage_test;
     
     use crate::legacy;
    @@ -64,13 +66,13 @@
         file_name: &str,
         migrate: bool,
     ) -> Option<PathBuf> {
    -    match env::var("CARGO_MAKE_HOME") {
    +    match env::var("CARGO_MAKE_HOME") {
             // if env is defined, it is taken as highest priority
             Ok(directory) => Some(PathBuf::from(directory)),
             _ => {
                 match os_directory {
                     Some(directory) => {
    -                    let home_directory = directory.join("cargo-make");
    +                    let home_directory = directory.join("cargo-make");
     
                         let file_path = Path::new(&directory).join(file_name);
     
    diff --git a/docs/api/src/cli/time_summary.rs.html b/docs/api/src/cli/time_summary.rs.html
    index fa7f1dac5..493ad7ab3 100644
    --- a/docs/api/src/cli/time_summary.rs.html
    +++ b/docs/api/src/cli/time_summary.rs.html
    @@ -1,4 +1,6 @@
    -time_summary.rs - source
    1
    +time_summary.rs - source
    +    
    1
     2
     3
     4
    @@ -82,7 +84,7 @@
     use std::time::SystemTime;
     
     pub(crate) fn is_time_summary_enabled() -> bool {
    -    envmnt::is("CARGO_MAKE_PRINT_TIME_SUMMARY")
    +    envmnt::is("CARGO_MAKE_PRINT_TIME_SUMMARY")
     }
     
     pub(crate) fn add(time_summary: &mut Vec<(String, u128)>, name: &str, start_time: SystemTime) {
    @@ -108,7 +110,7 @@
                 }
             }
     
    -        info!("==================Time Summary==================");
    +        info!("==================Time Summary==================");
             for entry in &time_summary_sorted {
                 let percentage = (entry.1 as f64 / total_time as f64) * 100.0;
                 let seconds = entry.1 as f64 / 1000.0;
    @@ -121,27 +123,27 @@
                     1
                 };
                 let mut gap_size = 4 - percentage_size;
    -            let value_gap = format!("{: <1$}", "", gap_size);
    +            let value_gap = format!("{: <1$}", "", gap_size);
     
                 let name_size = entry.0.len();
                 gap_size = max_name_size - name_size + 3;
    -            let name_gap = format!("{: <1$}", "", gap_size);
    +            let name_gap = format!("{: <1$}", "", gap_size);
     
                 info!(
    -                "{}:{}{:.2}%{}   {:.2} seconds",
    +                "{}:{}{:.2}%{}   {:.2} seconds",
                     entry.0, name_gap, percentage, value_gap, seconds
                 );
             }
    -        info!("================================================");
    +        info!("================================================");
         }
     }
     
     pub(crate) fn init(config: &Config, cli_args: &CliArgs) {
         if config.config.time_summary.unwrap_or(false)
             || cli_args.print_time_summary
    -        || envmnt::is("CARGO_MAKE_CI")
    +        || envmnt::is("CARGO_MAKE_CI")
         {
    -        envmnt::set_bool("CARGO_MAKE_PRINT_TIME_SUMMARY", true);
    +        envmnt::set_bool("CARGO_MAKE_PRINT_TIME_SUMMARY", true);
         }
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/toolchain.rs.html b/docs/api/src/cli/toolchain.rs.html index 6274a4473..98667ab5a 100644 --- a/docs/api/src/cli/toolchain.rs.html +++ b/docs/api/src/cli/toolchain.rs.html @@ -1,4 +1,6 @@ -toolchain.rs - source
    1
    +toolchain.rs - source
    +    
    1
     2
     3
     4
    @@ -157,7 +159,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "toolchain_test.rs"]
    +#[path = "toolchain_test.rs"]
     mod toolchain_test;
     
     use crate::environment::expand_value;
    @@ -192,7 +194,7 @@
                 args: Some(command_args),
             }
         } else {
    -        let mut rustup_args = vec!["run".to_string(), channel, command.to_string()];
    +        let mut rustup_args = vec!["run".to_string(), channel, command.to_string()];
             if let Some(array) = args {
                 for arg in array.iter() {
                     rustup_args.push(arg.to_string());
    @@ -200,7 +202,7 @@
             };
     
             CommandSpec {
    -            command: "rustup".to_string(),
    +            command: "rustup".to_string(),
                 args: Some(rustup_args),
             }
         }
    @@ -210,7 +212,7 @@
         let min_version = toolchain.min_version()?;
         let spec_min_version = min_version.parse::<Version>();
         if let Err(_) = spec_min_version {
    -        warn!("Unable to parse min version value: {}", &min_version);
    +        warn!("Unable to parse min version value: {}", &min_version);
         }
         spec_min_version.ok()
     }
    @@ -222,15 +224,15 @@
             return;
         }
     
    -    let output = Command::new("rustup")
    -        .args(&["run", &channel, "rustc", "--version"])
    +    let output = Command::new("rustup")
    +        .args(&["run", &channel, "rustc", "--version"])
             .stderr(Stdio::null())
             .stdout(Stdio::piped())
             .output()
    -        .expect("Failed to check rustup toolchain");
    +        .expect("Failed to check rustup toolchain");
         if !output.status.success() {
             error!(
    -            "Missing toolchain {}! Please install it using rustup.",
    +            "Missing toolchain {}! Please install it using rustup.",
                 &channel
             );
             return;
    @@ -240,24 +242,24 @@
         if let Some(ref spec_min_version) = spec_min_version {
             let rustc_version = String::from_utf8_lossy(&output.stdout);
             let rustc_version = rustc_version
    -            .split(" ")
    +            .split(" ")
                 .nth(1)
    -            .expect("expected a version in rustc output");
    +            .expect("expected a version in rustc output");
             let mut rustc_version = rustc_version
                 .parse::<Version>()
    -            .expect("unexpected version format");
    +            .expect("unexpected version format");
             // Remove prerelease identifiers from the output of rustc. Specifying a toolchain
             // channel means the user actively chooses beta or nightly (or a custom one).
             //
             // Direct comparison with rustc output would otherwise produce unintended results:
    -        // `{ channel = "beta", min_version = "1.56" }` is expected to work with
    -        // `rustup run beta rustc --version` ==> "rustc 1.56.0-beta.4 (e6e620e1c 2021-10-04)"
    +        // `{ channel = "beta", min_version = "1.56" }` is expected to work with
    +        // `rustup run beta rustc --version` ==> "rustc 1.56.0-beta.4 (e6e620e1c 2021-10-04)"
             // so we would have 1.56.0-beta.4 < 1.56 according to semver
             rustc_version.pre = Prerelease::EMPTY;
     
             if &rustc_version < spec_min_version {
                 error!(
    -                "Installed toolchain {} is required to satisfy version {}, found {}! Please upgrade it using rustup.",
    +                "Installed toolchain {} is required to satisfy version {}, found {}! Please upgrade it using rustup.",
                     &channel,
                     &spec_min_version,
                     rustc_version,
    @@ -269,25 +271,25 @@
     pub(crate) fn get_cargo_binary_path(toolchain: &ToolchainSpecifier) -> Option<String> {
         let command_spec = wrap_command(
             toolchain,
    -        "rustup",
    -        &Some(vec!["which".to_string(), "cargo".to_string()]),
    +        "rustup",
    +        &Some(vec!["which".to_string(), "cargo".to_string()]),
         );
         let mut command = Command::new(&command_spec.command);
         match command_spec.args {
             Some(ref args_vec) => {
                 command.args(args_vec);
             }
    -        None => debug!("No command args defined."),
    +        None => debug!("No command args defined."),
         };
     
         let output = command
             .stderr(Stdio::null())
             .stdout(Stdio::piped())
             .output()
    -        .expect("Failed to check rustup toolchain");
    +        .expect("Failed to check rustup toolchain");
         if !output.status.success() {
             error!(
    -            "Missing toolchain {}! Please install it using rustup.",
    +            "Missing toolchain {}! Please install it using rustup.",
                 &toolchain
             );
             return None;
    @@ -302,6 +304,6 @@
     }
     
     pub(crate) fn remove_rust_env_vars() {
    -    envmnt::remove_all(&vec!["RUSTC", "RUSTDOC", "RUSTFLAGS"]);
    +    envmnt::remove_all(&vec!["RUSTC", "RUSTDOC", "RUSTFLAGS"]);
     }
     
    \ No newline at end of file diff --git a/docs/api/src/cli/types.rs.html b/docs/api/src/cli/types.rs.html index 31d874613..5d26ad8f4 100644 --- a/docs/api/src/cli/types.rs.html +++ b/docs/api/src/cli/types.rs.html @@ -1,4 +1,6 @@ -types.rs - source
    1
    +types.rs - source
    +    
    1
     2
     3
     4
    @@ -2384,13 +2386,15 @@
     2384
     2385
     2386
    +2387
    +2388
     
    //! # types
     //!
     //! Defines the various types and aliases used by cargo-make.
     //!
     
     #[cfg(test)]
    -#[path = "types_test.rs"]
    +#[path = "types_test.rs"]
     mod types_test;
     
     use crate::legacy;
    @@ -2405,11 +2409,11 @@
     /// Returns the platform name
     pub fn get_platform_name() -> String {
         if cfg!(windows) {
    -        "windows".to_string()
    -    } else if cfg!(target_os = "macos") || cfg!(target_os = "ios") {
    -        "mac".to_string()
    +        "windows".to_string()
    +    } else if cfg!(target_os = "macos") || cfg!(target_os = "ios") {
    +        "mac".to_string()
         } else {
    -        "linux".to_string()
    +        "linux".to_string()
         }
     }
     
    @@ -2418,7 +2422,7 @@
     
         if namespace.len() > 0 {
             namespaced_task.push_str(namespace);
    -        namespaced_task.push_str("::");
    +        namespaced_task.push_str("::");
         }
         namespaced_task.push_str(task);
     
    @@ -2521,11 +2525,11 @@
         /// Creates and returns a new instance.
         pub fn new() -> CliArgs {
             CliArgs {
    -            command: "".to_string(),
    +            command: "".to_string(),
                 build_file: None,
    -            task: "default".to_string(),
    +            task: "default".to_string(),
                 profile: None,
    -            log_level: "info".to_string(),
    +            log_level: "info".to_string(),
                 disable_color: false,
                 cwd: None,
                 env: None,
    @@ -2542,7 +2546,7 @@
                 disable_check_for_updates: false,
                 experimental: false,
                 arguments: None,
    -            output_format: "default".to_string(),
    +            output_format: "default".to_string(),
                 output_file: None,
                 print_time_summary: false,
                 hide_uninteresting: false,
    @@ -2843,6 +2847,8 @@
         pub default_value: Option<String>,
         /// The decoding mapping
         pub mapping: HashMap<String, String>,
    +    /// The condition to validate
    +    pub condition: Option<TaskCondition>,
     }
     
     #[derive(Serialize, Deserialize, Debug, Clone, Copy)]
    @@ -2924,17 +2930,17 @@
         }
     }
     
    -impl<'de> serde::de::Deserialize<'de> for TestArg {
    +impl<'de> serde::de::Deserialize<'de> for TestArg {
         fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
         where
    -        D: serde::de::Deserializer<'de>,
    +        D: serde::de::Deserializer<'de>,
         {
             struct StringVecVisitor;
    -        impl<'de> serde::de::Visitor<'de> for StringVecVisitor {
    +        impl<'de> serde::de::Visitor<'de> for StringVecVisitor {
                 type Value = TestArg;
     
                 fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
    -                formatter.write_str("A string or an array of strings")
    +                formatter.write_str("A string or an array of strings")
                 }
     
                 fn visit_str<E>(self, s: &str) -> Result<Self::Value, E>
    @@ -2948,7 +2954,7 @@
     
                 fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
                 where
    -                A: serde::de::SeqAccess<'de>,
    +                A: serde::de::SeqAccess<'de>,
                 {
                     let mut v = Vec::with_capacity(seq.size_hint().unwrap_or(0));
                     while let Some(s) = seq.next_element()? {
    @@ -2969,7 +2975,7 @@
         pub crate_name: Option<String>,
         /// Minimal version
         pub min_version: Option<String>,
    -    /// Optional alternate 'install' command
    +    /// Optional alternate 'install' command
         pub install_command: Option<String>,
         /// Optional add force flag (if needed), default is true
         pub force: Option<bool>,
    @@ -3047,7 +3053,7 @@
         pub min_version: Option<String>,
         /// Exact version
         pub version: Option<String>,
    -    /// Optional alternate 'install' command
    +    /// Optional alternate 'install' command
         pub install_command: Option<String>,
         /// Optional add force flag (if needed), default is true
         pub force: Option<bool>,
    @@ -3545,10 +3551,10 @@
     }
     
     impl std::fmt::Display for ToolchainSpecifier {
    -    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    +    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
             match self {
    -            Self::Simple(ref channel) => write!(formatter, "{}", channel),
    -            Self::Bounded(ref spec) => write!(formatter, "{}", spec),
    +            Self::Simple(ref channel) => write!(formatter, "{}", channel),
    +            Self::Bounded(ref spec) => write!(formatter, "{}", spec),
             }
         }
     }
    @@ -3583,8 +3589,8 @@
     }
     
     impl std::fmt::Display for ToolchainBoundedSpecifier {
    -    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    -        write!(formatter, "{} >= {}", self.channel, self.min_version)
    +    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    +        write!(formatter, "{} >= {}", self.channel, self.min_version)
         }
     }
     
    @@ -3637,10 +3643,10 @@
     }
     
     impl std::fmt::Display for TaskIdentifier {
    -    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    +    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
             match &self.path {
    -            Some(path) => write!(formatter, "{}:{}", path, self.name),
    -            None => write!(formatter, "{}", self.name),
    +            Some(path) => write!(formatter, "{}:{}", path, self.name),
    +            None => write!(formatter, "{}", self.name),
             }
         }
     }
    @@ -4023,7 +4029,7 @@
                 Some(value) => value,
                 None => match self.force {
                     Some(value) => {
    -                    legacy::show_deprecated_attriute_warning("force", "ignore_errors");
    +                    legacy::show_deprecated_attriute_warning("force", "ignore_errors");
     
                         value
                     }
    @@ -4035,12 +4041,12 @@
         /// Returns the override task definition based on the current platform.
         fn get_override(self: &Task) -> Option<PlatformOverrideTask> {
             let platform_name = get_platform_name();
    -        if platform_name == "windows" {
    +        if platform_name == "windows" {
                 match self.windows {
                     Some(ref value) => Some(value.clone()),
                     _ => None,
                 }
    -        } else if platform_name == "mac" {
    +        } else if platform_name == "mac" {
                 match self.mac {
                     Some(ref value) => Some(value.clone()),
                     _ => None,
    @@ -4109,7 +4115,7 @@
                     Some(ref value) => Some(value),
                     _ => None,
                 }
    -        } else if cfg!(target_os = "macos") || cfg!(target_os = "ios") {
    +        } else if cfg!(target_os = "macos") || cfg!(target_os = "ios") {
                 match self.mac_alias {
                     Some(ref value) => Some(value),
                     _ => None,
    @@ -4430,14 +4436,14 @@
         /// Returns the namespace prefix for task names
         pub fn get_namespace_prefix(self: &ModifyConfig) -> String {
             match self.namespace {
    -            Some(ref value) => get_namespaced_task_name(value, ""),
    -            None => "".to_string(),
    +            Some(ref value) => get_namespaced_task_name(value, ""),
    +            None => "".to_string(),
             }
         }
     }
     
     #[derive(Serialize, Deserialize, Debug, Clone, Copy, Hash, PartialEq, Eq)]
    -#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
    +#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
     /// Unstable cargo-make feature
     pub enum UnstableFeature {
         /// Gracefully shutdown and then kill the running command on Ctrl+C signal
    @@ -4448,8 +4454,8 @@
         /// Creates the env. variable name associated to the feature
         pub fn to_env_name(&self) -> String {
             let mut feature = serde_json::to_string(&self).unwrap();
    -        feature = feature.replace("\"", "");
    -        format!("CARGO_MAKE_UNSTABLE_FEATURE_{feature}", feature = feature)
    +        feature = feature.replace("\"", "");
    +        format!("CARGO_MAKE_UNSTABLE_FEATURE_{feature}", feature = feature)
         }
     
         /// Is the corresponding env. variable set?
    @@ -4656,13 +4662,13 @@
         pub fn get_load_script(self: &ConfigSection) -> Option<ScriptValue> {
             let platform_name = get_platform_name();
     
    -        if platform_name == "windows" {
    +        if platform_name == "windows" {
                 if self.windows_load_script.is_some() {
                     self.windows_load_script.clone()
                 } else {
                     self.load_script.clone()
                 }
    -        } else if platform_name == "mac" {
    +        } else if platform_name == "mac" {
                 if self.mac_load_script.is_some() {
                     self.mac_load_script.clone()
                 } else {
    @@ -4702,7 +4708,7 @@
     
             let namespace = match modify_config.namespace {
                 Some(ref namespace) => namespace,
    -            None => "",
    +            None => "",
             };
     
             let mut modified_tasks = IndexMap::<String, Task>::new();
    diff --git a/docs/api/src/cli/version.rs.html b/docs/api/src/cli/version.rs.html
    index 4bf2d68a8..79732ac90 100644
    --- a/docs/api/src/cli/version.rs.html
    +++ b/docs/api/src/cli/version.rs.html
    @@ -1,4 +1,6 @@
    -version.rs - source
    1
    +version.rs - source
    +    
    1
     2
     3
     4
    @@ -262,7 +264,7 @@
     //!
     
     #[cfg(test)]
    -#[path = "version_test.rs"]
    +#[path = "version_test.rs"]
     mod version_test;
     
     use crate::cache;
    @@ -273,14 +275,14 @@
     use std::process::Command;
     use std::time::{SystemTime, UNIX_EPOCH};
     
    -static VERSION: &str = env!("CARGO_PKG_VERSION");
    +static VERSION: &str = env!("CARGO_PKG_VERSION");
     
     fn get_version_from_output(line: &str) -> Option<String> {
    -    let parts: Vec<&str> = line.split(' ').collect();
    +    let parts: Vec<&str> = line.split(' ').collect();
     
         if parts.len() >= 3 {
             let version_part = parts[2];
    -        let version = str::replace(version_part, "\"", "");
    +        let version = str::replace(version_part, "\"", "");
     
             Some(version)
         } else {
    @@ -289,10 +291,10 @@
     }
     
     fn get_latest_version() -> Option<String> {
    -    let result = Command::new("cargo")
    -        .arg("search")
    -        .arg("cargo-make")
    -        .arg("--limit=1")
    +    let result = Command::new("cargo")
    +        .arg("search")
    +        .arg("cargo-make")
    +        .arg("--limit=1")
             .output();
     
         match result {
    @@ -300,15 +302,15 @@
                 let exit_code = command::get_exit_code(Ok(output.status), false);
                 if exit_code == 0 {
                     let stdout = String::from_utf8_lossy(&output.stdout);
    -                let lines: Vec<&str> = stdout.split('\n').collect();
    +                let lines: Vec<&str> = stdout.split('\n').collect();
     
                     let mut output = None;
                     for mut line in lines {
                         line = line.trim();
     
    -                    debug!("Checking: {}", &line);
    +                    debug!("Checking: {}", &line);
     
    -                    if line.starts_with("cargo-make = ") {
    +                    if line.starts_with("cargo-make = ") {
                             output = get_version_from_output(line);
     
                             break;
    @@ -398,24 +400,24 @@
     }
     
     pub(crate) fn is_newer_found(version_string: &str) -> bool {
    -    debug!("Checking Version: {}", &version_string);
    +    debug!("Checking Version: {}", &version_string);
     
         is_newer(&VERSION, &version_string, false, false)
     }
     
     fn print_notification(latest_string: &str) {
    -    warn!("#####################################################################");
    -    warn!("#                                                                   #");
    -    warn!("#                                                                   #");
    -    warn!("#                  NEW CARGO-MAKE VERSION FOUND!!!                  #");
    +    warn!("#####################################################################");
    +    warn!("#                                                                   #");
    +    warn!("#                                                                   #");
    +    warn!("#                  NEW CARGO-MAKE VERSION FOUND!!!                  #");
         warn!(
    -        "#{:^67}#",
    -        format!("Current: {}, Latest: {}", VERSION, latest_string)
    +        "#{:^67}#",
    +        format!("Current: {}, Latest: {}", VERSION, latest_string)
         );
    -    warn!("#    Run 'cargo install --force cargo-make' to get latest version   #");
    -    warn!("#                                                                   #");
    -    warn!("#                                                                   #");
    -    warn!("#####################################################################");
    +    warn!("#    Run 'cargo install --force cargo-make' to get latest version   #");
    +    warn!("#                                                                   #");
    +    warn!("#                                                                   #");
    +    warn!("#####################################################################");
     }
     
     fn get_now_as_seconds() -> u64 {
    @@ -454,11 +456,11 @@
     fn get_days(global_config: &GlobalConfig) -> u64 {
         match global_config.update_check_minimum_interval {
             Some(ref value) => {
    -            if value == "always" {
    +            if value == "always" {
                     0
    -            } else if value == "daily" {
    +            } else if value == "daily" {
                     1
    -            } else if value == "monthly" {
    +            } else if value == "monthly" {
                     30
                 } else {
                     // default to weekly
    @@ -481,15 +483,15 @@
     }
     
     fn should_check_for_args(cli_args: &CliArgs, global_config: &GlobalConfig, is_ci: bool) -> bool {
    -    // only run check for updates if we are not in a CI env and user didn't ask to skip the check
    +    // only run check for updates if we are not in a CI env and user didn't ask to skip the check
         !cli_args.disable_check_for_updates
             && !is_ci
    -        && !envmnt::is_or("CARGO_MAKE_DISABLE_UPDATE_CHECK", false)
    +        && !envmnt::is_or("CARGO_MAKE_DISABLE_UPDATE_CHECK", false)
             && should_check_overdue(&global_config)
     }
     
     pub(crate) fn should_check(cli_args: &CliArgs, global_config: &GlobalConfig) -> bool {
    -    // only run check for updates if we are not in a CI env and user didn't ask to skip the check
    +    // only run check for updates if we are not in a CI env and user didn't ask to skip the check
         should_check_for_args(cli_args, global_config, ci_info::is_ci())
     }
     
    diff --git a/docs/api/src/makers/makers.rs.html b/docs/api/src/makers/makers.rs.html
    index 9ed537aec..e242ad68f 100644
    --- a/docs/api/src/makers/makers.rs.html
    +++ b/docs/api/src/makers/makers.rs.html
    @@ -1,4 +1,6 @@
    -makers.rs - source
    1
    +makers.rs - source
    +    
    1
     2
     3
     4
    @@ -41,11 +43,11 @@
     //!
     
     #[cfg(test)]
    -#[path = "makers_test.rs"]
    +#[path = "makers_test.rs"]
     mod makers_test;
     
     fn get_name() -> String {
    -    "makers".to_string()
    +    "makers".to_string()
     }
     
     fn main() {
    diff --git a/docs/api/static.files/ayu-00000000d52bec7d.css b/docs/api/static.files/ayu-00000000d52bec7d.css
    deleted file mode 100644
    index 8fd09c9e4..000000000
    --- a/docs/api/static.files/ayu-00000000d52bec7d.css
    +++ /dev/null
    @@ -1 +0,0 @@
    - :root{--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);--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;--source-sidebar-background-selected:#14191f;--source-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:rgb(91,59,1);--scrape-example-code-line-highlight-focus:rgb(124,75,15);--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);}h1,h2,h3,h4,h1 a,.sidebar h2 a,.sidebar h3 a,#source-sidebar>.title{color:#fff;}h4{border:none;}.docblock code{color:#ffb454;}.docblock a>code{color:#39AFD7 !important;}.code-header,.docblock pre>code,pre,pre>code,.item-info code,.rustdoc.source .example-wrap{color:#e6e1cf;}.sidebar .current,.sidebar a:hover,#source-sidebar div.files>a:hover,details.dir-entry summary:hover,#source-sidebar div.files>a:focus,details.dir-entry summary:focus,#source-sidebar div.files>a.selected{color:#ffb44c;}.sidebar-elems .location{color:#ff7733;}.src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}.search-results a:hover,.search-results a:focus{color:#fff !important;background-color:#3c3c3c;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}#search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}#search-tabs>button:not(.selected){border:none;background-color:transparent !important;}#search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#settings-menu>a img{filter:invert(100);}
    \ No newline at end of file
    diff --git a/docs/api/static.files/dark-0000000038bf9c10.css b/docs/api/static.files/dark-0000000038bf9c10.css
    deleted file mode 100644
    index 1e5e7d194..000000000
    --- a/docs/api/static.files/dark-0000000038bf9c10.css
    +++ /dev/null
    @@ -1 +0,0 @@
    -: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);--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;--source-sidebar-background-selected:#333;--source-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:rgb(91,59,1);--scrape-example-code-line-highlight-focus:rgb(124,75,15);--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/docs/api/static.files/light-0000000098ecf2b2.css b/docs/api/static.files/light-0000000098ecf2b2.css
    deleted file mode 100644
    index 21c3a859b..000000000
    --- a/docs/api/static.files/light-0000000098ecf2b2.css
    +++ /dev/null
    @@ -1 +0,0 @@
    -: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);--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:#ffffff;--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:#4e8bca;--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;--source-sidebar-background-selected:#fff;--source-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);}
    \ No newline at end of file
    diff --git a/docs/api/static.files/main-0000000015700b57.js b/docs/api/static.files/main-0000000015700b57.js
    new file mode 100644
    index 000000000..a195dccb0
    --- /dev/null
    +++ b/docs/api/static.files/main-0000000015700b57.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("=").map(x=>x.replace(/\+/g," "));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");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar()}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-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/docs/api/static.files/main-0000000094b202b6.js b/docs/api/static.files/main-0000000094b202b6.js deleted file mode 100644 index 2fa290256..000000000 --- a/docs/api/static.files/main-0000000094b202b6.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict";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 mobileLocationTitle=document.querySelector(".mobile-topbar h2");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileLocationTitle&&locationTitle){mobileLocationTitle.innerHTML=locationTitle.innerHTML}}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 loadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="stylesheet";document.getElementsByTagName("head")[0].appendChild(link)}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();loadCss(getVar("static-root-path")+getVar("settings-css"));loadScript(getVar("static-root-path")+getVar("settings-js"));preLoadCss(getVar("static-root-path")+getVar("theme-light-css"));preLoadCss(getVar("static-root-path")+getVar("theme-dark-css"));preLoadCss(getVar("static-root-path")+getVar("theme-ayu-css"));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},hideResults:()=>{switchDisplayedElement(null);document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},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)}}}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 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=name+"/index.html"}else{path=shortty+"."+name+".html"}const current_page=document.location.href.split("/").pop();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("union","unions","Unions");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Definitions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");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&&!/^(?:[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)}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){return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
    "+window.NOTABLE_TRAITS[notable_ty]+"
    "}else if(e.getAttribute("title")!==undefined){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("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;wrapper.onpointerleave=function(ev){if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(event.relatedTarget,e)){hideTooltip(true)}}}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);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=function(){this.TOOLTIP_FORCE_VISIBLE=this.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!this.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(this);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=function(ev){if(ev.pointerType!=="mouse"){return}showTooltip(this)};e.onpointerleave=function(ev){if(ev.pointerType!=="mouse"){return}if(!this.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)){hideTooltip(true)}}});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");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=["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 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=function(switchFocus){hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=function(){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/docs/api/static.files/noscript-00000000c3ec0cbe.css b/docs/api/static.files/noscript-00000000c3ec0cbe.css new file mode 100644 index 000000000..fbd55f57d --- /dev/null +++ b/docs/api/static.files/noscript-00000000c3ec0cbe.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}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;--mobile-sidebar-menu-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%);--mobile-sidebar-menu-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/docs/api/static.files/noscript-00000000e18db8d9.css b/docs/api/static.files/noscript-00000000e18db8d9.css deleted file mode 100644 index c32e0cb13..000000000 --- a/docs/api/static.files/noscript-00000000e18db8d9.css +++ /dev/null @@ -1 +0,0 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path{display:none;}nav.sub{display:none;}.source .sidebar{display:none;}.notable-traits{display:none;} \ No newline at end of file diff --git a/docs/api/static.files/rustdoc-000000005f7541b6.css b/docs/api/static.files/rustdoc-000000005f7541b6.css new file mode 100644 index 000000000..ce5efae45 --- /dev/null +++ b/docs/api/static.files/rustdoc-000000005f7541b6.css @@ -0,0 +1,24 @@ + :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%;}.logo-container{line-height:0;display:block;}.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;width: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 .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{background-color:var(--sidebar-background-color);}.src .sidebar>*{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>*{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;}.top-doc>.docblock>.warning:first-child::before{top:20px;}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{width:100%;overflow:auto;}#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-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#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;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,\ + ');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');opacity:0.75;}@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,.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;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left: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;border:none;line-height:0;}.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;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.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{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}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;}}.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;--mobile-sidebar-menu-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%);--mobile-sidebar-menu-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%);--mobile-sidebar-menu-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{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/docs/api/static.files/rustdoc-00000000e7d700b8.css b/docs/api/static.files/rustdoc-00000000e7d700b8.css deleted file mode 100644 index 3681b049e..000000000 --- a/docs/api/static.files/rustdoc-00000000e7d700b8.css +++ /dev/null @@ -1,8 +0,0 @@ - :root{--nav-sub-mobile-padding:8px;}@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.srclink,#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,#source-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name .primitive>i,.result-name .keyword>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{margin:0 0 .75em 0;}p: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;}.source 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;}.source .content pre{padding:20px;}.rustdoc.source .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.source .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,#source-sidebar{background-color:var(--sidebar-background-color);}#src-sidebar-toggle>button:hover,#src-sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.source .sidebar>*:not(#src-sidebar-toggle){visibility:hidden;}.source-sidebar-expanded .source .sidebar{overflow-y:auto;flex-basis:300px;}.source-sidebar-expanded .source .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;}.sidebar .logo-container{margin-top:10px;margin-bottom:10px;text-align:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}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>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.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;}.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(.source) .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.source .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;}.source 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);}@-moz-document url-prefix(){#crate-search{padding-left:0px;padding-right:19px;}}#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{flex:1;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name span.alias{color:var(--search-results-alias-color);}.search-results .result-name span.grey{color:var(--search-results-grey-color);}.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;}#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;}.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;align-items:center;white-space:pre-wrap;border-radius:3px;display:inline-flex;vertical-align:text-bottom;}.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.source .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;}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;}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.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;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;}#source-sidebar{width:100%;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:6px;}#source-sidebar div.files>a:hover,details.dir-entry summary:hover,#source-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--source-sidebar-background-hover);}#source-sidebar div.files>a.selected{background-color:var(--source-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: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;}.source main,.rustdoc.source .sidebar{top:0;padding:0;height:100vh;border:0;}.sidebar.shown,.source-sidebar-expanded .source .sidebar,.rustdoc:not(.source) .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;}#search-tabs .count{display:block;}#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;}.source-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;}.source-sidebar-expanded .source .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;}.source 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.srclink,#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;} \ No newline at end of file diff --git a/docs/api/static.files/search-000000006d902bd2.js b/docs/api/static.files/search-000000006d902bd2.js new file mode 100644 index 000000000..ef8bf865a --- /dev/null +++ b/docs/api/static.files/search-000000006d902bd2.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;let typeNameIdOfTuple;let typeNameIdOfUnit;let typeNameIdOfTupleOrUnit;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 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.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}else{throw["Unexpected ",c]}}parserState.pos+=1;end=parserState.pos}if(foundExclamation!==-1&&foundExclamation!==start&&isIdentCharacter(parserState.userQuery[foundExclamation-1])){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=foundExclamation}return end}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const isInBinding=parserState.isInBinding;if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else{parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push({name:name,id:null,fullPath:[name],pathWithoutLast:[],pathLast:name,normalizedPathLast:name,generics,bindings:new Map(),typeFilter:"primitive",bindingName:isInBinding,})}}else{const isStringElem=parserState.userQuery[start]==="\"";if(isStringElem){start+=1;getStringElem(query,parserState,isInGenerics);end=parserState.pos-1}else{end=getIdentEndPosition(parserState)}if(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 foundSeparator=false;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 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;return{foundSeparator}}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 ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}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(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}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&&elem.id!==typeNameIdOfTupleOrUnit){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens)}}return unifyFunctionTypes([row],[elem],whereClause,mgens)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3);let ret_dist=maxPathEditDistance+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;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null: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);if(path_dist===null){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>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(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);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.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();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=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchType(itemFunctionDecoder,lowercasePaths){const c=itemFunctionDecoder.string.charCodeAt(itemFunctionDecoder.offset);itemFunctionDecoder.offset+=1;const[zero,ua,la,ob,cb]=["0","@","`","{","}"].map(c=>c.charCodeAt(0));if(c===la){return null}if(c>=zero&&c>1];itemFunctionDecoder.offset+=1;return sign?-value:value}const functionSearchType=decodeList();const INPUTS_DATA=0;const OUTPUT_DATA=1;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;i16){itemFunctionDecoder.backrefQueue.pop()}return ret}function buildFunctionTypeFingerprint(type,output,fps){let input=type.id;if(input===typeNameIdOfArray||input===typeNameIdOfSlice){input=typeNameIdOfArrayOrSlice}if(input===typeNameIdOfTuple||input===typeNameIdOfUnit){input=typeNameIdOfTupleOrUnit}const hashint1=k=>{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:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_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");typeNameIdOfTuple=buildTypeMapIndex("tuple");typeNameIdOfUnit=buildTypeMapIndex("unit");typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");typeNameIdOfTupleOrUnit=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 itemFunctionDecoder={string:crateCorpus.f,offset:0,backrefQueue:[],};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}TYPES_POOL=new Map()}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/docs/api/static.files/search-000000008f4b879f.js b/docs/api/static.files/search-000000008f4b879f.js deleted file mode 100644 index df0778881..000000000 --- a/docs/api/static.files/search-000000008f4b879f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(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",];const TY_PRIMITIVE=itemTypes.indexOf("primitive");const TY_KEYWORD=itemTypes.indexOf("keyword");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();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 isWhitespace(c)||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===","||isWhitespaceCharacter(c)}function isWhitespaceCharacter(c){return c===" "||c==="\t"}function createQueryElement(query,parserState,name,generics,isInGenerics){if(name==="*"||(name.length===0&&generics.length===0)){return}if(query.literalSearch&&parserState.totalElems-parserState.genericsElems>0){throw["You cannot have more than one element if you use quotes"]}const pathSegments=name.split("::");if(pathSegments.length>1){for(let i=0,len=pathSegments.length;i=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}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;while(parserState.pos"){extra="<"}else if(endChar===""){extra="->"}else{extra=endChar}throw["Unexpected ",c," after ",extra]}if(!foundStopChar){if(endChar!==""){throw["Expected ",",",", "," "," or ",endChar,", found ",c,]}throw["Expected ",","," or "," ",", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar===">");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ","<"]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ","<"]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery;for(let pos=start;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 ",":"]}if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["You 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}if(!foundStopChar){if(parserState.typeFilter!==null){throw["Expected ",",",", "," "," or ","->",", found ",c,]}throw["Expected ",",",", "," ",", ",":"," or ","->",", 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)"]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,literalSearch:false,error:null,correction: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;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(row,elem){if(row.generics.length===0||elem.generics.length===0){return false}if(elem.generics.length>0&&row.generics.length>=elem.generics.length){const elems=new Map();const addEntryToElems=function addEntryToElems(entry){if(entry.id===-1){for(const inner_entry of entry.generics){addEntryToElems(inner_entry)}return}let currentEntryElems;if(elems.has(entry.id)){currentEntryElems=elems.get(entry.id)}else{currentEntryElems=[];elems.set(entry.id,currentEntryElems)}currentEntryElems.push(entry)};for(const entry of row.generics){addEntryToElems(entry)}const handleGeneric=generic=>{if(!elems.has(generic.id)){return false}const matchElems=elems.get(generic.id);const matchIdx=matchElems.findIndex(tmp_elem=>{if(generic.generics.length>0&&!checkGenerics(tmp_elem,generic)){return false}return typePassesFilter(generic.typeFilter,tmp_elem.ty)});if(matchIdx===-1){return false}matchElems.splice(matchIdx,1);if(matchElems.length===0){elems.delete(generic.id)}return true};for(const generic of elem.generics){if(generic.typeFilter!==-1&&!handleGeneric(generic)){return false}}for(const generic of elem.generics){if(generic.typeFilter===-1&&!handleGeneric(generic)){return false}}return true}return false}function checkIfInGenerics(row,elem){for(const entry of row.generics){if(checkType(entry,elem)){return true}}return false}function checkType(row,elem){if(row.id===-1){return row.generics.length>0?checkIfInGenerics(row,elem):false}if(row.id===elem.id&&typePassesFilter(elem.typeFilter,row.ty)){if(elem.generics.length>0){return checkGenerics(row,elem)}return true}return checkIfInGenerics(row,elem)}function findArg(row,elem,skipPositions){if(row&&row.type&&row.type.inputs&&row.type.inputs.length>0){let i=0;for(const input of row.type.inputs){if(skipPositions.indexOf(i)!==-1){i+=1;continue}if(checkType(input,elem)){return i}i+=1}}return-1}function checkReturned(row,elem,skipPositions){if(row&&row.type&&row.type.output.length>0){let i=0;for(const ret_ty of row.type.output){if(skipPositions.indexOf(i)!==-1){i+=1;continue}if(checkType(ret_ty,elem)){return i}i+=1}}return-1}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,}}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=findArg(row,elem,[]);if(in_args!==-1){addIntoResults(results_in_args,fullId,pos,-1,0,0,maxEditDistance)}const returned=checkReturned(row,elem,[]);if(returned!==-1){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)){return}function checkArgs(elems,callback){const skipPositions=[];for(const elem of elems){const position=callback(row,elem,skipPositions);if(position!==-1){skipPositions.push(position)}else{return false}}return true}if(!checkArgs(parsedQuery.elems,findArg)){return}if(!checkArgs(parsedQuery.returned,checkReturned)){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);function convertNameToId(elem){if(typeNameIdMap.has(elem.name)){elem.id=typeNameIdMap.get(elem.name)}else if(!parsedQuery.literalSearch){let match=-1;let matchDist=maxEditDistance+1;let matchName="";for(const[name,id]of typeNameIdMap){const dist=editDistance(name,elem.name,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==-1){parsedQuery.correction=matchName}elem.id=match}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+"::"}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];length+=1;let extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){const alias=document.createElement("span");alias.className="alias";const bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");link.appendChild(resultName);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){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")){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}`}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.

    `}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 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";if(browserSupportsHistoryApi()){const newURL=buildUrl(query.original,filterCrates);if(!history.state&&!params.search){history.pushState(null,"",newURL)}else{history.replaceState(null,"",newURL)}}showResults(execQuery(query,searchWords,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildTypeMapIndex(typeNameIdMap,name){if(name===""||name===null){return-1}if(typeNameIdMap.has(name)){return typeNameIdMap.get(name)}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,id);return id}}function buildItemSearchTypeAll(types,lowercasePaths,typeNameIdMap){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;return types.map(type=>{let pathIndex,generics;if(typeof type==="number"){pathIndex=type;generics=[]}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths,typeNameIdMap)}return{id:pathIndex===0?-1:buildTypeMapIndex(typeNameIdMap,lowercasePaths[pathIndex-1].name),ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:generics,}})}function buildFunctionSearchType(functionSearchType,lowercasePaths,typeNameIdMap){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){const pathIndex=functionSearchType[INPUTS_DATA];inputs=[{id:pathIndex===0?-1:buildTypeMapIndex(typeNameIdMap,lowercasePaths[pathIndex-1].name),ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:[],}]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths,typeNameIdMap)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){const pathIndex=functionSearchType[OUTPUT_DATA];output=[{id:pathIndex===0?-1:buildTypeMapIndex(typeNameIdMap,lowercasePaths[pathIndex-1].name),ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:[],}]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths,typeNameIdMap)}}else{output=[]}return{inputs,output,}}function buildIndex(rawSearchIndex){searchIndex=[];const searchWords=[];typeNameIdMap=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;for(const crate in rawSearchIndex){if(!hasOwnPropertyRustdoc(rawSearchIndex,crate)){continue}let crateSize=0;const crateCorpus=rawSearchIndex[crate];searchWords.push(crate);const crateRow={crate:crate,ty:1,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),deprecated: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 paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:buildFunctionSearchType(itemFunctionSearchTypes[i],lowercasePaths,typeNameIdMap),id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),};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 params=searchState.getQueryStringParams();const query=searchState.input.value.trim();if(!history.state&&!params.search){history.pushState(null,"",buildUrl(query,null))}else{history.replaceState(null,"",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/docs/api/static.files/settings-000000000a4e6193.js b/docs/api/static.files/settings-000000000a4e6193.js new file mode 100644 index 000000000..ab425fe49 --- /dev/null +++ b/docs/api/static.files/settings-000000000a4e6193.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/docs/api/static.files/settings-00000000ae536cfc.js b/docs/api/static.files/settings-00000000ae536cfc.js deleted file mode 100644 index cc508a861..000000000 --- a/docs/api/static.files/settings-00000000ae536cfc.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=function(){changeSetting(this.id,this.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=function(event){event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=function(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/docs/api/static.files/settings-00000000de69f609.css b/docs/api/static.files/settings-00000000de69f609.css deleted file mode 100644 index 28fda92d4..000000000 --- a/docs/api/static.files/settings-00000000de69f609.css +++ /dev/null @@ -1,3 +0,0 @@ -.setting-line{margin:1.2em 0.6em;position:relative;}.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-check input:checked{content:url('data:image/svg+xml,\ - \ - ');}.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;}.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;} \ No newline at end of file diff --git a/docs/api/static.files/source-script-00000000502bce96.js b/docs/api/static.files/source-script-00000000502bce96.js deleted file mode 100644 index 6afbb5a26..000000000 --- a/docs/api/static.files/source-script-00000000502bce96.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(function(){const rootPath=document.getElementById("rustdoc-vars").attributes["data-root-path"].value;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,"source-sidebar-expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{removeClass(document.documentElement,"source-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 createSourceSidebar(){const container=document.querySelector("nav.sidebar");const sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);const sidebar=document.createElement("div");sidebar.id="source-sidebar";let hasFoundFile=false;const title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(key=>{sourcesIndex[key][NAME_OFFSET]=key;hasFoundFile=createDirEntry(sourcesIndex[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 highlightSourceLines(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 handleSourceHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSourceLines()}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 highlightSourceLines(match)}});onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSourceHighlight)});highlightSourceLines();window.createSourceSidebar=createSourceSidebar})() \ No newline at end of file diff --git a/docs/api/static.files/src-script-00000000e6115c00.js b/docs/api/static.files/src-script-00000000e6115c00.js new file mode 100644 index 000000000..d0aebb851 --- /dev/null +++ b/docs/api/static.files/src-script-00000000e6115c00.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");updateLocalStorage("source-sidebar-show","false")};window.rustdocShowSourceSidebar=()=>{addClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","true")};window.rustdocToggleSrcSidebar=()=>{if(document.documentElement.classList.contains("src-sidebar-expanded")){window.rustdocCloseSourceSidebar()}else{window.rustdocShowSourceSidebar()}};function createSrcSidebar(){const container=document.querySelector("nav.sidebar");const sidebar=document.createElement("div");sidebar.id="src-sidebar";let hasFoundFile=false;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/docs/api/static.files/storage-0000000014d63f83.js b/docs/api/static.files/storage-0000000014d63f83.js deleted file mode 100644 index 6f4ec2e54..000000000 --- a/docs/api/static.files/storage-0000000014d63f83.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";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.getElementById("rustdoc-vars");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){if(saveTheme){updateLocalStorage("theme",newThemeName)}let newHref;if(newThemeName==="light"||newThemeName==="dark"||newThemeName==="ayu"){newHref=getVar("static-root-path")+getVar("theme-"+newThemeName+"-css")}else{newHref=getVar("root-path")+newThemeName+getVar("resource-suffix")+".css"}if(!window.currentTheme){document.write(``);window.currentTheme=document.getElementById("themeStyle")}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,"source-sidebar-expanded")}window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0)}}) \ No newline at end of file diff --git a/docs/api/static.files/storage-00000000b6b6e7c2.js b/docs/api/static.files/storage-00000000b6b6e7c2.js new file mode 100644 index 000000000..17233608a --- /dev/null +++ b/docs/api/static.files/storage-00000000b6b6e7c2.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/docs/api/trait.impl/core/clone/trait.Clone.js b/docs/api/trait.impl/core/clone/trait.Clone.js new file mode 100644 index 000000000..992134328 --- /dev/null +++ b/docs/api/trait.impl/core/clone/trait.Clone.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl Clone for RunTaskInfo"],["impl Clone for TaskIdentifier"],["impl Clone for Extend"],["impl Clone for Cache"],["impl Clone for ScriptValue"],["impl Clone for EnvValue"],["impl Clone for InstallCargoPluginInfo"],["impl Clone for EnvFileInfo"],["impl Clone for GlobalConfig"],["impl Clone for DependencyIdentifier"],["impl Clone for CrateDependency"],["impl Clone for PlatformOverrideTask"],["impl Clone for InstallCrateInfo"],["impl Clone for ScriptSections"],["impl Clone for Step"],["impl Clone for ConfigSection"],["impl Clone for Config"],["impl Clone for CliArgs"],["impl Clone for FilesFilesModifiedCondition"],["impl Clone for EnvValueConditioned"],["impl Clone for EnvValuePathGlob"],["impl Clone for FileScriptValue"],["impl Clone for EnvValueDecode"],["impl Clone for TaskCondition"],["impl Clone for DeprecationInfo"],["impl Clone for EnvValueScript"],["impl Clone for EnvValueUnset"],["impl Clone for TestArg"],["impl Clone for RustVersionCondition"],["impl Clone for WatchOptions"],["impl Clone for InstallCrate"],["impl Clone for TaskWatchOptions"],["impl Clone for InstallRustupComponentInfo"],["impl Clone for ModifyConfig"],["impl Clone for UnstableFeature"],["impl Clone for RunTaskName"],["impl Clone for RunTaskRoutingInfo"],["impl Clone for PackageInfo"],["impl Clone for ExternalConfig"],["impl Clone for RunTaskDetails"],["impl Clone for Task"],["impl Clone for EnvFile"],["impl Clone for Workspace"],["impl Clone for CrateInfo"],["impl Clone for ToolchainBoundedSpecifier"],["impl Clone for FlowState"],["impl Clone for ToolchainSpecifier"],["impl Clone for FlowInfo"],["impl Clone for EnvInfo"],["impl Clone for CrateDependencyInfo"],["impl Clone for ExtendOptions"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/trait.impl/core/cmp/trait.Eq.js b/docs/api/trait.impl/core/cmp/trait.Eq.js new file mode 100644 index 000000000..123771ce6 --- /dev/null +++ b/docs/api/trait.impl/core/cmp/trait.Eq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl Eq for DependencyIdentifier"],["impl Eq for UnstableFeature"],["impl Eq for ToolchainSpecifier"],["impl Eq for ToolchainBoundedSpecifier"],["impl Eq for TestArg"],["impl Eq for TaskIdentifier"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/trait.impl/core/cmp/trait.PartialEq.js b/docs/api/trait.impl/core/cmp/trait.PartialEq.js new file mode 100644 index 000000000..2faf9949f --- /dev/null +++ b/docs/api/trait.impl/core/cmp/trait.PartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl PartialEq for DeprecationInfo"],["impl PartialEq for InstallCargoPluginInfo"],["impl PartialEq for InstallCrateInfo"],["impl PartialEq for TaskIdentifier"],["impl PartialEq for TestArg"],["impl PartialEq for ToolchainSpecifier"],["impl PartialEq for DependencyIdentifier"],["impl PartialEq for TaskWatchOptions"],["impl PartialEq for InstallRustupComponentInfo"],["impl PartialEq for ToolchainBoundedSpecifier"],["impl PartialEq for RunTaskName"],["impl PartialEq for UnstableFeature"],["impl PartialEq for WatchOptions"],["impl PartialEq for InstallCrate"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/convert/trait.From.js b/docs/api/trait.impl/core/convert/trait.From.js similarity index 100% rename from docs/api/implementors/core/convert/trait.From.js rename to docs/api/trait.impl/core/convert/trait.From.js diff --git a/docs/api/implementors/core/convert/trait.Into.js b/docs/api/trait.impl/core/convert/trait.Into.js similarity index 100% rename from docs/api/implementors/core/convert/trait.Into.js rename to docs/api/trait.impl/core/convert/trait.Into.js diff --git a/docs/api/trait.impl/core/default/trait.Default.js b/docs/api/trait.impl/core/default/trait.Default.js new file mode 100644 index 000000000..40c2ca8a4 --- /dev/null +++ b/docs/api/trait.impl/core/default/trait.Default.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl Default for FlowState"],["impl Default for ConfigSection"],["impl Default for Workspace"],["impl Default for Task"],["impl Default for PackageInfo"],["impl Default for Cache"],["impl Default for ExternalConfig"],["impl Default for CrateInfo"],["impl Default for GlobalConfig"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/trait.impl/core/fmt/trait.Debug.js b/docs/api/trait.impl/core/fmt/trait.Debug.js new file mode 100644 index 000000000..0e2f813e0 --- /dev/null +++ b/docs/api/trait.impl/core/fmt/trait.Debug.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl Debug for Task"],["impl Debug for TaskWatchOptions"],["impl Debug for Config"],["impl Debug for WatchOptions"],["impl Debug for EnvValueUnset"],["impl Debug for RustVersionCondition"],["impl Debug for EnvValue"],["impl Debug for ToolchainBoundedSpecifier"],["impl Debug for InstallRustupComponentInfo"],["impl Debug for FlowState"],["impl Debug for EnvValuePathGlob"],["impl Debug for Cache"],["impl Debug for ModifyConfig"],["impl Debug for CrateDependency"],["impl Debug for EnvFile"],["impl Debug for FlowInfo"],["impl Debug for FilesFilesModifiedCondition"],["impl Debug for CrateInfo"],["impl Debug for FileScriptValue"],["impl Debug for DeprecationInfo"],["impl Debug for CrateDependencyInfo"],["impl Debug for Step"],["impl Debug for Extend"],["impl Debug for EnvValueConditioned"],["impl Debug for Workspace"],["impl Debug for EnvValueScript"],["impl Debug for ScriptValue"],["impl Debug for DependencyIdentifier"],["impl Debug for PackageInfo"],["impl Debug for RunTaskDetails"],["impl Debug for GlobalConfig"],["impl Debug for EnvFileInfo"],["impl Debug for RunTaskName"],["impl Debug for ExternalConfig"],["impl Debug for ScriptSections"],["impl Debug for TestArg"],["impl Debug for ConfigSection"],["impl Debug for CommandSpec"],["impl Debug for ExtendOptions"],["impl Debug for UnstableFeature"],["impl Debug for ToolchainSpecifier"],["impl Debug for TaskCondition"],["impl Debug for CliArgs"],["impl Debug for InstallCrate"],["impl Debug for TaskIdentifier"],["impl Debug for RunTaskRoutingInfo"],["impl Debug for PlatformOverrideTask"],["impl Debug for RunTaskInfo"],["impl Debug for InstallCargoPluginInfo"],["impl Debug for ExecutionPlan"],["impl Debug for InstallCrateInfo"],["impl Debug for EnvInfo"],["impl Debug for EnvValueDecode"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/trait.impl/core/fmt/trait.Display.js b/docs/api/trait.impl/core/fmt/trait.Display.js new file mode 100644 index 000000000..c4062a601 --- /dev/null +++ b/docs/api/trait.impl/core/fmt/trait.Display.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl Display for ToolchainSpecifier"],["impl Display for ToolchainBoundedSpecifier"],["impl Display for TaskIdentifier"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/hash/trait.Hash.js b/docs/api/trait.impl/core/hash/trait.Hash.js similarity index 100% rename from docs/api/implementors/core/hash/trait.Hash.js rename to docs/api/trait.impl/core/hash/trait.Hash.js diff --git a/docs/api/implementors/core/marker/trait.Copy.js b/docs/api/trait.impl/core/marker/trait.Copy.js similarity index 100% rename from docs/api/implementors/core/marker/trait.Copy.js rename to docs/api/trait.impl/core/marker/trait.Copy.js diff --git a/docs/api/implementors/core/marker/trait.Freeze.js b/docs/api/trait.impl/core/marker/trait.Freeze.js similarity index 100% rename from docs/api/implementors/core/marker/trait.Freeze.js rename to docs/api/trait.impl/core/marker/trait.Freeze.js diff --git a/docs/api/implementors/core/marker/trait.Send.js b/docs/api/trait.impl/core/marker/trait.Send.js similarity index 100% rename from docs/api/implementors/core/marker/trait.Send.js rename to docs/api/trait.impl/core/marker/trait.Send.js diff --git a/docs/api/trait.impl/core/marker/trait.StructuralEq.js b/docs/api/trait.impl/core/marker/trait.StructuralEq.js new file mode 100644 index 000000000..3b6a7e147 --- /dev/null +++ b/docs/api/trait.impl/core/marker/trait.StructuralEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl StructuralEq for TestArg"],["impl StructuralEq for ToolchainBoundedSpecifier"],["impl StructuralEq for TaskIdentifier"],["impl StructuralEq for DependencyIdentifier"],["impl StructuralEq for ToolchainSpecifier"],["impl StructuralEq for UnstableFeature"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/trait.impl/core/marker/trait.StructuralPartialEq.js b/docs/api/trait.impl/core/marker/trait.StructuralPartialEq.js new file mode 100644 index 000000000..ccdbe793b --- /dev/null +++ b/docs/api/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl StructuralPartialEq for ToolchainSpecifier"],["impl StructuralPartialEq for DependencyIdentifier"],["impl StructuralPartialEq for TaskIdentifier"],["impl StructuralPartialEq for ToolchainBoundedSpecifier"],["impl StructuralPartialEq for TestArg"],["impl StructuralPartialEq for UnstableFeature"],["impl StructuralPartialEq for RunTaskName"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/implementors/core/marker/trait.Sync.js b/docs/api/trait.impl/core/marker/trait.Sync.js similarity index 100% rename from docs/api/implementors/core/marker/trait.Sync.js rename to docs/api/trait.impl/core/marker/trait.Sync.js diff --git a/docs/api/implementors/core/marker/trait.Unpin.js b/docs/api/trait.impl/core/marker/trait.Unpin.js similarity index 100% rename from docs/api/implementors/core/marker/trait.Unpin.js rename to docs/api/trait.impl/core/marker/trait.Unpin.js diff --git a/docs/api/implementors/core/ops/deref/trait.Deref.js b/docs/api/trait.impl/core/ops/deref/trait.Deref.js similarity index 100% rename from docs/api/implementors/core/ops/deref/trait.Deref.js rename to docs/api/trait.impl/core/ops/deref/trait.Deref.js diff --git a/docs/api/implementors/core/ops/deref/trait.DerefMut.js b/docs/api/trait.impl/core/ops/deref/trait.DerefMut.js similarity index 100% rename from docs/api/implementors/core/ops/deref/trait.DerefMut.js rename to docs/api/trait.impl/core/ops/deref/trait.DerefMut.js diff --git a/docs/api/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js similarity index 100% rename from docs/api/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js rename to docs/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js diff --git a/docs/api/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js similarity index 100% rename from docs/api/implementors/core/panic/unwind_safe/trait.UnwindSafe.js rename to docs/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js diff --git a/docs/api/trait.impl/serde/de/trait.Deserialize.js b/docs/api/trait.impl/serde/de/trait.Deserialize.js new file mode 100644 index 000000000..c96f14850 --- /dev/null +++ b/docs/api/trait.impl/serde/de/trait.Deserialize.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl<'de> Deserialize<'de> for FilesFilesModifiedCondition"],["impl<'de> Deserialize<'de> for ScriptSections"],["impl<'de> Deserialize<'de> for CrateDependencyInfo"],["impl<'de> Deserialize<'de> for PlatformOverrideTask"],["impl<'de> Deserialize<'de> for EnvValueConditioned"],["impl<'de> Deserialize<'de> for RustVersionCondition"],["impl<'de> Deserialize<'de> for TestArg"],["impl<'de> Deserialize<'de> for Config"],["impl<'de> Deserialize<'de> for Cache"],["impl<'de> Deserialize<'de> for ToolchainSpecifier"],["impl<'de> Deserialize<'de> for ToolchainBoundedSpecifier"],["impl<'de> Deserialize<'de> for EnvFile"],["impl<'de> Deserialize<'de> for TaskIdentifier"],["impl<'de> Deserialize<'de> for ModifyConfig"],["impl<'de> Deserialize<'de> for InstallCrate"],["impl<'de> Deserialize<'de> for RunTaskDetails"],["impl<'de> Deserialize<'de> for Extend"],["impl<'de> Deserialize<'de> for InstallRustupComponentInfo"],["impl<'de> Deserialize<'de> for InstallCrateInfo"],["impl<'de> Deserialize<'de> for RunTaskRoutingInfo"],["impl<'de> Deserialize<'de> for EnvValueUnset"],["impl<'de> Deserialize<'de> for ScriptValue"],["impl<'de> Deserialize<'de> for DeprecationInfo"],["impl<'de> Deserialize<'de> for RunTaskInfo"],["impl<'de> Deserialize<'de> for EnvValueScript"],["impl<'de> Deserialize<'de> for ExternalConfig"],["impl<'de> Deserialize<'de> for ExtendOptions"],["impl<'de> Deserialize<'de> for CrateDependency"],["impl<'de> Deserialize<'de> for TaskCondition"],["impl<'de> Deserialize<'de> for ConfigSection"],["impl<'de> Deserialize<'de> for Task"],["impl<'de> Deserialize<'de> for DependencyIdentifier"],["impl<'de> Deserialize<'de> for InstallCargoPluginInfo"],["impl<'de> Deserialize<'de> for EnvValuePathGlob"],["impl<'de> Deserialize<'de> for EnvValueDecode"],["impl<'de> Deserialize<'de> for TaskWatchOptions"],["impl<'de> Deserialize<'de> for EnvFileInfo"],["impl<'de> Deserialize<'de> for RunTaskName"],["impl<'de> Deserialize<'de> for UnstableFeature"],["impl<'de> Deserialize<'de> for WatchOptions"],["impl<'de> Deserialize<'de> for GlobalConfig"],["impl<'de> Deserialize<'de> for FileScriptValue"],["impl<'de> Deserialize<'de> for Workspace"],["impl<'de> Deserialize<'de> for EnvValue"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/api/trait.impl/serde/ser/trait.Serialize.js b/docs/api/trait.impl/serde/ser/trait.Serialize.js new file mode 100644 index 000000000..5e72201f5 --- /dev/null +++ b/docs/api/trait.impl/serde/ser/trait.Serialize.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"cli":[["impl Serialize for RunTaskRoutingInfo"],["impl Serialize for EnvValuePathGlob"],["impl Serialize for EnvValue"],["impl Serialize for CrateDependency"],["impl Serialize for ExternalConfig"],["impl Serialize for TaskIdentifier"],["impl Serialize for Extend"],["impl Serialize for RunTaskDetails"],["impl Serialize for TaskWatchOptions"],["impl Serialize for ToolchainSpecifier"],["impl Serialize for InstallCrate"],["impl Serialize for CrateDependencyInfo"],["impl Serialize for EnvValueConditioned"],["impl Serialize for EnvFileInfo"],["impl Serialize for InstallRustupComponentInfo"],["impl Serialize for DeprecationInfo"],["impl Serialize for EnvValueDecode"],["impl Serialize for WatchOptions"],["impl Serialize for TaskCondition"],["impl Serialize for ExtendOptions"],["impl Serialize for ToolchainBoundedSpecifier"],["impl Serialize for InstallCargoPluginInfo"],["impl Serialize for RunTaskName"],["impl Serialize for FilesFilesModifiedCondition"],["impl Serialize for RunTaskInfo"],["impl Serialize for FileScriptValue"],["impl Serialize for Cache"],["impl Serialize for EnvValueScript"],["impl Serialize for EnvValueUnset"],["impl Serialize for EnvFile"],["impl Serialize for DependencyIdentifier"],["impl Serialize for GlobalConfig"],["impl Serialize for Task"],["impl Serialize for ConfigSection"],["impl Serialize for Config"],["impl Serialize for UnstableFeature"],["impl Serialize for ScriptValue"],["impl Serialize for PlatformOverrideTask"],["impl Serialize for ModifyConfig"],["impl Serialize for InstallCrateInfo"],["impl Serialize for RustVersionCondition"],["impl Serialize for Step"],["impl Serialize for ScriptSections"],["impl Serialize for TestArg"],["impl Serialize for Workspace"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file