From 9846d68205e8c79a32192314b1aabbc95f314426 Mon Sep 17 00:00:00 2001 From: gbin Date: Wed, 25 Sep 2024 15:19:52 +0000 Subject: [PATCH] deploy: 48d8d9cc6438c068d3acffae1da22b5ffa35038b --- cu29/all.html | 2 +- cu29/config/fn.read_configuration.html | 2 +- cu29/config/index.html | 2 +- cu29/config/struct.Cnx.html | 2 +- cu29/config/struct.CuConfig.html | 2 +- cu29/config/struct.Node.html | 2 +- cu29/config/struct.NodeInstanceConfig.html | 2 +- cu29/config/struct.Value.html | 2 +- cu29/config/type.NodeId.html | 2 +- cu29/copperlist/enum.CopperListState.html | 2 +- cu29/copperlist/index.html | 2 +- cu29/copperlist/struct.CopperLiskMask.html | 2 +- cu29/copperlist/struct.CopperList.html | 2 +- cu29/copperlist/struct.CuListsManager.html | 2 +- cu29/copperlist/type.AscIter.html | 2 +- cu29/copperlist/type.AscIterMut.html | 2 +- cu29/copperlist/type.Iter.html | 2 +- cu29/copperlist/type.IterMut.html | 2 +- cu29/curuntime/enum.CuExecutionUnit.html | 2 +- cu29/curuntime/enum.CuTaskType.html | 2 +- cu29/curuntime/fn.compute_runtime_plan.html | 2 +- cu29/curuntime/index.html | 2 +- cu29/curuntime/struct.CuExecutionLoop.html | 2 +- cu29/curuntime/struct.CuExecutionStep.html | 2 +- cu29/curuntime/struct.CuRuntime.html | 2 +- cu29/cutask/index.html | 2 +- cu29/cutask/struct.CuMsg.html | 2 +- cu29/cutask/struct.CuMsgMetadata.html | 2 +- cu29/cutask/trait.CuMsgPack.html | 2 +- cu29/cutask/trait.CuMsgPayload.html | 2 +- cu29/cutask/trait.CuSinkTask.html | 2 +- cu29/cutask/trait.CuSrcTask.html | 2 +- cu29/cutask/trait.CuTask.html | 2 +- cu29/cutask/trait.CuTaskLifecycle.html | 2 +- cu29/cutask/trait.Freezable.html | 2 +- cu29/enum.UnifiedLogType.html | 2 +- cu29/index.html | 2 +- cu29/macro.input_msg.html | 2 +- cu29/macro.output_msg.html | 2 +- cu29/monitoring/index.html | 2 +- cu29/monitoring/static.GLOBAL.html | 2 +- cu29/monitoring/struct.CountingAllocator.html | 2 +- .../monitoring/struct.ScopedAllocCounter.html | 2 +- cu29/struct.CuError.html | 2 +- cu29/trait.CopperListPayload.html | 2 +- cu29/trait.WriteStream.html | 2 +- cu29/type.CuResult.html | 2 +- cu29_clock/all.html | 2 +- cu29_clock/index.html | 2 +- cu29_clock/struct.CuDuration.html | 2 +- cu29_clock/struct.Instant.html | 2 +- cu29_clock/struct.OptionCuTime.html | 2 +- cu29_clock/struct.RobotClock.html | 2 +- cu29_clock/struct.RobotClockMock.html | 2 +- cu29_clock/trait.ClockProvider.html | 2 +- cu29_clock/type.CuTime.html | 2 +- cu29_derive/all.html | 2 +- cu29_derive/attr.copper_runtime.html | 2 +- cu29_derive/index.html | 2 +- cu29_derive/macro.gen_culist_payload.html | 2 +- cu29_export/all.html | 2 +- cu29_export/enum.Command.html | 2 +- cu29_export/enum.ExportFormat.html | 2 +- cu29_export/fn.copperlists_dump.html | 2 +- cu29_export/fn.run_cli.html | 2 +- cu29_export/fn.textlog_dump.html | 2 +- cu29_export/index.html | 2 +- cu29_export/struct.LogReaderCli.html | 2 +- cu29_helpers/all.html | 2 +- cu29_helpers/fn.basic_copper_setup.html | 2 +- cu29_helpers/index.html | 2 +- cu29_helpers/struct.CopperContext.html | 2 +- cu29_intern_strs/all.html | 2 +- .../fn.read_interned_strings.html | 2 +- cu29_intern_strs/index.html | 2 +- cu29_log/all.html | 2 +- cu29_log/constant.ANONYMOUS.html | 2 +- .../constant.MAX_LOG_PARAMS_ON_STACK.html | 2 +- cu29_log/fn.default_log_index_dir.html | 2 +- cu29_log/fn.format_logline.html | 4 +- cu29_log/fn.rebuild_logline.html | 2 +- cu29_log/index.html | 2 +- cu29_log/struct.CuLogEntry.html | 6 +-- cu29_log_derive/all.html | 2 +- cu29_log_derive/index.html | 2 +- cu29_log_derive/macro.debug.html | 2 +- cu29_log_runtime/all.html | 2 +- cu29_log_runtime/fn.log.html | 2 +- cu29_log_runtime/fn.log_debug_mode.html | 2 +- cu29_log_runtime/index.html | 2 +- cu29_log_runtime/struct.LoggerRuntime.html | 2 +- cu29_log_runtime/struct.NullLog.html | 2 +- cu29_log_runtime/struct.OwningIoWriter.html | 2 +- cu29_log_runtime/struct.SimpleFileWriter.html | 2 +- cu29_rendercfg/all.html | 2 +- .../config/fn.read_configuration.html | 2 +- cu29_rendercfg/config/index.html | 2 +- cu29_rendercfg/config/struct.Cnx.html | 2 +- cu29_rendercfg/config/struct.CuConfig.html | 2 +- .../config/struct.CuConfigRepresentation.html | 2 +- cu29_rendercfg/config/struct.Node.html | 2 +- .../config/struct.NodeInstanceConfig.html | 2 +- cu29_rendercfg/config/struct.Value.html | 2 +- cu29_rendercfg/config/type.NodeId.html | 2 +- cu29_rendercfg/enum.UnifiedLogType.html | 2 +- cu29_rendercfg/fn.main.html | 2 +- cu29_rendercfg/index.html | 2 +- cu29_rendercfg/struct.Args.html | 2 +- cu29_rendercfg/struct.CuError.html | 2 +- cu29_rendercfg/trait.CopperListPayload.html | 2 +- cu29_rendercfg/trait.WriteStream.html | 2 +- cu29_rendercfg/type.CuResult.html | 2 +- cu29_soa_derive/all.html | 2 +- cu29_soa_derive/attr.soa.html | 2 +- cu29_soa_derive/index.html | 2 +- cu29_traits/all.html | 2 +- cu29_traits/enum.UnifiedLogType.html | 2 +- cu29_traits/index.html | 2 +- cu29_traits/struct.CuError.html | 2 +- cu29_traits/trait.CopperListPayload.html | 2 +- cu29_traits/trait.WriteStream.html | 2 +- cu29_traits/type.CuResult.html | 2 +- cu29_unifiedlog/all.html | 2 +- cu29_unifiedlog/enum.AllocatedSection.html | 2 +- cu29_unifiedlog/enum.UnifiedLogger.html | 2 +- cu29_unifiedlog/fn.stream_write.html | 2 +- cu29_unifiedlog/index.html | 2 +- cu29_unifiedlog/struct.SectionHandle.html | 2 +- cu29_unifiedlog/struct.SectionHeader.html | 2 +- .../struct.UnifiedLoggerBuilder.html | 2 +- .../struct.UnifiedLoggerIOReader.html | 2 +- cu29_unifiedlog/struct.UnifiedLoggerRead.html | 2 +- .../struct.UnifiedLoggerWrite.html | 2 +- help.html | 2 +- index.html | 2 +- settings.html | 2 +- src/cu29/config.rs.html | 18 +++---- src/cu29/copperlist.rs.html | 2 +- src/cu29/curuntime.rs.html | 2 +- src/cu29/cutask.rs.html | 2 +- src/cu29/lib.rs.html | 2 +- src/cu29/monitoring.rs.html | 2 +- src/cu29_clock/lib.rs.html | 2 +- src/cu29_derive/format.rs.html | 2 +- src/cu29_derive/lib.rs.html | 2 +- src/cu29_derive/utils.rs.html | 2 +- src/cu29_export/lib.rs.html | 2 +- src/cu29_helpers/lib.rs.html | 2 +- src/cu29_intern_strs/lib.rs.html | 2 +- src/cu29_log/lib.rs.html | 2 +- src/cu29_log_derive/index.rs.html | 2 +- src/cu29_log_derive/lib.rs.html | 2 +- src/cu29_log_runtime/lib.rs.html | 2 +- src/cu29_rendercfg/config.rs.html | 18 +++---- src/cu29_rendercfg/rendercfg.rs.html | 2 +- src/cu29_soa_derive/format.rs.html | 2 +- src/cu29_soa_derive/lib.rs.html | 2 +- src/cu29_traits/lib.rs.html | 2 +- src/cu29_unifiedlog/lib.rs.html | 4 +- static.files/main-2a73ac97dd39bfde.js | 11 ---- static.files/main-54bc299d2a5e4e43.js | 11 ++++ static.files/noscript-0111fcff984fae8f.css | 1 + static.files/noscript-40f72c9259523cb3.css | 1 - static.files/rustdoc-42fa08075bb476ff.css | 53 +++++++++++++++++++ static.files/rustdoc-9d5ec5f3536319c6.css | 47 ---------------- ...8ad3a7fe.js => search-e056c65ede92db13.js} | 3 +- ...92e77c.js => settings-805db61a62df4bd2.js} | 2 +- ...48d38fe.js => storage-1d39b6787ed640ff.js} | 17 +++--- 168 files changed, 255 insertions(+), 249 deletions(-) delete mode 100644 static.files/main-2a73ac97dd39bfde.js create mode 100644 static.files/main-54bc299d2a5e4e43.js create mode 100644 static.files/noscript-0111fcff984fae8f.css delete mode 100644 static.files/noscript-40f72c9259523cb3.css create mode 100644 static.files/rustdoc-42fa08075bb476ff.css delete mode 100644 static.files/rustdoc-9d5ec5f3536319c6.css rename static.files/{search-0cfde64e8ad3a7fe.js => search-e056c65ede92db13.js} (89%) rename static.files/{settings-7e3bb6c46e92e77c.js => settings-805db61a62df4bd2.js} (85%) rename static.files/{storage-29b1d5a9048d38fe.js => storage-1d39b6787ed640ff.js} (89%) diff --git a/cu29/all.html b/cu29/all.html index 3fd158db0..dc53b38b1 100644 --- a/cu29/all.html +++ b/cu29/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/cu29/config/fn.read_configuration.html b/cu29/config/fn.read_configuration.html index 22813abe7..a554a4bcf 100644 --- a/cu29/config/fn.read_configuration.html +++ b/cu29/config/fn.read_configuration.html @@ -1,2 +1,2 @@ -read_configuration in cu29::config - Rust

Function cu29::config::read_configuration

source ·
pub fn read_configuration(config_filename: &str) -> CuResult<CuConfig>
Expand description

Read a copper configuration from a file.

+read_configuration in cu29::config - Rust
cu29::config

Function read_configuration

source
pub fn read_configuration(config_filename: &str) -> CuResult<CuConfig>
Expand description

Read a copper configuration from a file.

\ No newline at end of file diff --git a/cu29/config/index.html b/cu29/config/index.html index 27ced9889..7d4add406 100644 --- a/cu29/config/index.html +++ b/cu29/config/index.html @@ -1,4 +1,4 @@ -cu29::config - Rust

Module cu29::config

source ·
Expand description

This module defines the configuration of the copper runtime. +cu29::config - Rust

cu29

Module config

source
Expand description

This module defines the configuration of the copper runtime. The configuration is a directed graph where nodes are tasks and edges are connections between tasks. The configuration is serialized in the RON format. The configuration is used to generate the runtime code at compile time.

diff --git a/cu29/config/struct.Cnx.html b/cu29/config/struct.Cnx.html index aeae56ce6..12343fc36 100644 --- a/cu29/config/struct.Cnx.html +++ b/cu29/config/struct.Cnx.html @@ -1,4 +1,4 @@ -Cnx in cu29::config - Rust

Struct cu29::config::Cnx

source ·
pub struct Cnx {
+Cnx in cu29::config - Rust
cu29::config

Struct Cnx

source
pub struct Cnx {
     pub msg: String,
     pub batch: Option<u32>,
     pub store: Option<bool>,
diff --git a/cu29/config/struct.CuConfig.html b/cu29/config/struct.CuConfig.html
index a63f96e5c..71672e0fb 100644
--- a/cu29/config/struct.CuConfig.html
+++ b/cu29/config/struct.CuConfig.html
@@ -1,4 +1,4 @@
-CuConfig in cu29::config - Rust

Struct cu29::config::CuConfig

source ·
pub struct CuConfig {
+CuConfig in cu29::config - Rust
cu29::config

Struct CuConfig

source
pub struct CuConfig {
     pub graph: StableDiGraph<Node, Cnx, NodeId>,
 }
Expand description

CuConfig is the programmatic representation of the configuration graph. It is a directed graph where nodes are tasks and edges are connections between tasks.

diff --git a/cu29/config/struct.Node.html b/cu29/config/struct.Node.html index 34cf8799f..e4b1c6e18 100644 --- a/cu29/config/struct.Node.html +++ b/cu29/config/struct.Node.html @@ -1,4 +1,4 @@ -Node in cu29::config - Rust

Struct cu29::config::Node

source ·
pub struct Node { /* private fields */ }
Expand description

A node in the configuration graph. +Node in cu29::config - Rust

cu29::config

Struct Node

source
pub struct Node { /* private fields */ }
Expand description

A node in the configuration graph. A node represents a Task in the system Graph.

Implementations§

source§

impl Node

source

pub fn new(id: &str, ptype: &str) -> Self

source

pub fn get_id(&self) -> String

source

pub fn set_type(self, name: Option<String>) -> Self

source

pub fn get_type(&self) -> &str

source

pub fn get_instance_config(&self) -> Option<&NodeInstanceConfig>

source

pub fn get_param<T: From<Value>>(&self, key: &str) -> Option<T>

source

pub fn set_param<T: Into<Value>>(&mut self, key: &str, value: T)

Trait Implementations§

source§

impl Clone for Node

source§

fn clone(&self) -> Node

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 Node

source§

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

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

impl<'de> Deserialize<'de> for Node

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 Node

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where diff --git a/cu29/config/struct.NodeInstanceConfig.html b/cu29/config/struct.NodeInstanceConfig.html index f149b0c71..fa98252c6 100644 --- a/cu29/config/struct.NodeInstanceConfig.html +++ b/cu29/config/struct.NodeInstanceConfig.html @@ -1,4 +1,4 @@ -NodeInstanceConfig in cu29::config - Rust

Struct cu29::config::NodeInstanceConfig

source ·
pub struct NodeInstanceConfig(pub HashMap<String, Value>);
Expand description

This is the configuration of a task instance. +NodeInstanceConfig in cu29::config - Rust

cu29::config

Struct NodeInstanceConfig

source
pub struct NodeInstanceConfig(pub HashMap<String, Value>);
Expand description

This is the configuration of a task instance. It is a map of key-value pairs. It is given to the new method of the task implementation.

Tuple Fields§

§0: HashMap<String, Value>

Implementations§

source§

impl NodeInstanceConfig

source

pub fn new() -> Self

source

pub fn get<T: From<Value>>(&self, key: &str) -> Option<T>

source

pub fn set<T: Into<Value>>(&mut self, key: &str, value: T)

Trait Implementations§

source§

impl Clone for NodeInstanceConfig

source§

fn clone(&self) -> NodeInstanceConfig

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 NodeInstanceConfig

source§

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

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

impl Default for NodeInstanceConfig

source§

fn default() -> NodeInstanceConfig

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

impl<'de> Deserialize<'de> for NodeInstanceConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where diff --git a/cu29/config/struct.Value.html b/cu29/config/struct.Value.html index 36a4d34b1..b360bafaa 100644 --- a/cu29/config/struct.Value.html +++ b/cu29/config/struct.Value.html @@ -1,4 +1,4 @@ -Value in cu29::config - Rust

Struct cu29::config::Value

source ·
pub struct Value(/* private fields */);
Expand description

Wrapper around the ron::Value to allow for custom serialization.

+Value in cu29::config - Rust
cu29::config

Struct Value

source
pub struct Value(/* private fields */);
Expand description

Wrapper around the ron::Value to allow for custom serialization.

Trait Implementations§

source§

impl Clone for Value

source§

fn clone(&self) -> Value

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 Value

source§

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

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

impl<'de> Deserialize<'de> for Value

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 Value

source§

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

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

impl From<String> for Value

source§

fn from(value: String) -> Self

Converts to this type from the input type.
source§

impl From<Value> for String

source§

fn from(value: Value) -> Self

Converts to this type from the input type.
source§

impl From<Value> for f64

source§

fn from(value: Value) -> Self

Converts to this type from the input type.
source§

impl From<Value> for i32

source§

fn from(value: Value) -> Self

Converts to this type from the input type.
source§

impl From<Value> for u32

source§

fn from(value: Value) -> Self

Converts to this type from the input type.
source§

impl From<Value> for u8

source§

fn from(value: Value) -> Self

Converts to this type from the input type.
source§

impl From<f64> for Value

source§

fn from(value: f64) -> Self

Converts to this type from the input type.
source§

impl From<i32> for Value

source§

fn from(value: i32) -> Self

Converts to this type from the input type.
source§

impl From<u16> for Value

source§

fn from(value: u16) -> Self

Converts to this type from the input type.
source§

impl From<u32> for Value

source§

fn from(value: u32) -> Self

Converts to this type from the input type.
source§

impl From<u8> for Value

source§

fn from(value: u8) -> Self

Converts to this type from the input type.
source§

impl Serialize for Value

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 Freeze for Value

§

impl RefUnwindSafe for Value

§

impl Send for Value

§

impl Sync for Value

§

impl Unpin for Value

§

impl UnwindSafe for Value

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/cu29/config/type.NodeId.html b/cu29/config/type.NodeId.html index 21c179be7..d6f7ddcde 100644 --- a/cu29/config/type.NodeId.html +++ b/cu29/config/type.NodeId.html @@ -1,3 +1,3 @@ -NodeId in cu29::config - Rust

Type Alias cu29::config::NodeId

source ·
pub type NodeId = u32;
Expand description

NodeId is the unique identifier of a node in the configuration graph for petgraph +NodeId in cu29::config - Rust

cu29::config

Type Alias NodeId

source
pub type NodeId = u32;
Expand description

NodeId is the unique identifier of a node in the configuration graph for petgraph and the code generation.

\ No newline at end of file diff --git a/cu29/copperlist/enum.CopperListState.html b/cu29/copperlist/enum.CopperListState.html index db0ef7c6f..b8c863004 100644 --- a/cu29/copperlist/enum.CopperListState.html +++ b/cu29/copperlist/enum.CopperListState.html @@ -1,4 +1,4 @@ -CopperListState in cu29::copperlist - Rust

Enum cu29::copperlist::CopperListState

source ·
pub enum CopperListState {
+CopperListState in cu29::copperlist - Rust
cu29::copperlist

Enum CopperListState

source
pub enum CopperListState {
     Free,
     Initialized,
     Processing,
diff --git a/cu29/copperlist/index.html b/cu29/copperlist/index.html
index f1f5bdbf7..9ff0446a0 100644
--- a/cu29/copperlist/index.html
+++ b/cu29/copperlist/index.html
@@ -1,4 +1,4 @@
-cu29::copperlist - Rust

Module cu29::copperlist

source ·
Expand description

CopperList is the main data structure used by Copper to communicate between tasks. +cu29::copperlist - Rust

cu29

Module copperlist

source
Expand description

CopperList is the main data structure used by Copper to communicate between tasks. It is a queue that can be used to store preallocated messages between tasks in memory order.

Structs§

  • Not implemented yet. This mask will be used to for example filter out necessary regions of a copper list between remote systems.
  • This structure maintains the entire memory needed by Copper for one loop for the inter tasks communication within a process. diff --git a/cu29/copperlist/struct.CopperLiskMask.html b/cu29/copperlist/struct.CopperLiskMask.html index 7334694ea..89b092afb 100644 --- a/cu29/copperlist/struct.CopperLiskMask.html +++ b/cu29/copperlist/struct.CopperLiskMask.html @@ -1,4 +1,4 @@ -CopperLiskMask in cu29::copperlist - Rust

    Struct cu29::copperlist::CopperLiskMask

    source ·
    pub struct CopperLiskMask { /* private fields */ }
    Expand description

    Not implemented yet. +CopperLiskMask in cu29::copperlist - Rust

    cu29::copperlist

    Struct CopperLiskMask

    source
    pub struct CopperLiskMask { /* private fields */ }
    Expand description

    Not implemented yet. This mask will be used to for example filter out necessary regions of a copper list between remote systems.

    Trait Implementations§

    source§

    impl<'__de> BorrowDecode<'__de> for CopperLiskMask

    source§

    fn borrow_decode<__D: BorrowDecoder<'__de>>( decoder: &mut __D, diff --git a/cu29/copperlist/struct.CopperList.html b/cu29/copperlist/struct.CopperList.html index 3414ffebf..f6b23c5f7 100644 --- a/cu29/copperlist/struct.CopperList.html +++ b/cu29/copperlist/struct.CopperList.html @@ -1,4 +1,4 @@ -CopperList in cu29::copperlist - Rust

    Struct cu29::copperlist::CopperList

    source ·
    pub struct CopperList<P: CopperListPayload> {
    +CopperList in cu29::copperlist - Rust
    cu29::copperlist

    Struct CopperList

    source
    pub struct CopperList<P: CopperListPayload> {
         pub id: u32,
         pub payload: P,
         /* private fields */
    diff --git a/cu29/copperlist/struct.CuListsManager.html b/cu29/copperlist/struct.CuListsManager.html
    index 897f11a86..40d7e88a7 100644
    --- a/cu29/copperlist/struct.CuListsManager.html
    +++ b/cu29/copperlist/struct.CuListsManager.html
    @@ -1,4 +1,4 @@
    -CuListsManager in cu29::copperlist - Rust

    Struct cu29::copperlist::CuListsManager

    source ·
    pub struct CuListsManager<P: CopperListPayload, const N: usize> { /* private fields */ }
    Expand description

    This structure maintains the entire memory needed by Copper for one loop for the inter tasks communication within a process. +CuListsManager in cu29::copperlist - Rust

    cu29::copperlist

    Struct CuListsManager

    source
    pub struct CuListsManager<P: CopperListPayload, const N: usize> { /* private fields */ }
    Expand description

    This structure maintains the entire memory needed by Copper for one loop for the inter tasks communication within a process. P or Payload is typically a Tuple of various types of messages that are exchanged between tasks. N is the maximum number of in flight Copper List the runtime can support.

    Implementations§

    source§

    impl<P: CopperListPayload, const N: usize> CuListsManager<P, N>

    source

    pub fn new() -> Self

    source

    pub fn len(&self) -> usize

    Returns the current number of elements in the queue.

    diff --git a/cu29/copperlist/type.AscIter.html b/cu29/copperlist/type.AscIter.html index 069695f66..e656789b9 100644 --- a/cu29/copperlist/type.AscIter.html +++ b/cu29/copperlist/type.AscIter.html @@ -1 +1 @@ -AscIter in cu29::copperlist - Rust

    Type Alias cu29::copperlist::AscIter

    source ·
    pub type AscIter<'a, T> = Chain<Iter<'a, T>, Iter<'a, T>>;

    Aliased Type§

    struct AscIter<'a, T> { /* private fields */ }
    \ No newline at end of file +AscIter in cu29::copperlist - Rust
    cu29::copperlist

    Type Alias AscIter

    source
    pub type AscIter<'a, T> = Chain<Iter<'a, T>, Iter<'a, T>>;

    Aliased Type§

    struct AscIter<'a, T> { /* private fields */ }
    \ No newline at end of file diff --git a/cu29/copperlist/type.AscIterMut.html b/cu29/copperlist/type.AscIterMut.html index 293507037..14c9f3982 100644 --- a/cu29/copperlist/type.AscIterMut.html +++ b/cu29/copperlist/type.AscIterMut.html @@ -1 +1 @@ -AscIterMut in cu29::copperlist - Rust

    Type Alias cu29::copperlist::AscIterMut

    source ·
    pub type AscIterMut<'a, T> = Chain<IterMut<'a, T>, IterMut<'a, T>>;

    Aliased Type§

    struct AscIterMut<'a, T> { /* private fields */ }
    \ No newline at end of file +AscIterMut in cu29::copperlist - Rust
    cu29::copperlist

    Type Alias AscIterMut

    source
    pub type AscIterMut<'a, T> = Chain<IterMut<'a, T>, IterMut<'a, T>>;

    Aliased Type§

    struct AscIterMut<'a, T> { /* private fields */ }
    \ No newline at end of file diff --git a/cu29/copperlist/type.Iter.html b/cu29/copperlist/type.Iter.html index ac236147e..4d6abeab6 100644 --- a/cu29/copperlist/type.Iter.html +++ b/cu29/copperlist/type.Iter.html @@ -1 +1 @@ -Iter in cu29::copperlist - Rust

    Type Alias cu29::copperlist::Iter

    source ·
    pub type Iter<'a, T> = Chain<Rev<Iter<'a, T>>, Rev<Iter<'a, T>>>;

    Aliased Type§

    struct Iter<'a, T> { /* private fields */ }
    \ No newline at end of file +Iter in cu29::copperlist - Rust
    cu29::copperlist

    Type Alias Iter

    source
    pub type Iter<'a, T> = Chain<Rev<Iter<'a, T>>, Rev<Iter<'a, T>>>;

    Aliased Type§

    struct Iter<'a, T> { /* private fields */ }
    \ No newline at end of file diff --git a/cu29/copperlist/type.IterMut.html b/cu29/copperlist/type.IterMut.html index 1965fed04..b745bbcd3 100644 --- a/cu29/copperlist/type.IterMut.html +++ b/cu29/copperlist/type.IterMut.html @@ -1 +1 @@ -IterMut in cu29::copperlist - Rust

    Type Alias cu29::copperlist::IterMut

    source ·
    pub type IterMut<'a, T> = Chain<Rev<IterMut<'a, T>>, Rev<IterMut<'a, T>>>;

    Aliased Type§

    struct IterMut<'a, T> { /* private fields */ }
    \ No newline at end of file +IterMut in cu29::copperlist - Rust
    cu29::copperlist

    Type Alias IterMut

    source
    pub type IterMut<'a, T> = Chain<Rev<IterMut<'a, T>>, Rev<IterMut<'a, T>>>;

    Aliased Type§

    struct IterMut<'a, T> { /* private fields */ }
    \ No newline at end of file diff --git a/cu29/curuntime/enum.CuExecutionUnit.html b/cu29/curuntime/enum.CuExecutionUnit.html index 70341efd7..a26ad6d8b 100644 --- a/cu29/curuntime/enum.CuExecutionUnit.html +++ b/cu29/curuntime/enum.CuExecutionUnit.html @@ -1,4 +1,4 @@ -CuExecutionUnit in cu29::curuntime - Rust

    Enum cu29::curuntime::CuExecutionUnit

    source ·
    pub enum CuExecutionUnit {
    +CuExecutionUnit in cu29::curuntime - Rust
    cu29::curuntime

    Enum CuExecutionUnit

    source
    pub enum CuExecutionUnit {
         Step(CuExecutionStep),
         Loop(CuExecutionLoop),
     }
    Expand description

    This structure represents a step in the execution plan.

    diff --git a/cu29/curuntime/enum.CuTaskType.html b/cu29/curuntime/enum.CuTaskType.html index bc04cb447..63fd72696 100644 --- a/cu29/curuntime/enum.CuTaskType.html +++ b/cu29/curuntime/enum.CuTaskType.html @@ -1,4 +1,4 @@ -CuTaskType in cu29::curuntime - Rust

    Enum cu29::curuntime::CuTaskType

    source ·
    pub enum CuTaskType {
    +CuTaskType in cu29::curuntime - Rust
    cu29::curuntime

    Enum CuTaskType

    source
    pub enum CuTaskType {
         Source,
         Regular,
         Sink,
    diff --git a/cu29/curuntime/fn.compute_runtime_plan.html b/cu29/curuntime/fn.compute_runtime_plan.html
    index 145e44c09..e7569b623 100644
    --- a/cu29/curuntime/fn.compute_runtime_plan.html
    +++ b/cu29/curuntime/fn.compute_runtime_plan.html
    @@ -1,3 +1,3 @@
    -compute_runtime_plan in cu29::curuntime - Rust

    Function cu29::curuntime::compute_runtime_plan

    source ·
    pub fn compute_runtime_plan(config: &CuConfig) -> CuResult<CuExecutionLoop>
    Expand description

    This is the main heuristics to compute an execution plan at compilation time. +compute_runtime_plan in cu29::curuntime - Rust

    cu29::curuntime

    Function compute_runtime_plan

    source
    pub fn compute_runtime_plan(config: &CuConfig) -> CuResult<CuExecutionLoop>
    Expand description

    This is the main heuristics to compute an execution plan at compilation time. TODO: Make that heuristic plugable.

    \ No newline at end of file diff --git a/cu29/curuntime/index.html b/cu29/curuntime/index.html index 47f6dd64d..520d2d34f 100644 --- a/cu29/curuntime/index.html +++ b/cu29/curuntime/index.html @@ -1,4 +1,4 @@ -cu29::curuntime - Rust

    Module cu29::curuntime

    source ·
    Expand description

    CuRuntime is the heart of what copper is running on the robot. +cu29::curuntime - Rust

    cu29

    Module curuntime

    source
    Expand description

    CuRuntime is the heart of what copper is running on the robot. It is exposed to the user via the copper_runtime macro injecting it as a field in their application struct.

    Structs§

    • This structure represents a loop in the execution plan. It is used to represent a sequence of Execution units (loop or steps) that are executed diff --git a/cu29/curuntime/struct.CuExecutionLoop.html b/cu29/curuntime/struct.CuExecutionLoop.html index 26ad7a32d..db0fa7b51 100644 --- a/cu29/curuntime/struct.CuExecutionLoop.html +++ b/cu29/curuntime/struct.CuExecutionLoop.html @@ -1,4 +1,4 @@ -CuExecutionLoop in cu29::curuntime - Rust

      Struct cu29::curuntime::CuExecutionLoop

      source ·
      pub struct CuExecutionLoop {
      +CuExecutionLoop in cu29::curuntime - Rust
      cu29::curuntime

      Struct CuExecutionLoop

      source
      pub struct CuExecutionLoop {
           pub steps: Vec<CuExecutionUnit>,
           pub loop_count: Option<u32>,
       }
      Expand description

      This structure represents a loop in the execution plan. diff --git a/cu29/curuntime/struct.CuExecutionStep.html b/cu29/curuntime/struct.CuExecutionStep.html index e54de068d..2ba160910 100644 --- a/cu29/curuntime/struct.CuExecutionStep.html +++ b/cu29/curuntime/struct.CuExecutionStep.html @@ -1,4 +1,4 @@ -CuExecutionStep in cu29::curuntime - Rust

      Struct cu29::curuntime::CuExecutionStep

      source ·
      pub struct CuExecutionStep {
      +CuExecutionStep in cu29::curuntime - Rust
      cu29::curuntime

      Struct CuExecutionStep

      source
      pub struct CuExecutionStep {
           pub node_id: NodeId,
           pub node: Node,
           pub task_type: CuTaskType,
      diff --git a/cu29/curuntime/struct.CuRuntime.html b/cu29/curuntime/struct.CuRuntime.html
      index 8a6a56403..6afaaa92e 100644
      --- a/cu29/curuntime/struct.CuRuntime.html
      +++ b/cu29/curuntime/struct.CuRuntime.html
      @@ -1,4 +1,4 @@
      -CuRuntime in cu29::curuntime - Rust

      Struct cu29::curuntime::CuRuntime

      source ·
      pub struct CuRuntime<CT, P: CopperListPayload, const NBCL: usize> {
      +CuRuntime in cu29::curuntime - Rust
      cu29::curuntime

      Struct CuRuntime

      source
      pub struct CuRuntime<CT, P: CopperListPayload, const NBCL: usize> {
           pub task_instances: CT,
           pub copper_lists_manager: CuListsManager<P, NBCL>,
           pub clock: RobotClock,
      diff --git a/cu29/cutask/index.html b/cu29/cutask/index.html
      index e3ec8ee28..5b52a38e0 100644
      --- a/cu29/cutask/index.html
      +++ b/cu29/cutask/index.html
      @@ -1,4 +1,4 @@
      -cu29::cutask - Rust

      Module cu29::cutask

      source ·
      Expand description

      This module contains all the main definition of the traits you need to implement +cu29::cutask - Rust

      cu29

      Module cutask

      source
      Expand description

      This module contains all the main definition of the traits you need to implement or interact with to create a Copper task.

      Structs§

      • CuMsg is the envelope holding the msg payload and the metadata between tasks.
      • CuMsgMetadata is a structure that contains metadata common to all CuMsgs.

      Traits§

      • A Sink Task is a task that only consumes messages. For example drivers for actuators are Sink Tasks.
      • A Src Task is a task that only produces messages. For example drivers for sensors are Src Tasks. They are in push mode from the runtime. diff --git a/cu29/cutask/struct.CuMsg.html b/cu29/cutask/struct.CuMsg.html index 48e202fcb..4517a31b3 100644 --- a/cu29/cutask/struct.CuMsg.html +++ b/cu29/cutask/struct.CuMsg.html @@ -1,4 +1,4 @@ -CuMsg in cu29::cutask - Rust

        Struct cu29::cutask::CuMsg

        source ·
        pub struct CuMsg<T>
        where +CuMsg in cu29::cutask - Rust
        cu29::cutask

        Struct CuMsg

        source
        pub struct CuMsg<T>
        where T: CuMsgPayload,
        { pub metadata: CuMsgMetadata, /* private fields */ diff --git a/cu29/cutask/struct.CuMsgMetadata.html b/cu29/cutask/struct.CuMsgMetadata.html index 109588898..84e253755 100644 --- a/cu29/cutask/struct.CuMsgMetadata.html +++ b/cu29/cutask/struct.CuMsgMetadata.html @@ -1,4 +1,4 @@ -CuMsgMetadata in cu29::cutask - Rust

        Struct cu29::cutask::CuMsgMetadata

        source ·
        pub struct CuMsgMetadata {
        +CuMsgMetadata in cu29::cutask - Rust
        cu29::cutask

        Struct CuMsgMetadata

        source
        pub struct CuMsgMetadata {
             pub before_process: OptionCuTime,
             pub after_process: OptionCuTime,
             pub tov: OptionCuTime,
        diff --git a/cu29/cutask/trait.CuMsgPack.html b/cu29/cutask/trait.CuMsgPack.html
        index e3c3c79ba..1980b65c0 100644
        --- a/cu29/cutask/trait.CuMsgPack.html
        +++ b/cu29/cutask/trait.CuMsgPack.html
        @@ -1 +1 @@
        -CuMsgPack in cu29::cutask - Rust

        Trait cu29::cutask::CuMsgPack

        source ·
        pub trait CuMsgPack<'cl> { }

        Implementations on Foreign Types§

        source§

        impl<'cl> CuMsgPack<'cl> for ()

        source§

        impl<'cl, T1: CuMsgPayload + 'cl, T2: CuMsgPayload + 'cl> CuMsgPack<'cl> for (&'cl CuMsg<T1>, &'cl CuMsg<T2>)

        source§

        impl<'cl, T1: CuMsgPayload + 'cl, T2: CuMsgPayload + 'cl, T3: CuMsgPayload + 'cl> CuMsgPack<'cl> for (&'cl CuMsg<T1>, &'cl CuMsg<T2>, &'cl CuMsg<T3>)

        source§

        impl<'cl, T1: CuMsgPayload + 'cl, T2: CuMsgPayload + 'cl, T3: CuMsgPayload + 'cl, T4: CuMsgPayload + 'cl> CuMsgPack<'cl> for (&'cl CuMsg<T1>, &'cl CuMsg<T2>, &'cl CuMsg<T3>, &'cl CuMsg<T4>)

        source§

        impl<'cl, T1: CuMsgPayload + 'cl, T2: CuMsgPayload + 'cl, T3: CuMsgPayload + 'cl, T4: CuMsgPayload + 'cl, T5: CuMsgPayload + 'cl> CuMsgPack<'cl> for (&'cl CuMsg<T1>, &'cl CuMsg<T2>, &'cl CuMsg<T3>, &'cl CuMsg<T4>, &'cl CuMsg<T5>)

        source§

        impl<'cl, T: CuMsgPayload> CuMsgPack<'cl> for (&'cl CuMsg<T>,)

        source§

        impl<'cl, T: CuMsgPayload> CuMsgPack<'cl> for (&'cl mut CuMsg<T>,)

        Implementors§

        source§

        impl<'cl, T: CuMsgPayload> CuMsgPack<'cl> for &'cl CuMsg<T>

        source§

        impl<'cl, T: CuMsgPayload> CuMsgPack<'cl> for &'cl mut CuMsg<T>

        \ No newline at end of file +CuMsgPack in cu29::cutask - Rust
        cu29::cutask

        Trait CuMsgPack

        source
        pub trait CuMsgPack<'cl> { }

        Implementations on Foreign Types§

        source§

        impl<'cl> CuMsgPack<'cl> for ()

        source§

        impl<'cl, T1: CuMsgPayload + 'cl, T2: CuMsgPayload + 'cl> CuMsgPack<'cl> for (&'cl CuMsg<T1>, &'cl CuMsg<T2>)

        source§

        impl<'cl, T1: CuMsgPayload + 'cl, T2: CuMsgPayload + 'cl, T3: CuMsgPayload + 'cl> CuMsgPack<'cl> for (&'cl CuMsg<T1>, &'cl CuMsg<T2>, &'cl CuMsg<T3>)

        source§

        impl<'cl, T1: CuMsgPayload + 'cl, T2: CuMsgPayload + 'cl, T3: CuMsgPayload + 'cl, T4: CuMsgPayload + 'cl> CuMsgPack<'cl> for (&'cl CuMsg<T1>, &'cl CuMsg<T2>, &'cl CuMsg<T3>, &'cl CuMsg<T4>)

        source§

        impl<'cl, T1: CuMsgPayload + 'cl, T2: CuMsgPayload + 'cl, T3: CuMsgPayload + 'cl, T4: CuMsgPayload + 'cl, T5: CuMsgPayload + 'cl> CuMsgPack<'cl> for (&'cl CuMsg<T1>, &'cl CuMsg<T2>, &'cl CuMsg<T3>, &'cl CuMsg<T4>, &'cl CuMsg<T5>)

        source§

        impl<'cl, T: CuMsgPayload> CuMsgPack<'cl> for (&'cl CuMsg<T>,)

        source§

        impl<'cl, T: CuMsgPayload> CuMsgPack<'cl> for (&'cl mut CuMsg<T>,)

        Implementors§

        source§

        impl<'cl, T: CuMsgPayload> CuMsgPack<'cl> for &'cl CuMsg<T>

        source§

        impl<'cl, T: CuMsgPayload> CuMsgPack<'cl> for &'cl mut CuMsg<T>

        \ No newline at end of file diff --git a/cu29/cutask/trait.CuMsgPayload.html b/cu29/cutask/trait.CuMsgPayload.html index f5b7b8b66..f9aa2916e 100644 --- a/cu29/cutask/trait.CuMsgPayload.html +++ b/cu29/cutask/trait.CuMsgPayload.html @@ -1,4 +1,4 @@ -CuMsgPayload in cu29::cutask - Rust

        Trait cu29::cutask::CuMsgPayload

        source ·
        pub trait CuMsgPayload:
        +CuMsgPayload in cu29::cutask - Rust
        cu29::cutask

        Trait CuMsgPayload

        source
        pub trait CuMsgPayload:
             Default
             + Encode
             + Decode
        diff --git a/cu29/cutask/trait.CuSinkTask.html b/cu29/cutask/trait.CuSinkTask.html
        index 9066b40f2..ef6043ea4 100644
        --- a/cu29/cutask/trait.CuSinkTask.html
        +++ b/cu29/cutask/trait.CuSinkTask.html
        @@ -1,4 +1,4 @@
        -CuSinkTask in cu29::cutask - Rust

        Trait cu29::cutask::CuSinkTask

        source ·
        pub trait CuSinkTask<'cl>: CuTaskLifecycle {
        +CuSinkTask in cu29::cutask - Rust
        cu29::cutask

        Trait CuSinkTask

        source
        pub trait CuSinkTask<'cl>: CuTaskLifecycle {
             type Input: CuMsgPack<'cl>;
         
             // Required method
        diff --git a/cu29/cutask/trait.CuSrcTask.html b/cu29/cutask/trait.CuSrcTask.html
        index 2b919a73c..75a0ce3cc 100644
        --- a/cu29/cutask/trait.CuSrcTask.html
        +++ b/cu29/cutask/trait.CuSrcTask.html
        @@ -1,4 +1,4 @@
        -CuSrcTask in cu29::cutask - Rust

        Trait cu29::cutask::CuSrcTask

        source ·
        pub trait CuSrcTask<'cl>: CuTaskLifecycle {
        +CuSrcTask in cu29::cutask - Rust
        cu29::cutask

        Trait CuSrcTask

        source
        pub trait CuSrcTask<'cl>: CuTaskLifecycle {
             type Output: CuMsgPack<'cl>;
         
             // Required method
        diff --git a/cu29/cutask/trait.CuTask.html b/cu29/cutask/trait.CuTask.html
        index a079ca690..f9dd1b878 100644
        --- a/cu29/cutask/trait.CuTask.html
        +++ b/cu29/cutask/trait.CuTask.html
        @@ -1,4 +1,4 @@
        -CuTask in cu29::cutask - Rust

        Trait cu29::cutask::CuTask

        source ·
        pub trait CuTask<'cl>: CuTaskLifecycle {
        +CuTask in cu29::cutask - Rust
        cu29::cutask

        Trait CuTask

        source
        pub trait CuTask<'cl>: CuTaskLifecycle {
             type Input: CuMsgPack<'cl>;
             type Output: CuMsgPack<'cl>;
         
        diff --git a/cu29/cutask/trait.CuTaskLifecycle.html b/cu29/cutask/trait.CuTaskLifecycle.html
        index 764e7d3f8..b583fb79c 100644
        --- a/cu29/cutask/trait.CuTaskLifecycle.html
        +++ b/cu29/cutask/trait.CuTaskLifecycle.html
        @@ -1,4 +1,4 @@
        -CuTaskLifecycle in cu29::cutask - Rust

        Trait cu29::cutask::CuTaskLifecycle

        source ·
        pub trait CuTaskLifecycle: Freezable {
        +CuTaskLifecycle in cu29::cutask - Rust
        cu29::cutask

        Trait CuTaskLifecycle

        source
        pub trait CuTaskLifecycle: Freezable {
             // Required method
             fn new(config: Option<&NodeInstanceConfig>) -> CuResult<Self>
                where Self: Sized;
        diff --git a/cu29/cutask/trait.Freezable.html b/cu29/cutask/trait.Freezable.html
        index ffc236121..26af60349 100644
        --- a/cu29/cutask/trait.Freezable.html
        +++ b/cu29/cutask/trait.Freezable.html
        @@ -1,4 +1,4 @@
        -Freezable in cu29::cutask - Rust

        Trait cu29::cutask::Freezable

        source ·
        pub trait Freezable {
        +Freezable in cu29::cutask - Rust
        cu29::cutask

        Trait Freezable

        source
        pub trait Freezable {
             // Provided methods
             fn freeze<E: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError> { ... }
             fn thaw<D: Decoder>(&mut self, decoder: &mut D) -> Result<(), DecodeError> { ... }
        diff --git a/cu29/enum.UnifiedLogType.html b/cu29/enum.UnifiedLogType.html
        index 4a3b37a8f..731b69c6d 100644
        --- a/cu29/enum.UnifiedLogType.html
        +++ b/cu29/enum.UnifiedLogType.html
        @@ -1,4 +1,4 @@
        -UnifiedLogType in cu29 - Rust

        Enum cu29::UnifiedLogType

        pub enum UnifiedLogType {
        +UnifiedLogType in cu29 - Rust
        cu29

        Enum UnifiedLogType

        pub enum UnifiedLogType {
             Empty,
             StructuredLogLine,
             CopperList,
        diff --git a/cu29/index.html b/cu29/index.html
        index 9ec90aa05..f2d82d3a4 100644
        --- a/cu29/index.html
        +++ b/cu29/index.html
        @@ -1,4 +1,4 @@
        -cu29 - Rust

        Crate cu29

        source ·
        Expand description
        logo +cu29 - Rust

        Crate cu29

        source
        Expand description
        logo

        §

        §Copper

        copper GitHub last commit diff --git a/cu29/macro.input_msg.html b/cu29/macro.input_msg.html index c2f78df93..6ef97e2b3 100644 --- a/cu29/macro.input_msg.html +++ b/cu29/macro.input_msg.html @@ -1,4 +1,4 @@ -input_msg in cu29 - Rust

        Macro cu29::input_msg

        source ·
        macro_rules! input_msg {
        +input_msg in cu29 - Rust
        cu29

        Macro input_msg

        source
        macro_rules! input_msg {
             ($lifetime:lifetime, $ty:ty) => { ... };
             ($lifetime:lifetime, $($ty:ty),*) => { ... };
         }
        \ No newline at end of file diff --git a/cu29/macro.output_msg.html b/cu29/macro.output_msg.html index a3f68f165..1fa0ca82f 100644 --- a/cu29/macro.output_msg.html +++ b/cu29/macro.output_msg.html @@ -1,3 +1,3 @@ -output_msg in cu29 - Rust

        Macro cu29::output_msg

        source ·
        macro_rules! output_msg {
        +output_msg in cu29 - Rust
        cu29

        Macro output_msg

        source
        macro_rules! output_msg {
             ($lifetime:lifetime, $ty:ty) => { ... };
         }
        \ No newline at end of file diff --git a/cu29/monitoring/index.html b/cu29/monitoring/index.html index 7734c46c4..6fab55cc1 100644 --- a/cu29/monitoring/index.html +++ b/cu29/monitoring/index.html @@ -1,2 +1,2 @@ -cu29::monitoring - Rust

        Module cu29::monitoring

        source ·
        Expand description

        Some basic internal monitoring tooling Copper uses to monitor itself and the tasks it is running.

        +cu29::monitoring - Rust
        cu29

        Module monitoring

        source
        Expand description

        Some basic internal monitoring tooling Copper uses to monitor itself and the tasks it is running.

        Structs§

        • A simple allocator that counts the number of bytes allocated and deallocated.
        • A simple struct that counts the number of bytes allocated and deallocated in a scope.

        Statics§

        \ No newline at end of file diff --git a/cu29/monitoring/static.GLOBAL.html b/cu29/monitoring/static.GLOBAL.html index b1a6652ae..f2ce2486a 100644 --- a/cu29/monitoring/static.GLOBAL.html +++ b/cu29/monitoring/static.GLOBAL.html @@ -1 +1 @@ -GLOBAL in cu29::monitoring - Rust

        Static cu29::monitoring::GLOBAL

        source ·
        pub static GLOBAL: CountingAllocator
        \ No newline at end of file +GLOBAL in cu29::monitoring - Rust
        cu29::monitoring

        Static GLOBAL

        source
        pub static GLOBAL: CountingAllocator
        \ No newline at end of file diff --git a/cu29/monitoring/struct.CountingAllocator.html b/cu29/monitoring/struct.CountingAllocator.html index fb4678d7b..d2460f260 100644 --- a/cu29/monitoring/struct.CountingAllocator.html +++ b/cu29/monitoring/struct.CountingAllocator.html @@ -1,4 +1,4 @@ -CountingAllocator in cu29::monitoring - Rust

        Struct cu29::monitoring::CountingAllocator

        source ·
        pub struct CountingAllocator { /* private fields */ }
        Expand description

        A simple allocator that counts the number of bytes allocated and deallocated.

        +CountingAllocator in cu29::monitoring - Rust
        cu29::monitoring

        Struct CountingAllocator

        source
        pub struct CountingAllocator { /* private fields */ }
        Expand description

        A simple allocator that counts the number of bytes allocated and deallocated.

        Implementations§

        source§

        impl CountingAllocator

        source

        pub const fn new() -> Self

        source

        pub fn get_allocated(&self) -> usize

        source

        pub fn get_deallocated(&self) -> usize

        source

        pub fn reset(&self)

        Trait Implementations§

        source§

        impl GlobalAlloc for CountingAllocator

        source§

        unsafe fn alloc(&self, layout: Layout) -> *mut u8

        Allocates memory as described by the given layout. Read more
        source§

        unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout)

        Deallocates the block of memory at the given ptr pointer with the given layout. Read more
        1.28.0 · source§

        unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8

        Behaves like alloc, but also ensures that the contents are set to zero before being returned. Read more
        1.28.0 · source§

        unsafe fn realloc( &self, diff --git a/cu29/monitoring/struct.ScopedAllocCounter.html b/cu29/monitoring/struct.ScopedAllocCounter.html index 2e717a3dd..7ecdaa318 100644 --- a/cu29/monitoring/struct.ScopedAllocCounter.html +++ b/cu29/monitoring/struct.ScopedAllocCounter.html @@ -1,4 +1,4 @@ -ScopedAllocCounter in cu29::monitoring - Rust

        Struct cu29::monitoring::ScopedAllocCounter

        source ·
        pub struct ScopedAllocCounter { /* private fields */ }
        Expand description

        A simple struct that counts the number of bytes allocated and deallocated in a scope.

        +ScopedAllocCounter in cu29::monitoring - Rust
        cu29::monitoring

        Struct ScopedAllocCounter

        source
        pub struct ScopedAllocCounter { /* private fields */ }
        Expand description

        A simple struct that counts the number of bytes allocated and deallocated in a scope.

        Implementations§

        Trait Implementations§

        source§

        impl Drop for ScopedAllocCounter

        Build a difference between the number of bytes allocated and deallocated in the scope at drop time.

        source§

        fn drop(&mut self)

        Executes the destructor for this type. Read more

        Auto Trait Implementations§

        Blanket Implementations§

        source§

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

        source§

        fn type_id(&self) -> TypeId

        Gets the TypeId of self. Read more
        source§

        impl<T> Borrow<T> for T
        where diff --git a/cu29/struct.CuError.html b/cu29/struct.CuError.html index d76a0d5c3..1a65605c1 100644 --- a/cu29/struct.CuError.html +++ b/cu29/struct.CuError.html @@ -1,4 +1,4 @@ -CuError in cu29 - Rust

        Struct cu29::CuError

        pub struct CuError { /* private fields */ }
        Expand description

        Common copper Error type.

        +CuError in cu29 - Rust
        cu29

        Struct CuError

        pub struct CuError { /* private fields */ }
        Expand description

        Common copper Error type.

        Implementations§

        §

        impl CuError

        pub fn new_with_cause(message: &str, cause: impl Error) -> CuError

        pub fn add_cause(self, context: &str) -> CuError

        Trait Implementations§

        §

        impl Debug for CuError

        §

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

        Formats the value using the given formatter. Read more
        §

        impl<'de> Deserialize<'de> for CuError

        §

        fn deserialize<__D>( __deserializer: __D, ) -> Result<CuError, <__D as Deserializer<'de>>::Error>
        where diff --git a/cu29/trait.CopperListPayload.html b/cu29/trait.CopperListPayload.html index 8c7c2d3fb..8dd63cfe2 100644 --- a/cu29/trait.CopperListPayload.html +++ b/cu29/trait.CopperListPayload.html @@ -1,4 +1,4 @@ -CopperListPayload in cu29 - Rust

        Trait cu29::CopperListPayload

        pub trait CopperListPayload:
        +CopperListPayload in cu29 - Rust
        cu29

        Trait CopperListPayload

        pub trait CopperListPayload:
             Sized
             + Encode
             + Decode
        diff --git a/cu29/trait.WriteStream.html b/cu29/trait.WriteStream.html
        index fdb358807..814994e7b 100644
        --- a/cu29/trait.WriteStream.html
        +++ b/cu29/trait.WriteStream.html
        @@ -1,4 +1,4 @@
        -WriteStream in cu29 - Rust

        Trait cu29::WriteStream

        pub trait WriteStream<E>:
        +WriteStream in cu29 - Rust
        cu29

        Trait WriteStream

        pub trait WriteStream<E>:
             Sync
             + Send
             + Debug
        where diff --git a/cu29/type.CuResult.html b/cu29/type.CuResult.html index 4553cfaf3..12780e100 100644 --- a/cu29/type.CuResult.html +++ b/cu29/type.CuResult.html @@ -1,4 +1,4 @@ -CuResult in cu29 - Rust

        Type Alias cu29::CuResult

        pub type CuResult<T> = Result<T, CuError>;

        Aliased Type§

        enum CuResult<T> {
        +CuResult in cu29 - Rust
        cu29

        Type Alias CuResult

        pub type CuResult<T> = Result<T, CuError>;

        Aliased Type§

        enum CuResult<T> {
             Ok(T),
             Err(CuError),
         }

        Variants§

        §1.0.0

        Ok(T)

        Contains the success value

        diff --git a/cu29_clock/all.html b/cu29_clock/all.html index 250c1323f..ec84eb604 100644 --- a/cu29_clock/all.html +++ b/cu29_clock/all.html @@ -1 +1 @@ -List of all items in this crate
        \ No newline at end of file +List of all items in this crate
        \ No newline at end of file diff --git a/cu29_clock/index.html b/cu29_clock/index.html index 2cfa3f64a..c9a03f104 100644 --- a/cu29_clock/index.html +++ b/cu29_clock/index.html @@ -1,4 +1,4 @@ -cu29_clock - Rust

        Crate cu29_clock

        source ·

        Structs§

        • For Robot times, the underlying type is a u64 representing nanoseconds. +cu29_clock - Rust

          Crate cu29_clock

          source

          Structs§

          • For Robot times, the underlying type is a u64 representing nanoseconds. It is always positive to simplify the reasoning on the user side.
          • A point-in-time wall-clock measurement.
          • Homebrewed Option<CuDuration> to avoid using 128bits just to represent an Option.
          • A running Robot clock. The clock is a monotonic clock that starts at an arbitrary reference time. It is clone resilient, ie a clone will be the same clock, even when mocked.
          • A mock clock that can be controlled by the user.

          Traits§

          Type Aliases§

          • A robot time is just a duration from a fixed point in time.
          \ No newline at end of file diff --git a/cu29_clock/struct.CuDuration.html b/cu29_clock/struct.CuDuration.html index 965ca6cb2..76c82af56 100644 --- a/cu29_clock/struct.CuDuration.html +++ b/cu29_clock/struct.CuDuration.html @@ -1,4 +1,4 @@ -CuDuration in cu29_clock - Rust

          Struct cu29_clock::CuDuration

          source ·
          pub struct CuDuration(pub u64);
          Expand description

          For Robot times, the underlying type is a u64 representing nanoseconds. +CuDuration in cu29_clock - Rust

          cu29_clock

          Struct CuDuration

          source
          pub struct CuDuration(pub u64);
          Expand description

          For Robot times, the underlying type is a u64 representing nanoseconds. It is always positive to simplify the reasoning on the user side.

          Tuple Fields§

          §0: u64

          Trait Implementations§

          source§

          impl Add for CuDuration

          source§

          type Output = CuDuration

          The resulting type after applying the + operator.
          source§

          fn add(self, rhs: Self) -> Self::Output

          Performs the + operation. Read more
          source§

          impl<'de> BorrowDecode<'de> for CuDuration

          source§

          fn borrow_decode<D: BorrowDecoder<'de>>( decoder: &mut D, diff --git a/cu29_clock/struct.Instant.html b/cu29_clock/struct.Instant.html index 3e950d6dd..a7e412d27 100644 --- a/cu29_clock/struct.Instant.html +++ b/cu29_clock/struct.Instant.html @@ -1,4 +1,4 @@ -Instant in cu29_clock - Rust

          Struct cu29_clock::Instant

          pub struct Instant(/* private fields */);
          Expand description

          A point-in-time wall-clock measurement.

          +Instant in cu29_clock - Rust
          cu29_clock

          Struct Instant

          pub struct Instant(/* private fields */);
          Expand description

          A point-in-time wall-clock measurement.

          Mimics most of the functionality of std::time::Instant but provides an additional method for using the “recent time” feature of quanta.

          §Monotonicity

          diff --git a/cu29_clock/struct.OptionCuTime.html b/cu29_clock/struct.OptionCuTime.html index d96a51af4..40dd7af1f 100644 --- a/cu29_clock/struct.OptionCuTime.html +++ b/cu29_clock/struct.OptionCuTime.html @@ -1,4 +1,4 @@ -OptionCuTime in cu29_clock - Rust

          Struct cu29_clock::OptionCuTime

          source ·
          pub struct OptionCuTime(/* private fields */);
          Expand description

          Homebrewed Option<CuDuration> to avoid using 128bits just to represent an Option.

          +OptionCuTime in cu29_clock - Rust
          cu29_clock

          Struct OptionCuTime

          source
          pub struct OptionCuTime(/* private fields */);
          Expand description

          Homebrewed Option<CuDuration> to avoid using 128bits just to represent an Option.

          Implementations§

          source§

          impl OptionCuTime

          source

          pub fn is_none(&self) -> bool

          source

          pub fn none() -> Self

          source

          pub fn unwrap(self) -> CuTime

          Trait Implementations§

          source§

          impl<'__de> BorrowDecode<'__de> for OptionCuTime

          source§

          fn borrow_decode<__D: BorrowDecoder<'__de>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

          Attempt to decode this type with the given BorrowDecode.
          source§

          impl Clone for OptionCuTime

          source§

          fn clone(&self) -> OptionCuTime

          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 OptionCuTime

          source§

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

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

          impl Decode for OptionCuTime

          source§

          fn decode<__D: Decoder>(decoder: &mut __D) -> Result<Self, DecodeError>

          Attempt to decode this type with the given Decode.
          source§

          impl Default for OptionCuTime

          source§

          fn default() -> Self

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

          impl Display for OptionCuTime

          source§

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

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

          impl Encode for OptionCuTime

          source§

          fn encode<__E: Encoder>(&self, encoder: &mut __E) -> Result<(), EncodeError>

          Encode a given type.
          source§

          impl From<Option<CuDuration>> for OptionCuTime

          source§

          fn from(duration: Option<CuTime>) -> Self

          Converts to this type from the input type.
          source§

          impl Into<Option<CuDuration>> for OptionCuTime

          source§

          fn into(self) -> Option<CuTime>

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

          impl Into<OptionCuTime> for CuTime

          source§

          fn into(self) -> OptionCuTime

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

          impl PartialEq for OptionCuTime

          source§

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

          Tests for self and other values to be equal, and is used by ==.
          1.0.0 · source§

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

          Tests for !=. The default implementation is almost always sufficient, diff --git a/cu29_clock/struct.RobotClock.html b/cu29_clock/struct.RobotClock.html index 8e3c66c54..a8cd41a05 100644 --- a/cu29_clock/struct.RobotClock.html +++ b/cu29_clock/struct.RobotClock.html @@ -1,4 +1,4 @@ -RobotClock in cu29_clock - Rust

          Struct cu29_clock::RobotClock

          source ·
          pub struct RobotClock { /* private fields */ }
          Expand description

          A running Robot clock. +RobotClock in cu29_clock - Rust

          cu29_clock

          Struct RobotClock

          source
          pub struct RobotClock { /* private fields */ }
          Expand description

          A running Robot clock. The clock is a monotonic clock that starts at an arbitrary reference time. It is clone resilient, ie a clone will be the same clock, even when mocked.

          Implementations§

          source§

          impl RobotClock

          source

          pub fn new() -> Self

          Creates a RobotClock using now as its reference time. diff --git a/cu29_clock/struct.RobotClockMock.html b/cu29_clock/struct.RobotClockMock.html index 9a56be3db..dad442a36 100644 --- a/cu29_clock/struct.RobotClockMock.html +++ b/cu29_clock/struct.RobotClockMock.html @@ -1,4 +1,4 @@ -RobotClockMock in cu29_clock - Rust

          Struct cu29_clock::RobotClockMock

          source ·
          pub struct RobotClockMock(/* private fields */);
          Expand description

          A mock clock that can be controlled by the user.

          +RobotClockMock in cu29_clock - Rust
          cu29_clock

          Struct RobotClockMock

          source
          pub struct RobotClockMock(/* private fields */);
          Expand description

          A mock clock that can be controlled by the user.

          Implementations§

          source§

          impl RobotClockMock

          source

          pub fn increment(&self, amount: Duration)

          source

          pub fn decrement(&self, amount: Duration)

          Decrements the time by the given amount. Be careful this brakes the monotonicity of the clock.

          source

          pub fn value(&self) -> u64

          Gets the current value of time.

          diff --git a/cu29_clock/trait.ClockProvider.html b/cu29_clock/trait.ClockProvider.html index 0aa1b185e..5b884e37c 100644 --- a/cu29_clock/trait.ClockProvider.html +++ b/cu29_clock/trait.ClockProvider.html @@ -1,4 +1,4 @@ -ClockProvider in cu29_clock - Rust

          Trait cu29_clock::ClockProvider

          source ·
          pub trait ClockProvider {
          +ClockProvider in cu29_clock - Rust
          cu29_clock

          Trait ClockProvider

          source
          pub trait ClockProvider {
               // Required method
               fn get_clock(&self) -> RobotClock;
           }
          Expand description

          A trait to provide a clock to the runtime.

          diff --git a/cu29_clock/type.CuTime.html b/cu29_clock/type.CuTime.html index a24a50068..66bb81042 100644 --- a/cu29_clock/type.CuTime.html +++ b/cu29_clock/type.CuTime.html @@ -1,2 +1,2 @@ -CuTime in cu29_clock - Rust

          Type Alias cu29_clock::CuTime

          source ·
          pub type CuTime = CuDuration;
          Expand description

          A robot time is just a duration from a fixed point in time.

          +CuTime in cu29_clock - Rust
          cu29_clock

          Type Alias CuTime

          source
          pub type CuTime = CuDuration;
          Expand description

          A robot time is just a duration from a fixed point in time.

          Aliased Type§

          struct CuTime(pub u64);

          Fields§

          §0: u64

          Trait Implementations§

          source§

          impl Into<OptionCuTime> for CuTime

          source§

          fn into(self) -> OptionCuTime

          Converts this type into the (usually inferred) input type.
          \ No newline at end of file diff --git a/cu29_derive/all.html b/cu29_derive/all.html index b029ef681..25a1df471 100644 --- a/cu29_derive/all.html +++ b/cu29_derive/all.html @@ -1 +1 @@ -List of all items in this crate

          List of all items

          Macros

          Attribute Macros

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

          List of all items

          Macros

          Attribute Macros

          \ No newline at end of file diff --git a/cu29_derive/attr.copper_runtime.html b/cu29_derive/attr.copper_runtime.html index 5c5af7499..8732d7186 100644 --- a/cu29_derive/attr.copper_runtime.html +++ b/cu29_derive/attr.copper_runtime.html @@ -1,3 +1,3 @@ -copper_runtime in cu29_derive - Rust

          Attribute Macro cu29_derive::copper_runtime

          source ·
          #[copper_runtime]
          Expand description

          Adds #[copper_runtime(config = “path”)] to your application struct to generate the runtime. +copper_runtime in cu29_derive - Rust

          cu29_derive

          Attribute Macro copper_runtime

          source
          #[copper_runtime]
          Expand description

          Adds #[copper_runtime(config = “path”)] to your application struct to generate the runtime. This will add a “runtime” field to your struct and implement the “new” and “run” methods.

          \ No newline at end of file diff --git a/cu29_derive/index.html b/cu29_derive/index.html index 05b70fcd3..259914b86 100644 --- a/cu29_derive/index.html +++ b/cu29_derive/index.html @@ -1,2 +1,2 @@ -cu29_derive - Rust

          Crate cu29_derive

          source ·

          Macros§

          Attribute Macros§

          • Adds #[copper_runtime(config = “path”)] to your application struct to generate the runtime. +cu29_derive - Rust

            Crate cu29_derive

            source

            Macros§

            Attribute Macros§

            • Adds #[copper_runtime(config = “path”)] to your application struct to generate the runtime. This will add a “runtime” field to your struct and implement the “new” and “run” methods.
            \ No newline at end of file diff --git a/cu29_derive/macro.gen_culist_payload.html b/cu29_derive/macro.gen_culist_payload.html index 63fbc0c0d..f70b43931 100644 --- a/cu29_derive/macro.gen_culist_payload.html +++ b/cu29_derive/macro.gen_culist_payload.html @@ -1 +1 @@ -gen_culist_payload in cu29_derive - Rust

            Macro cu29_derive::gen_culist_payload

            source ·
            gen_culist_payload!() { /* proc-macro */ }
            \ No newline at end of file +gen_culist_payload in cu29_derive - Rust
            cu29_derive

            Macro gen_culist_payload

            source
            gen_culist_payload!() { /* proc-macro */ }
            \ No newline at end of file diff --git a/cu29_export/all.html b/cu29_export/all.html index 59a53c6aa..2b78af3f9 100644 --- a/cu29_export/all.html +++ b/cu29_export/all.html @@ -1 +1 @@ -List of all items in this crate
            \ No newline at end of file +List of all items in this crate
            \ No newline at end of file diff --git a/cu29_export/enum.Command.html b/cu29_export/enum.Command.html index 88518d3e1..39c152fe6 100644 --- a/cu29_export/enum.Command.html +++ b/cu29_export/enum.Command.html @@ -1,4 +1,4 @@ -Command in cu29_export - Rust

            Enum cu29_export::Command

            source ·
            pub enum Command {
            +Command in cu29_export - Rust
            cu29_export

            Enum Command

            source
            pub enum Command {
                 ExtractLog {
                     log_index: PathBuf,
                 },
            diff --git a/cu29_export/enum.ExportFormat.html b/cu29_export/enum.ExportFormat.html
            index 5f0a12f98..e4206ece3 100644
            --- a/cu29_export/enum.ExportFormat.html
            +++ b/cu29_export/enum.ExportFormat.html
            @@ -1,4 +1,4 @@
            -ExportFormat in cu29_export - Rust

            Enum cu29_export::ExportFormat

            source ·
            pub enum ExportFormat {
            +ExportFormat in cu29_export - Rust
            cu29_export

            Enum ExportFormat

            source
            pub enum ExportFormat {
                 Json,
                 Csv,
             }

            Variants§

            §

            Json

            §

            Csv

            Trait Implementations§

            source§

            impl Clone for ExportFormat

            source§

            fn clone(&self) -> ExportFormat

            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 Display for ExportFormat

            source§

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

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

            impl Ord for ExportFormat

            source§

            fn cmp(&self, other: &ExportFormat) -> Ordering

            This method returns an Ordering between self and other. Read more
            1.21.0 · source§

            fn max(self, other: Self) -> Self
            where diff --git a/cu29_export/fn.copperlists_dump.html b/cu29_export/fn.copperlists_dump.html index e46969538..5ebab0f09 100644 --- a/cu29_export/fn.copperlists_dump.html +++ b/cu29_export/fn.copperlists_dump.html @@ -1,4 +1,4 @@ -copperlists_dump in cu29_export - Rust

            Function cu29_export::copperlists_dump

            source ·
            pub fn copperlists_dump<P: CopperListPayload>(
            +copperlists_dump in cu29_export - Rust
            cu29_export

            Function copperlists_dump

            source
            pub fn copperlists_dump<P: CopperListPayload>(
                 src: impl Read,
             ) -> impl Iterator<Item = CopperList<P>>
            Expand description

            Extracts the copper lists from a binary representation. P is the Payload determined by the configuration of the application.

            diff --git a/cu29_export/fn.run_cli.html b/cu29_export/fn.run_cli.html index 5f99c47fa..05c051d33 100644 --- a/cu29_export/fn.run_cli.html +++ b/cu29_export/fn.run_cli.html @@ -1,4 +1,4 @@ -run_cli in cu29_export - Rust

            Function cu29_export::run_cli

            source ·
            pub fn run_cli<P>() -> CuResult<()>
            where +run_cli in cu29_export - Rust
            cu29_export

            Function run_cli

            source
            pub fn run_cli<P>() -> CuResult<()>
            Expand description

            This is a generator for a main function to build a log extractor. It depends on the specific type of the CopperList payload that is determined at compile time from the configuration.

            \ No newline at end of file diff --git a/cu29_export/fn.textlog_dump.html b/cu29_export/fn.textlog_dump.html index 1a3feeed7..4bb2747f2 100644 --- a/cu29_export/fn.textlog_dump.html +++ b/cu29_export/fn.textlog_dump.html @@ -1,4 +1,4 @@ -textlog_dump in cu29_export - Rust

            Function cu29_export::textlog_dump

            source ·
            pub fn textlog_dump(src: impl Read, index: &Path) -> CuResult<()>
            Expand description

            Full dump of the copper structured log from its binary representation. +textlog_dump in cu29_export - Rust

            cu29_export

            Function textlog_dump

            source
            pub fn textlog_dump(src: impl Read, index: &Path) -> CuResult<()>
            Expand description

            Full dump of the copper structured log from its binary representation. This rebuilds a textual log. src: the source of the log data index: the path to the index file (containing the interned strings constructed at build time)

            diff --git a/cu29_export/index.html b/cu29_export/index.html index 49847474a..c86bf812d 100644 --- a/cu29_export/index.html +++ b/cu29_export/index.html @@ -1,4 +1,4 @@ -cu29_export - Rust

            Crate cu29_export

            source ·

            Structs§

            • This is a generator for a main function to build a log extractor.

            Enums§

            Functions§

            • Extracts the copper lists from a binary representation. +cu29_export - Rust

              Crate cu29_export

              source

              Structs§

              • This is a generator for a main function to build a log extractor.

              Enums§

              Functions§

              • Extracts the copper lists from a binary representation. P is the Payload determined by the configuration of the application.
              • This is a generator for a main function to build a log extractor. It depends on the specific type of the CopperList payload that is determined at compile time from the configuration.
              • Full dump of the copper structured log from its binary representation. This rebuilds a textual log. diff --git a/cu29_export/struct.LogReaderCli.html b/cu29_export/struct.LogReaderCli.html index 6dabc2ae7..c7cffcb42 100644 --- a/cu29_export/struct.LogReaderCli.html +++ b/cu29_export/struct.LogReaderCli.html @@ -1,4 +1,4 @@ -LogReaderCli in cu29_export - Rust

                Struct cu29_export::LogReaderCli

                source ·
                pub struct LogReaderCli {
                +LogReaderCli in cu29_export - Rust
                cu29_export

                Struct LogReaderCli

                source
                pub struct LogReaderCli {
                     pub unifiedlog_base: PathBuf,
                     pub command: Command,
                 }
                Expand description

                This is a generator for a main function to build a log extractor.

                diff --git a/cu29_helpers/all.html b/cu29_helpers/all.html index a7295cdc8..17a775307 100644 --- a/cu29_helpers/all.html +++ b/cu29_helpers/all.html @@ -1 +1 @@ -List of all items in this crate

                List of all items

                Structs

                Functions

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

                List of all items

                Structs

                Functions

                \ No newline at end of file diff --git a/cu29_helpers/fn.basic_copper_setup.html b/cu29_helpers/fn.basic_copper_setup.html index 4a257ceda..bd8e7c97b 100644 --- a/cu29_helpers/fn.basic_copper_setup.html +++ b/cu29_helpers/fn.basic_copper_setup.html @@ -1,4 +1,4 @@ -basic_copper_setup in cu29_helpers - Rust

                Function cu29_helpers::basic_copper_setup

                source ·
                pub fn basic_copper_setup(
                +basic_copper_setup in cu29_helpers - Rust
                cu29_helpers

                Function basic_copper_setup

                source
                pub fn basic_copper_setup(
                     unifiedlogger_output_base_name: &Path,
                     slab_size: Option<usize>,
                     _text_log: bool,
                diff --git a/cu29_helpers/index.html b/cu29_helpers/index.html
                index 2d6219f12..348e1595d 100644
                --- a/cu29_helpers/index.html
                +++ b/cu29_helpers/index.html
                @@ -1,2 +1,2 @@
                -cu29_helpers - Rust

                Crate cu29_helpers

                source ·

                Structs§

                • Just a simple struct to hold the various bits needed to run a Copper application.

                Functions§

                • This is a basic setup for a copper application to get you started. +cu29_helpers - Rust

                  Crate cu29_helpers

                  source

                  Structs§

                  • Just a simple struct to hold the various bits needed to run a Copper application.

                  Functions§

                  • This is a basic setup for a copper application to get you started. Duplicate and customize as needed when your needs grow.
                  \ No newline at end of file diff --git a/cu29_helpers/struct.CopperContext.html b/cu29_helpers/struct.CopperContext.html index e23894802..8062749bd 100644 --- a/cu29_helpers/struct.CopperContext.html +++ b/cu29_helpers/struct.CopperContext.html @@ -1,4 +1,4 @@ -CopperContext in cu29_helpers - Rust

                  Struct cu29_helpers::CopperContext

                  source ·
                  pub struct CopperContext {
                  +CopperContext in cu29_helpers - Rust
                  cu29_helpers

                  Struct CopperContext

                  source
                  pub struct CopperContext {
                       pub unified_logger: Arc<Mutex<UnifiedLoggerWrite>>,
                       pub logger_runtime: LoggerRuntime,
                       pub clock: RobotClock,
                  diff --git a/cu29_intern_strs/all.html b/cu29_intern_strs/all.html
                  index 0c58b905c..17151bcd6 100644
                  --- a/cu29_intern_strs/all.html
                  +++ b/cu29_intern_strs/all.html
                  @@ -1 +1 @@
                  -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/cu29_intern_strs/fn.read_interned_strings.html b/cu29_intern_strs/fn.read_interned_strings.html index a985843e7..258c363b9 100644 --- a/cu29_intern_strs/fn.read_interned_strings.html +++ b/cu29_intern_strs/fn.read_interned_strings.html @@ -1,2 +1,2 @@ -read_interned_strings in cu29_intern_strs - Rust

                  Function cu29_intern_strs::read_interned_strings

                  source ·
                  pub fn read_interned_strings(index: &Path) -> CuResult<Vec<String>>
                  Expand description

                  Rebuild the interned string index in memory.

                  +read_interned_strings in cu29_intern_strs - Rust
                  cu29_intern_strs

                  Function read_interned_strings

                  source
                  pub fn read_interned_strings(index: &Path) -> CuResult<Vec<String>>
                  Expand description

                  Rebuild the interned string index in memory.

                  \ No newline at end of file diff --git a/cu29_intern_strs/index.html b/cu29_intern_strs/index.html index d5a0d309c..36a04087a 100644 --- a/cu29_intern_strs/index.html +++ b/cu29_intern_strs/index.html @@ -1 +1 @@ -cu29_intern_strs - Rust

                  Crate cu29_intern_strs

                  source ·

                  Functions§

                  \ No newline at end of file +cu29_intern_strs - Rust

                  Crate cu29_intern_strs

                  source

                  Functions§

                  \ No newline at end of file diff --git a/cu29_log/all.html b/cu29_log/all.html index b431fe7e3..9a60f25c1 100644 --- a/cu29_log/all.html +++ b/cu29_log/all.html @@ -1 +1 @@ -List of all items in this crate
                  \ No newline at end of file +List of all items in this crate
                  \ No newline at end of file diff --git a/cu29_log/constant.ANONYMOUS.html b/cu29_log/constant.ANONYMOUS.html index 868e77595..b9b2e6bf6 100644 --- a/cu29_log/constant.ANONYMOUS.html +++ b/cu29_log/constant.ANONYMOUS.html @@ -1 +1 @@ -ANONYMOUS in cu29_log - Rust

                  Constant cu29_log::ANONYMOUS

                  source ·
                  pub const ANONYMOUS: u32 = 0;
                  \ No newline at end of file +ANONYMOUS in cu29_log - Rust
                  cu29_log

                  Constant ANONYMOUS

                  source
                  pub const ANONYMOUS: u32 = 0;
                  \ No newline at end of file diff --git a/cu29_log/constant.MAX_LOG_PARAMS_ON_STACK.html b/cu29_log/constant.MAX_LOG_PARAMS_ON_STACK.html index 02455c26f..54d110e6e 100644 --- a/cu29_log/constant.MAX_LOG_PARAMS_ON_STACK.html +++ b/cu29_log/constant.MAX_LOG_PARAMS_ON_STACK.html @@ -1 +1 @@ -MAX_LOG_PARAMS_ON_STACK in cu29_log - Rust

                  Constant cu29_log::MAX_LOG_PARAMS_ON_STACK

                  source ·
                  pub const MAX_LOG_PARAMS_ON_STACK: usize = 10;
                  \ No newline at end of file +MAX_LOG_PARAMS_ON_STACK in cu29_log - Rust
                  cu29_log

                  Constant MAX_LOG_PARAMS_ON_STACK

                  source
                  pub const MAX_LOG_PARAMS_ON_STACK: usize = 10;
                  \ No newline at end of file diff --git a/cu29_log/fn.default_log_index_dir.html b/cu29_log/fn.default_log_index_dir.html index 989aba8a5..e3c0bc132 100644 --- a/cu29_log/fn.default_log_index_dir.html +++ b/cu29_log/fn.default_log_index_dir.html @@ -1,2 +1,2 @@ -default_log_index_dir in cu29_log - Rust

                  Function cu29_log::default_log_index_dir

                  source ·
                  pub fn default_log_index_dir() -> PathBuf
                  Expand description

                  Convenience function to returns the default path for the log index directory.

                  +default_log_index_dir in cu29_log - Rust
                  cu29_log

                  Function default_log_index_dir

                  source
                  pub fn default_log_index_dir() -> PathBuf
                  Expand description

                  Convenience function to returns the default path for the log index directory.

                  \ No newline at end of file diff --git a/cu29_log/fn.format_logline.html b/cu29_log/fn.format_logline.html index 5f0b6d849..eac7f7c91 100644 --- a/cu29_log/fn.format_logline.html +++ b/cu29_log/fn.format_logline.html @@ -1,5 +1,5 @@ -format_logline in cu29_log - Rust

                  Function cu29_log::format_logline

                  source ·
                  pub fn format_logline(
                  -    time: CuTime,
                  +format_logline in cu29_log - Rust
                  cu29_log

                  Function format_logline

                  source
                  pub fn format_logline(
                  +    time: CuTime,
                       format_str: &str,
                       params: &[String],
                       named_params: &HashMap<String, String>,
                  diff --git a/cu29_log/fn.rebuild_logline.html b/cu29_log/fn.rebuild_logline.html
                  index 43e04cbeb..f13ba62b0 100644
                  --- a/cu29_log/fn.rebuild_logline.html
                  +++ b/cu29_log/fn.rebuild_logline.html
                  @@ -1,4 +1,4 @@
                  -rebuild_logline in cu29_log - Rust

                  Function cu29_log::rebuild_logline

                  source ·
                  pub fn rebuild_logline(
                  +rebuild_logline in cu29_log - Rust
                  cu29_log

                  Function rebuild_logline

                  source
                  pub fn rebuild_logline(
                       all_interned_strings: &Vec<String>,
                       entry: &CuLogEntry,
                   ) -> CuResult<String>
                  Expand description

                  Rebuild a log line from the interned strings and the CuLogEntry. diff --git a/cu29_log/index.html b/cu29_log/index.html index 7f5701344..fdeee9af0 100644 --- a/cu29_log/index.html +++ b/cu29_log/index.html @@ -1,2 +1,2 @@ -cu29_log - Rust

                  Crate cu29_log

                  source ·

                  Re-exports§

                  Structs§

                  • This is the basic structure for a log entry in Copper.

                  Constants§

                  Functions§

                  • Convenience function to returns the default path for the log index directory.
                  • Text log line formatter.
                  • Rebuild a log line from the interned strings and the CuLogEntry. +cu29_log - Rust

                    Crate cu29_log

                    source

                    Re-exports§

                    Structs§

                    • This is the basic structure for a log entry in Copper.

                    Constants§

                    Functions§

                    • Convenience function to returns the default path for the log index directory.
                    • Text log line formatter.
                    • Rebuild a log line from the interned strings and the CuLogEntry. This basically translates the world of copper logs to text logs.
                    \ No newline at end of file diff --git a/cu29_log/struct.CuLogEntry.html b/cu29_log/struct.CuLogEntry.html index 74fd55d48..31e74ec0f 100644 --- a/cu29_log/struct.CuLogEntry.html +++ b/cu29_log/struct.CuLogEntry.html @@ -1,10 +1,10 @@ -CuLogEntry in cu29_log - Rust

                    Struct cu29_log::CuLogEntry

                    source ·
                    pub struct CuLogEntry {
                    -    pub time: CuTime,
                    +CuLogEntry in cu29_log - Rust
                    cu29_log

                    Struct CuLogEntry

                    source
                    pub struct CuLogEntry {
                    +    pub time: CuTime,
                         pub msg_index: u32,
                         pub paramname_indexes: SmallVec<[u32; 10]>,
                         pub params: SmallVec<[Value; 10]>,
                     }
                    Expand description

                    This is the basic structure for a log entry in Copper.

                    -

                    Fields§

                    §time: CuTime§msg_index: u32§paramname_indexes: SmallVec<[u32; 10]>§params: SmallVec<[Value; 10]>

                    Implementations§

                    source§

                    impl CuLogEntry

                    source

                    pub fn new(msg_index: u32) -> Self

                    msg_index is the interned index of the message.

                    +

                    Fields§

                    §time: CuTime§msg_index: u32§paramname_indexes: SmallVec<[u32; 10]>§params: SmallVec<[Value; 10]>

                    Implementations§

                    source§

                    impl CuLogEntry

                    source

                    pub fn new(msg_index: u32) -> Self

                    msg_index is the interned index of the message.

                    source

                    pub fn add_param(&mut self, paramname_index: u32, param: Value)

                    Add a parameter to the log entry. paramname_index is the interned index of the parameter name.

                    Trait Implementations§

                    source§

                    impl Debug for CuLogEntry

                    source§

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

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

                    impl Decode for CuLogEntry

                    source§

                    fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

                    Attempt to decode this type with the given Decode.
                    source§

                    impl<'de> Deserialize<'de> for CuLogEntry

                    source§

                    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
                    where diff --git a/cu29_log_derive/all.html b/cu29_log_derive/all.html index c926eba99..edde9dfa3 100644 --- a/cu29_log_derive/all.html +++ b/cu29_log_derive/all.html @@ -1 +1 @@ -List of all items in this crate

                    List of all items

                    Macros

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

                    List of all items

                    Macros

                    \ No newline at end of file diff --git a/cu29_log_derive/index.html b/cu29_log_derive/index.html index b23e07308..98e19d6a4 100644 --- a/cu29_log_derive/index.html +++ b/cu29_log_derive/index.html @@ -1,4 +1,4 @@ -cu29_log_derive - Rust

                    Crate cu29_log_derive

                    source ·

                    Macros§

                    • This macro is used to log a message with parameters. +cu29_log_derive - Rust

                      Crate cu29_log_derive

                      source

                      Macros§

                      • This macro is used to log a message with parameters. The first parameter is a string literal that represents the message to be logged. Only {} is supported as a placeholder for parameters. The rest of the parameters are the values to be logged. diff --git a/cu29_log_derive/macro.debug.html b/cu29_log_derive/macro.debug.html index 8dd253032..422ee30ee 100644 --- a/cu29_log_derive/macro.debug.html +++ b/cu29_log_derive/macro.debug.html @@ -1,4 +1,4 @@ -debug in cu29_log_derive - Rust

                        Macro cu29_log_derive::debug

                        source ·
                        debug!() { /* proc-macro */ }
                        Expand description

                        This macro is used to log a message with parameters. +debug in cu29_log_derive - Rust

                        cu29_log_derive

                        Macro debug

                        source
                        debug!() { /* proc-macro */ }
                        Expand description

                        This macro is used to log a message with parameters. The first parameter is a string literal that represents the message to be logged. Only {} is supported as a placeholder for parameters. The rest of the parameters are the values to be logged. diff --git a/cu29_log_runtime/all.html b/cu29_log_runtime/all.html index 52fe643c8..79519a260 100644 --- a/cu29_log_runtime/all.html +++ b/cu29_log_runtime/all.html @@ -1 +1 @@ -List of all items in this crate

                        \ No newline at end of file +List of all items in this crate
                        \ No newline at end of file diff --git a/cu29_log_runtime/fn.log.html b/cu29_log_runtime/fn.log.html index 7b8c03705..acbd48620 100644 --- a/cu29_log_runtime/fn.log.html +++ b/cu29_log_runtime/fn.log.html @@ -1,3 +1,3 @@ -log in cu29_log_runtime - Rust

                        Function cu29_log_runtime::log

                        source ·
                        pub fn log(entry: &mut CuLogEntry) -> CuResult<()>
                        Expand description

                        Function called from generated code to log data. +log in cu29_log_runtime - Rust

                        cu29_log_runtime

                        Function log

                        source
                        pub fn log(entry: &mut CuLogEntry) -> CuResult<()>
                        Expand description

                        Function called from generated code to log data. It moves entry by design, it will be absorbed in the queue.

                        \ No newline at end of file diff --git a/cu29_log_runtime/fn.log_debug_mode.html b/cu29_log_runtime/fn.log_debug_mode.html index 216231aad..ec0ab821d 100644 --- a/cu29_log_runtime/fn.log_debug_mode.html +++ b/cu29_log_runtime/fn.log_debug_mode.html @@ -1,4 +1,4 @@ -log_debug_mode in cu29_log_runtime - Rust

                        Function cu29_log_runtime::log_debug_mode

                        source ·
                        pub fn log_debug_mode(
                        +log_debug_mode in cu29_log_runtime - Rust
                        cu29_log_runtime

                        Function log_debug_mode

                        source
                        pub fn log_debug_mode(
                             entry: &mut CuLogEntry,
                             format_str: &str,
                             param_names: &[&str],
                        diff --git a/cu29_log_runtime/index.html b/cu29_log_runtime/index.html
                        index 4f3d529fd..66903c96b 100644
                        --- a/cu29_log_runtime/index.html
                        +++ b/cu29_log_runtime/index.html
                        @@ -1,3 +1,3 @@
                        -cu29_log_runtime - Rust

                        Crate cu29_log_runtime

                        source ·

                        Structs§

                        Functions§

                        • Function called from generated code to log data. +cu29_log_runtime - Rust

                          Crate cu29_log_runtime

                          source

                          Structs§

                          Functions§

                          • Function called from generated code to log data. It moves entry by design, it will be absorbed in the queue.
                          • This version of log is only compiled in debug mode This allows a normal logging framework to be bridged.
                          \ No newline at end of file diff --git a/cu29_log_runtime/struct.LoggerRuntime.html b/cu29_log_runtime/struct.LoggerRuntime.html index ff2e4eb0f..46f05ee95 100644 --- a/cu29_log_runtime/struct.LoggerRuntime.html +++ b/cu29_log_runtime/struct.LoggerRuntime.html @@ -1,4 +1,4 @@ -LoggerRuntime in cu29_log_runtime - Rust

                          Struct cu29_log_runtime::LoggerRuntime

                          source ·
                          pub struct LoggerRuntime {}
                          Expand description

                          The lifetime of this struct is the lifetime of the logger.

                          +LoggerRuntime in cu29_log_runtime - Rust
                          cu29_log_runtime

                          Struct LoggerRuntime

                          source
                          pub struct LoggerRuntime {}
                          Expand description

                          The lifetime of this struct is the lifetime of the logger.

                          Implementations§

                          source§

                          impl LoggerRuntime

                          source

                          pub fn init( clock: RobotClock, destination: impl WriteStream<CuLogEntry> + 'static, diff --git a/cu29_log_runtime/struct.NullLog.html b/cu29_log_runtime/struct.NullLog.html index 2ee01c212..dbcc88e32 100644 --- a/cu29_log_runtime/struct.NullLog.html +++ b/cu29_log_runtime/struct.NullLog.html @@ -1,4 +1,4 @@ -NullLog in cu29_log_runtime - Rust

                          Struct cu29_log_runtime::NullLog

                          source ·
                          pub struct NullLog {}

                          Trait Implementations§

                          source§

                          impl Log for NullLog

                          source§

                          fn enabled(&self, _metadata: &Metadata<'_>) -> bool

                          Determines if a log message with the specified metadata would be +NullLog in cu29_log_runtime - Rust
                          cu29_log_runtime

                          Struct NullLog

                          source
                          pub struct NullLog {}

                          Trait Implementations§

                          source§

                          impl Log for NullLog

                          source§

                          fn enabled(&self, _metadata: &Metadata<'_>) -> bool

                          Determines if a log message with the specified metadata would be logged. Read more
                          source§

                          fn log(&self, _record: &Record<'_>)

                          Logs the Record. Read more
                          source§

                          fn flush(&self)

                          Flushes any buffered records. 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 diff --git a/cu29_log_runtime/struct.OwningIoWriter.html b/cu29_log_runtime/struct.OwningIoWriter.html index ef753f313..5b2999052 100644 --- a/cu29_log_runtime/struct.OwningIoWriter.html +++ b/cu29_log_runtime/struct.OwningIoWriter.html @@ -1,4 +1,4 @@ -OwningIoWriter in cu29_log_runtime - Rust

                          Struct cu29_log_runtime::OwningIoWriter

                          source ·
                          pub struct OwningIoWriter<W: Write> { /* private fields */ }

                          Implementations§

                          source§

                          impl<'a, W: Write> OwningIoWriter<W>

                          source

                          pub fn new(writer: W) -> Self

                          source

                          pub fn bytes_written(&self) -> usize

                          source

                          pub fn flush(&mut self) -> Result<(), EncodeError>

                          Trait Implementations§

                          source§

                          impl<W: Write> Writer for OwningIoWriter<W>

                          source§

                          fn write(&mut self, bytes: &[u8]) -> Result<(), EncodeError>

                          Write bytes to the underlying writer. Exactly bytes.len() bytes must be written, or else an error should be returned.

                          Auto Trait Implementations§

                          §

                          impl<W> Freeze for OwningIoWriter<W>
                          where +OwningIoWriter in cu29_log_runtime - Rust
                          cu29_log_runtime

                          Struct OwningIoWriter

                          source
                          pub struct OwningIoWriter<W: Write> { /* private fields */ }

                          Implementations§

                          source§

                          impl<'a, W: Write> OwningIoWriter<W>

                          source

                          pub fn new(writer: W) -> Self

                          source

                          pub fn bytes_written(&self) -> usize

                          source

                          pub fn flush(&mut self) -> Result<(), EncodeError>

                          Trait Implementations§

                          source§

                          impl<W: Write> Writer for OwningIoWriter<W>

                          source§

                          fn write(&mut self, bytes: &[u8]) -> Result<(), EncodeError>

                          Write bytes to the underlying writer. Exactly bytes.len() bytes must be written, or else an error should be returned.

                          Auto Trait Implementations§

                          §

                          impl<W> Freeze for OwningIoWriter<W>
                          where W: Freeze,

                          §

                          impl<W> RefUnwindSafe for OwningIoWriter<W>
                          where W: RefUnwindSafe,

                          §

                          impl<W> Send for OwningIoWriter<W>
                          where W: Send,

                          §

                          impl<W> Sync for OwningIoWriter<W>
                          where diff --git a/cu29_log_runtime/struct.SimpleFileWriter.html b/cu29_log_runtime/struct.SimpleFileWriter.html index 41b37d708..5bf1d613b 100644 --- a/cu29_log_runtime/struct.SimpleFileWriter.html +++ b/cu29_log_runtime/struct.SimpleFileWriter.html @@ -1,4 +1,4 @@ -SimpleFileWriter in cu29_log_runtime - Rust

                          Struct cu29_log_runtime::SimpleFileWriter

                          source ·
                          pub struct SimpleFileWriter { /* private fields */ }
                          Expand description

                          This allows this crate to be used outside of Copper (ie. decoupling it from the unifiedlog.

                          +SimpleFileWriter in cu29_log_runtime - Rust
                          cu29_log_runtime

                          Struct SimpleFileWriter

                          source
                          pub struct SimpleFileWriter { /* private fields */ }
                          Expand description

                          This allows this crate to be used outside of Copper (ie. decoupling it from the unifiedlog.

                          Implementations§

                          source§

                          impl SimpleFileWriter

                          source

                          pub fn new(path: &PathBuf) -> CuResult<Self>

                          Trait Implementations§

                          source§

                          impl Debug for SimpleFileWriter

                          source§

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

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

                          impl WriteStream<CuLogEntry> for SimpleFileWriter

                          source§

                          fn log(&mut self, obj: &CuLogEntry) -> CuResult<()>

                          source§

                          fn flush(&mut self) -> CuResult<()>

                          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 diff --git a/cu29_rendercfg/all.html b/cu29_rendercfg/all.html index 386f3f170..216f516ea 100644 --- a/cu29_rendercfg/all.html +++ b/cu29_rendercfg/all.html @@ -1 +1 @@ -List of all items in this crate
                          \ No newline at end of file +List of all items in this crate
                          \ No newline at end of file diff --git a/cu29_rendercfg/config/fn.read_configuration.html b/cu29_rendercfg/config/fn.read_configuration.html index 4e304fb50..e4bb6692a 100644 --- a/cu29_rendercfg/config/fn.read_configuration.html +++ b/cu29_rendercfg/config/fn.read_configuration.html @@ -1,2 +1,2 @@ -read_configuration in cu29_rendercfg::config - Rust

                          Function cu29_rendercfg::config::read_configuration

                          source ·
                          pub fn read_configuration(config_filename: &str) -> CuResult<CuConfig>
                          Expand description

                          Read a copper configuration from a file.

                          +read_configuration in cu29_rendercfg::config - Rust
                          cu29_rendercfg::config

                          Function read_configuration

                          source
                          pub fn read_configuration(config_filename: &str) -> CuResult<CuConfig>
                          Expand description

                          Read a copper configuration from a file.

                          \ No newline at end of file diff --git a/cu29_rendercfg/config/index.html b/cu29_rendercfg/config/index.html index c86055d24..e11cff021 100644 --- a/cu29_rendercfg/config/index.html +++ b/cu29_rendercfg/config/index.html @@ -1,4 +1,4 @@ -cu29_rendercfg::config - Rust

                          Module cu29_rendercfg::config

                          source ·
                          Expand description

                          This module defines the configuration of the copper runtime. +cu29_rendercfg::config - Rust

                          cu29_rendercfg

                          Module config

                          source
                          Expand description

                          This module defines the configuration of the copper runtime. The configuration is a directed graph where nodes are tasks and edges are connections between tasks. The configuration is serialized in the RON format. The configuration is used to generate the runtime code at compile time.

                          diff --git a/cu29_rendercfg/config/struct.Cnx.html b/cu29_rendercfg/config/struct.Cnx.html index 186c2c589..4767b1a6a 100644 --- a/cu29_rendercfg/config/struct.Cnx.html +++ b/cu29_rendercfg/config/struct.Cnx.html @@ -1,4 +1,4 @@ -Cnx in cu29_rendercfg::config - Rust

                          Struct cu29_rendercfg::config::Cnx

                          source ·
                          pub struct Cnx {
                          +Cnx in cu29_rendercfg::config - Rust
                          cu29_rendercfg::config

                          Struct Cnx

                          source
                          pub struct Cnx {
                               src: String,
                               dst: String,
                               pub msg: String,
                          diff --git a/cu29_rendercfg/config/struct.CuConfig.html b/cu29_rendercfg/config/struct.CuConfig.html
                          index 4f115158c..4661f1f35 100644
                          --- a/cu29_rendercfg/config/struct.CuConfig.html
                          +++ b/cu29_rendercfg/config/struct.CuConfig.html
                          @@ -1,4 +1,4 @@
                          -CuConfig in cu29_rendercfg::config - Rust

                          Struct cu29_rendercfg::config::CuConfig

                          source ·
                          pub struct CuConfig {
                          +CuConfig in cu29_rendercfg::config - Rust
                          cu29_rendercfg::config

                          Struct CuConfig

                          source
                          pub struct CuConfig {
                               pub graph: StableDiGraph<Node, Cnx, u32>,
                           }
                          Expand description

                          CuConfig is the programmatic representation of the configuration graph. It is a directed graph where nodes are tasks and edges are connections between tasks.

                          diff --git a/cu29_rendercfg/config/struct.CuConfigRepresentation.html b/cu29_rendercfg/config/struct.CuConfigRepresentation.html index 866209ef9..8c743e2db 100644 --- a/cu29_rendercfg/config/struct.CuConfigRepresentation.html +++ b/cu29_rendercfg/config/struct.CuConfigRepresentation.html @@ -1,4 +1,4 @@ -CuConfigRepresentation in cu29_rendercfg::config - Rust

                          Struct cu29_rendercfg::config::CuConfigRepresentation

                          source ·
                          struct CuConfigRepresentation {
                          +CuConfigRepresentation in cu29_rendercfg::config - Rust
                          cu29_rendercfg::config

                          Struct CuConfigRepresentation

                          source
                          struct CuConfigRepresentation {
                               tasks: Vec<Node>,
                               cnx: Vec<Cnx>,
                           }
                          Expand description

                          The config is a list of tasks and their connections.

                          diff --git a/cu29_rendercfg/config/struct.Node.html b/cu29_rendercfg/config/struct.Node.html index dcfde9817..553d8accc 100644 --- a/cu29_rendercfg/config/struct.Node.html +++ b/cu29_rendercfg/config/struct.Node.html @@ -1,4 +1,4 @@ -Node in cu29_rendercfg::config - Rust

                          Struct cu29_rendercfg::config::Node

                          source ·
                          pub struct Node {
                          +Node in cu29_rendercfg::config - Rust
                          cu29_rendercfg::config

                          Struct Node

                          source
                          pub struct Node {
                               id: String,
                               type_: Option<String>,
                               config: Option<NodeInstanceConfig>,
                          diff --git a/cu29_rendercfg/config/struct.NodeInstanceConfig.html b/cu29_rendercfg/config/struct.NodeInstanceConfig.html
                          index 4dbb4e71c..9249ae402 100644
                          --- a/cu29_rendercfg/config/struct.NodeInstanceConfig.html
                          +++ b/cu29_rendercfg/config/struct.NodeInstanceConfig.html
                          @@ -1,4 +1,4 @@
                          -NodeInstanceConfig in cu29_rendercfg::config - Rust

                          Struct cu29_rendercfg::config::NodeInstanceConfig

                          source ·
                          pub struct NodeInstanceConfig(pub HashMap<String, Value>);
                          Expand description

                          This is the configuration of a task instance. +NodeInstanceConfig in cu29_rendercfg::config - Rust

                          cu29_rendercfg::config

                          Struct NodeInstanceConfig

                          source
                          pub struct NodeInstanceConfig(pub HashMap<String, Value>);
                          Expand description

                          This is the configuration of a task instance. It is a map of key-value pairs. It is given to the new method of the task implementation.

                          Tuple Fields§

                          §0: HashMap<String, Value>

                          Implementations§

                          source§

                          impl NodeInstanceConfig

                          source

                          pub fn new() -> Self

                          source

                          pub fn get<T: From<Value>>(&self, key: &str) -> Option<T>

                          source

                          pub fn set<T: Into<Value>>(&mut self, key: &str, value: T)

                          Trait Implementations§

                          source§

                          impl Clone for NodeInstanceConfig

                          source§

                          fn clone(&self) -> NodeInstanceConfig

                          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 NodeInstanceConfig

                          source§

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

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

                          impl Default for NodeInstanceConfig

                          source§

                          fn default() -> NodeInstanceConfig

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

                          impl<'de> Deserialize<'de> for NodeInstanceConfig

                          source§

                          fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
                          where diff --git a/cu29_rendercfg/config/struct.Value.html b/cu29_rendercfg/config/struct.Value.html index 166148992..7d9667ee4 100644 --- a/cu29_rendercfg/config/struct.Value.html +++ b/cu29_rendercfg/config/struct.Value.html @@ -1,4 +1,4 @@ -Value in cu29_rendercfg::config - Rust

                          Struct cu29_rendercfg::config::Value

                          source ·
                          pub struct Value(Value);
                          Expand description

                          Wrapper around the ron::Value to allow for custom serialization.

                          +Value in cu29_rendercfg::config - Rust
                          cu29_rendercfg::config

                          Struct Value

                          source
                          pub struct Value(Value);
                          Expand description

                          Wrapper around the ron::Value to allow for custom serialization.

                          Tuple Fields§

                          §0: Value

                          Trait Implementations§

                          source§

                          impl Clone for Value

                          source§

                          fn clone(&self) -> Value

                          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 Value

                          source§

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

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

                          impl<'de> Deserialize<'de> for Value

                          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 Value

                          source§

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

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

                          impl From<String> for Value

                          source§

                          fn from(value: String) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<Value> for String

                          source§

                          fn from(value: Value) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<Value> for f64

                          source§

                          fn from(value: Value) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<Value> for i32

                          source§

                          fn from(value: Value) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<Value> for u32

                          source§

                          fn from(value: Value) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<Value> for u8

                          source§

                          fn from(value: Value) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<f64> for Value

                          source§

                          fn from(value: f64) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<i32> for Value

                          source§

                          fn from(value: i32) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<u16> for Value

                          source§

                          fn from(value: u16) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<u32> for Value

                          source§

                          fn from(value: u32) -> Self

                          Converts to this type from the input type.
                          source§

                          impl From<u8> for Value

                          source§

                          fn from(value: u8) -> Self

                          Converts to this type from the input type.
                          source§

                          impl Serialize for Value

                          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 Freeze for Value

                          §

                          impl RefUnwindSafe for Value

                          §

                          impl Send for Value

                          §

                          impl Sync for Value

                          §

                          impl Unpin for Value

                          §

                          impl UnwindSafe for Value

                          Blanket Implementations§

                          source§

                          impl<T> Any for T
                          where diff --git a/cu29_rendercfg/config/type.NodeId.html b/cu29_rendercfg/config/type.NodeId.html index ab8b68cb6..dee4d4af8 100644 --- a/cu29_rendercfg/config/type.NodeId.html +++ b/cu29_rendercfg/config/type.NodeId.html @@ -1,3 +1,3 @@ -NodeId in cu29_rendercfg::config - Rust

                          Type Alias cu29_rendercfg::config::NodeId

                          source ·
                          pub type NodeId = u32;
                          Expand description

                          NodeId is the unique identifier of a node in the configuration graph for petgraph +NodeId in cu29_rendercfg::config - Rust

                          cu29_rendercfg::config

                          Type Alias NodeId

                          source
                          pub type NodeId = u32;
                          Expand description

                          NodeId is the unique identifier of a node in the configuration graph for petgraph and the code generation.

                          \ No newline at end of file diff --git a/cu29_rendercfg/enum.UnifiedLogType.html b/cu29_rendercfg/enum.UnifiedLogType.html index 5725ea34a..97c4a6e9d 100644 --- a/cu29_rendercfg/enum.UnifiedLogType.html +++ b/cu29_rendercfg/enum.UnifiedLogType.html @@ -1,4 +1,4 @@ -UnifiedLogType in cu29_rendercfg - Rust

                          Enum cu29_rendercfg::UnifiedLogType

                          pub enum UnifiedLogType {
                          +UnifiedLogType in cu29_rendercfg - Rust
                          cu29_rendercfg

                          Enum UnifiedLogType

                          pub enum UnifiedLogType {
                               Empty,
                               StructuredLogLine,
                               CopperList,
                          diff --git a/cu29_rendercfg/fn.main.html b/cu29_rendercfg/fn.main.html
                          index 997f75cd0..b5796c61d 100644
                          --- a/cu29_rendercfg/fn.main.html
                          +++ b/cu29_rendercfg/fn.main.html
                          @@ -1,2 +1,2 @@
                          -main in cu29_rendercfg - Rust

                          Function cu29_rendercfg::main

                          source ·
                          pub(crate) fn main() -> Result<()>
                          Expand description

                          Render the configuration file to a dot file then convert it to an SVG and optionally opens it with inkscape.

                          +main in cu29_rendercfg - Rust
                          cu29_rendercfg

                          Function main

                          source
                          pub(crate) fn main() -> Result<()>
                          Expand description

                          Render the configuration file to a dot file then convert it to an SVG and optionally opens it with inkscape.

                          \ No newline at end of file diff --git a/cu29_rendercfg/index.html b/cu29_rendercfg/index.html index 3f02e0287..fa519ed6e 100644 --- a/cu29_rendercfg/index.html +++ b/cu29_rendercfg/index.html @@ -1,4 +1,4 @@ -cu29_rendercfg - Rust

                          Crate cu29_rendercfg

                          source ·

                          Modules§

                          • config 🔒
                            This module defines the configuration of the copper runtime. +cu29_rendercfg - Rust

                            Crate cu29_rendercfg

                            source

                            Modules§

                            • config 🔒
                              This module defines the configuration of the copper runtime. The configuration is a directed graph where nodes are tasks and edges are connections between tasks. The configuration is serialized in the RON format. The configuration is used to generate the runtime code at compile time.

                            Structs§

                            Enums§

                            • Defines the types of what can be logged in the unified logger.

                            Traits§

                            • A CopperListPayload needs to be encodable, decodable and fixed size in memory.
                            • Defines a basic write, append only stream trait to be able to log or send serializable objects.

                            Functions§

                            • main 🔒
                              Render the configuration file to a dot file then convert it to an SVG and optionally opens it with inkscape.

                            Type Aliases§

                            \ No newline at end of file diff --git a/cu29_rendercfg/struct.Args.html b/cu29_rendercfg/struct.Args.html index c1ebb0ff7..eba377f94 100644 --- a/cu29_rendercfg/struct.Args.html +++ b/cu29_rendercfg/struct.Args.html @@ -1,4 +1,4 @@ -Args in cu29_rendercfg - Rust

                            Struct cu29_rendercfg::Args

                            source ·
                            pub(crate) struct Args {
                            +Args in cu29_rendercfg - Rust
                            cu29_rendercfg

                            Struct Args

                            source
                            pub(crate) struct Args {
                                 pub(crate) config: PathBuf,
                                 pub(crate) open: bool,
                             }

                            Fields§

                            §config: PathBuf

                            Config file name

                            diff --git a/cu29_rendercfg/struct.CuError.html b/cu29_rendercfg/struct.CuError.html index 47f367473..b4dc9b17e 100644 --- a/cu29_rendercfg/struct.CuError.html +++ b/cu29_rendercfg/struct.CuError.html @@ -1,4 +1,4 @@ -CuError in cu29_rendercfg - Rust

                            Struct cu29_rendercfg::CuError

                            pub struct CuError {
                            +CuError in cu29_rendercfg - Rust
                            cu29_rendercfg

                            Struct CuError

                            pub struct CuError {
                                 pub(crate) message: String,
                                 pub(crate) cause: Option<String>,
                             }
                            Expand description

                            Common copper Error type.

                            diff --git a/cu29_rendercfg/trait.CopperListPayload.html b/cu29_rendercfg/trait.CopperListPayload.html index 53f8fe284..b20cfedc6 100644 --- a/cu29_rendercfg/trait.CopperListPayload.html +++ b/cu29_rendercfg/trait.CopperListPayload.html @@ -1,4 +1,4 @@ -CopperListPayload in cu29_rendercfg - Rust

                            Trait cu29_rendercfg::CopperListPayload

                            pub trait CopperListPayload:
                            +CopperListPayload in cu29_rendercfg - Rust
                            cu29_rendercfg

                            Trait CopperListPayload

                            pub trait CopperListPayload:
                                 Sized
                                 + Encode
                                 + Decode
                            diff --git a/cu29_rendercfg/trait.WriteStream.html b/cu29_rendercfg/trait.WriteStream.html
                            index d10522867..7531a22d0 100644
                            --- a/cu29_rendercfg/trait.WriteStream.html
                            +++ b/cu29_rendercfg/trait.WriteStream.html
                            @@ -1,4 +1,4 @@
                            -WriteStream in cu29_rendercfg - Rust

                            Trait cu29_rendercfg::WriteStream

                            pub trait WriteStream<E>:
                            +WriteStream in cu29_rendercfg - Rust
                            cu29_rendercfg

                            Trait WriteStream

                            pub trait WriteStream<E>:
                                 Sync
                                 + Send
                                 + Debug
                            where diff --git a/cu29_rendercfg/type.CuResult.html b/cu29_rendercfg/type.CuResult.html index 23666e5d1..164015652 100644 --- a/cu29_rendercfg/type.CuResult.html +++ b/cu29_rendercfg/type.CuResult.html @@ -1,4 +1,4 @@ -CuResult in cu29_rendercfg - Rust

                            Type Alias cu29_rendercfg::CuResult

                            pub type CuResult<T> = Result<T, CuError>;

                            Aliased Type§

                            enum CuResult<T> {
                            +CuResult in cu29_rendercfg - Rust
                            cu29_rendercfg

                            Type Alias CuResult

                            pub type CuResult<T> = Result<T, CuError>;

                            Aliased Type§

                            enum CuResult<T> {
                                 Ok(T),
                                 Err(CuError),
                             }

                            Variants§

                            §1.0.0

                            Ok(T)

                            Contains the success value

                            diff --git a/cu29_soa_derive/all.html b/cu29_soa_derive/all.html index edeb725d7..1d4c76a12 100644 --- a/cu29_soa_derive/all.html +++ b/cu29_soa_derive/all.html @@ -1 +1 @@ -List of all items in this crate

                            List of all items

                            Attribute Macros

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

                            List of all items

                            Attribute Macros

                            \ No newline at end of file diff --git a/cu29_soa_derive/attr.soa.html b/cu29_soa_derive/attr.soa.html index dc772c6ce..93df6d01c 100644 --- a/cu29_soa_derive/attr.soa.html +++ b/cu29_soa_derive/attr.soa.html @@ -1,4 +1,4 @@ -soa in cu29_soa_derive - Rust

                            Attribute Macro cu29_soa_derive::soa

                            source ·
                            #[soa]
                            Expand description

                            Build a fixed sized SoA (Structure of Arrays) from a struct. +soa in cu29_soa_derive - Rust

                            cu29_soa_derive

                            Attribute Macro soa

                            source
                            #[soa]
                            Expand description

                            Build a fixed sized SoA (Structure of Arrays) from a struct. The outputted SoA will be suitable for in place storage in messages and should be easier for the compiler to vectorize.

                            for example:

                            diff --git a/cu29_soa_derive/index.html b/cu29_soa_derive/index.html index 5bd9a2f24..269a9a575 100644 --- a/cu29_soa_derive/index.html +++ b/cu29_soa_derive/index.html @@ -1,3 +1,3 @@ -cu29_soa_derive - Rust

                            Crate cu29_soa_derive

                            source ·

                            Attribute Macros§

                            • Build a fixed sized SoA (Structure of Arrays) from a struct. +cu29_soa_derive - Rust

                              Crate cu29_soa_derive

                              source

                              Attribute Macros§

                              • Build a fixed sized SoA (Structure of Arrays) from a struct. The outputted SoA will be suitable for in place storage in messages and should be easier for the compiler to vectorize.
                              \ No newline at end of file diff --git a/cu29_traits/all.html b/cu29_traits/all.html index f9af21659..f6443e722 100644 --- a/cu29_traits/all.html +++ b/cu29_traits/all.html @@ -1 +1 @@ -List of all items in this crate

                              List of all items

                              Structs

                              Enums

                              Traits

                              Type Aliases

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

                              List of all items

                              Structs

                              Enums

                              Traits

                              Type Aliases

                              \ No newline at end of file diff --git a/cu29_traits/enum.UnifiedLogType.html b/cu29_traits/enum.UnifiedLogType.html index a49b565ed..2d39dae2c 100644 --- a/cu29_traits/enum.UnifiedLogType.html +++ b/cu29_traits/enum.UnifiedLogType.html @@ -1,4 +1,4 @@ -UnifiedLogType in cu29_traits - Rust

                              Enum cu29_traits::UnifiedLogType

                              source ·
                              pub enum UnifiedLogType {
                              +UnifiedLogType in cu29_traits - Rust
                              cu29_traits

                              Enum UnifiedLogType

                              source
                              pub enum UnifiedLogType {
                                   Empty,
                                   StructuredLogLine,
                                   CopperList,
                              diff --git a/cu29_traits/index.html b/cu29_traits/index.html
                              index 74bcf4326..5a5113876 100644
                              --- a/cu29_traits/index.html
                              +++ b/cu29_traits/index.html
                              @@ -1 +1 @@
                              -cu29_traits - Rust

                              Crate cu29_traits

                              source ·

                              Structs§

                              Enums§

                              • Defines the types of what can be logged in the unified logger.

                              Traits§

                              • A CopperListPayload needs to be encodable, decodable and fixed size in memory.
                              • Defines a basic write, append only stream trait to be able to log or send serializable objects.

                              Type Aliases§

                              \ No newline at end of file +cu29_traits - Rust

                              Crate cu29_traits

                              source

                              Structs§

                              Enums§

                              • Defines the types of what can be logged in the unified logger.

                              Traits§

                              • A CopperListPayload needs to be encodable, decodable and fixed size in memory.
                              • Defines a basic write, append only stream trait to be able to log or send serializable objects.

                              Type Aliases§

                              \ No newline at end of file diff --git a/cu29_traits/struct.CuError.html b/cu29_traits/struct.CuError.html index 1fdb92b09..57962ebce 100644 --- a/cu29_traits/struct.CuError.html +++ b/cu29_traits/struct.CuError.html @@ -1,4 +1,4 @@ -CuError in cu29_traits - Rust

                              Struct cu29_traits::CuError

                              source ·
                              pub struct CuError { /* private fields */ }
                              Expand description

                              Common copper Error type.

                              +CuError in cu29_traits - Rust
                              cu29_traits

                              Struct CuError

                              source
                              pub struct CuError { /* private fields */ }
                              Expand description

                              Common copper Error type.

                              Implementations§

                              source§

                              impl CuError

                              source

                              pub fn new_with_cause(message: &str, cause: impl Error) -> CuError

                              source

                              pub fn add_cause(self, context: &str) -> CuError

                              Trait Implementations§

                              source§

                              impl Debug for CuError

                              source§

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

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

                              impl<'de> Deserialize<'de> for CuError

                              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 CuError

                              source§

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

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

                              impl Error for CuError

                              1.30.0 · source§

                              fn source(&self) -> Option<&(dyn Error + 'static)>

                              Returns the lower-level source of this error, if any. Read more
                              1.0.0 · source§

                              fn description(&self) -> &str

                              👎Deprecated since 1.42.0: use the Display impl or to_string()
                              1.0.0 · source§

                              fn cause(&self) -> Option<&dyn Error>

                              👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
                              source§

                              fn provide<'a>(&'a self, request: &mut Request<'a>)

                              🔬This is a nightly-only experimental API. (error_generic_member_access)
                              Provides type-based access to context intended for error reports. Read more
                              source§

                              impl From<&str> for CuError

                              source§

                              fn from(s: &str) -> CuError

                              Converts to this type from the input type.
                              source§

                              impl From<String> for CuError

                              source§

                              fn from(s: String) -> CuError

                              Converts to this type from the input type.
                              source§

                              impl Serialize for CuError

                              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 diff --git a/cu29_traits/trait.CopperListPayload.html b/cu29_traits/trait.CopperListPayload.html index 142aeceea..d4366888d 100644 --- a/cu29_traits/trait.CopperListPayload.html +++ b/cu29_traits/trait.CopperListPayload.html @@ -1,4 +1,4 @@ -CopperListPayload in cu29_traits - Rust

                              Trait cu29_traits::CopperListPayload

                              source ·
                              pub trait CopperListPayload:
                              +CopperListPayload in cu29_traits - Rust
                              cu29_traits

                              Trait CopperListPayload

                              source
                              pub trait CopperListPayload:
                                   Encode
                                   + Decode
                                   + Sized
                              diff --git a/cu29_traits/trait.WriteStream.html b/cu29_traits/trait.WriteStream.html
                              index cc14e79be..39235fc53 100644
                              --- a/cu29_traits/trait.WriteStream.html
                              +++ b/cu29_traits/trait.WriteStream.html
                              @@ -1,4 +1,4 @@
                              -WriteStream in cu29_traits - Rust

                              Trait cu29_traits::WriteStream

                              source ·
                              pub trait WriteStream<E: Encode>:
                              +WriteStream in cu29_traits - Rust
                              cu29_traits

                              Trait WriteStream

                              source
                              pub trait WriteStream<E: Encode>:
                                   Sync
                                   + Send
                                   + Debug {
                              diff --git a/cu29_traits/type.CuResult.html b/cu29_traits/type.CuResult.html
                              index a269b1b51..d4ecefae7 100644
                              --- a/cu29_traits/type.CuResult.html
                              +++ b/cu29_traits/type.CuResult.html
                              @@ -1,4 +1,4 @@
                              -CuResult in cu29_traits - Rust

                              Type Alias cu29_traits::CuResult

                              source ·
                              pub type CuResult<T> = Result<T, CuError>;

                              Aliased Type§

                              enum CuResult<T> {
                              +CuResult in cu29_traits - Rust
                              cu29_traits

                              Type Alias CuResult

                              source
                              pub type CuResult<T> = Result<T, CuError>;

                              Aliased Type§

                              enum CuResult<T> {
                                   Ok(T),
                                   Err(CuError),
                               }

                              Variants§

                              §1.0.0

                              Ok(T)

                              Contains the success value

                              diff --git a/cu29_unifiedlog/all.html b/cu29_unifiedlog/all.html index 0b6abbda4..af8b4a26c 100644 --- a/cu29_unifiedlog/all.html +++ b/cu29_unifiedlog/all.html @@ -1 +1 @@ -List of all items in this crate
                              \ No newline at end of file +List of all items in this crate
                              \ No newline at end of file diff --git a/cu29_unifiedlog/enum.AllocatedSection.html b/cu29_unifiedlog/enum.AllocatedSection.html index 368fc207e..7c24240ce 100644 --- a/cu29_unifiedlog/enum.AllocatedSection.html +++ b/cu29_unifiedlog/enum.AllocatedSection.html @@ -1,4 +1,4 @@ -AllocatedSection in cu29_unifiedlog - Rust

                              Enum cu29_unifiedlog::AllocatedSection

                              source ·
                              pub enum AllocatedSection {
                              +AllocatedSection in cu29_unifiedlog - Rust
                              cu29_unifiedlog

                              Enum AllocatedSection

                              source
                              pub enum AllocatedSection {
                                   NoMoreSpace,
                                   Section(SectionHandle),
                               }

                              Variants§

                              §

                              NoMoreSpace

                              §

                              Section(SectionHandle)

                              Auto Trait Implementations§

                              Blanket Implementations§

                              source§

                              impl<T> Any for T
                              where diff --git a/cu29_unifiedlog/enum.UnifiedLogger.html b/cu29_unifiedlog/enum.UnifiedLogger.html index 12ad2f4a6..d3b72cb5b 100644 --- a/cu29_unifiedlog/enum.UnifiedLogger.html +++ b/cu29_unifiedlog/enum.UnifiedLogger.html @@ -1,4 +1,4 @@ -UnifiedLogger in cu29_unifiedlog - Rust

                              Enum cu29_unifiedlog::UnifiedLogger

                              source ·
                              pub enum UnifiedLogger {
                              +UnifiedLogger in cu29_unifiedlog - Rust
                              cu29_unifiedlog

                              Enum UnifiedLogger

                              source
                              pub enum UnifiedLogger {
                                   Read(UnifiedLoggerRead),
                                   Write(UnifiedLoggerWrite),
                               }
                              Expand description

                              Holder of the read or write side of the datalogger.

                              diff --git a/cu29_unifiedlog/fn.stream_write.html b/cu29_unifiedlog/fn.stream_write.html index 53a322b71..34b8e6c90 100644 --- a/cu29_unifiedlog/fn.stream_write.html +++ b/cu29_unifiedlog/fn.stream_write.html @@ -1,4 +1,4 @@ -stream_write in cu29_unifiedlog - Rust

                              Function cu29_unifiedlog::stream_write

                              source ·
                              pub fn stream_write<E: Encode>(
                              +stream_write in cu29_unifiedlog - Rust
                              cu29_unifiedlog

                              Function stream_write

                              source
                              pub fn stream_write<E: Encode>(
                                   logger: Arc<Mutex<UnifiedLoggerWrite>>,
                                   entry_type: UnifiedLogType,
                                   minimum_allocation_amount: usize,
                              diff --git a/cu29_unifiedlog/index.html b/cu29_unifiedlog/index.html
                              index fa647f457..37c06af7b 100644
                              --- a/cu29_unifiedlog/index.html
                              +++ b/cu29_unifiedlog/index.html
                              @@ -1,4 +1,4 @@
                              -cu29_unifiedlog - Rust

                              Crate cu29_unifiedlog

                              source ·

                              Structs§

                              • A SectionHandle is a handle to a section in the datalogger. +cu29_unifiedlog - Rust

                                Crate cu29_unifiedlog

                                source

                                Structs§

                                • A SectionHandle is a handle to a section in the datalogger. It allows to track the lifecycle of a section of the datalogger.
                                • Each concurrent sublogger is tracked through a section header. They form a linked list of sections. The entry type is used to identify the type of data in the section.
                                • Use this builder to create a new DataLogger.
                                • This a convience wrapper around the UnifiedLoggerRead to implement the Read trait.
                                • A read side of the datalogger.
                                • A write side of the datalogger.

                                Enums§

                                Functions§

                                • Create a new stream to write to the unifiedlogger.
                                \ No newline at end of file diff --git a/cu29_unifiedlog/struct.SectionHandle.html b/cu29_unifiedlog/struct.SectionHandle.html index 91746cda2..0be6269ef 100644 --- a/cu29_unifiedlog/struct.SectionHandle.html +++ b/cu29_unifiedlog/struct.SectionHandle.html @@ -1,4 +1,4 @@ -SectionHandle in cu29_unifiedlog - Rust

                                Struct cu29_unifiedlog::SectionHandle

                                source ·
                                pub struct SectionHandle { /* private fields */ }
                                Expand description

                                A SectionHandle is a handle to a section in the datalogger. +SectionHandle in cu29_unifiedlog - Rust

                                cu29_unifiedlog

                                Struct SectionHandle

                                source
                                pub struct SectionHandle { /* private fields */ }
                                Expand description

                                A SectionHandle is a handle to a section in the datalogger. It allows to track the lifecycle of a section of the datalogger.

                                Implementations§

                                source§

                                impl SectionHandle

                                source

                                pub fn create(section_header: SectionHeader, buffer: &'static mut [u8]) -> Self

                                source

                                pub fn get_user_buffer(&mut self) -> &mut [u8]

                                source

                                pub fn update_header(&mut self)

                                Trait Implementations§

                                source§

                                impl Default for SectionHandle

                                source§

                                fn default() -> Self

                                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 diff --git a/cu29_unifiedlog/struct.SectionHeader.html b/cu29_unifiedlog/struct.SectionHeader.html index e780a3317..bb3ce6f11 100644 --- a/cu29_unifiedlog/struct.SectionHeader.html +++ b/cu29_unifiedlog/struct.SectionHeader.html @@ -1,4 +1,4 @@ -SectionHeader in cu29_unifiedlog - Rust

                                Struct cu29_unifiedlog::SectionHeader

                                source ·
                                pub struct SectionHeader { /* private fields */ }
                                Expand description

                                Each concurrent sublogger is tracked through a section header. +SectionHeader in cu29_unifiedlog - Rust

                                cu29_unifiedlog

                                Struct SectionHeader

                                source
                                pub struct SectionHeader { /* private fields */ }
                                Expand description

                                Each concurrent sublogger is tracked through a section header. They form a linked list of sections. The entry type is used to identify the type of data in the section.

                                Trait Implementations§

                                source§

                                impl<'__de> BorrowDecode<'__de> for SectionHeader

                                source§

                                fn borrow_decode<__D: BorrowDecoder<'__de>>( diff --git a/cu29_unifiedlog/struct.UnifiedLoggerBuilder.html b/cu29_unifiedlog/struct.UnifiedLoggerBuilder.html index 4302a912d..a40b2f40f 100644 --- a/cu29_unifiedlog/struct.UnifiedLoggerBuilder.html +++ b/cu29_unifiedlog/struct.UnifiedLoggerBuilder.html @@ -1,4 +1,4 @@ -UnifiedLoggerBuilder in cu29_unifiedlog - Rust

                                Struct cu29_unifiedlog::UnifiedLoggerBuilder

                                source ·
                                pub struct UnifiedLoggerBuilder { /* private fields */ }
                                Expand description

                                Use this builder to create a new DataLogger.

                                +UnifiedLoggerBuilder in cu29_unifiedlog - Rust
                                cu29_unifiedlog

                                Struct UnifiedLoggerBuilder

                                source
                                pub struct UnifiedLoggerBuilder { /* private fields */ }
                                Expand description

                                Use this builder to create a new DataLogger.

                                Implementations§

                                source§

                                impl UnifiedLoggerBuilder

                                source

                                pub fn new() -> Self

                                source

                                pub fn file_base_name(self, file_path: &Path) -> Self

                                If “something/toto.copper” is given, it will find or create “something/toto_0.copper”, “something/toto_1.copper” etc.

                                source

                                pub fn preallocated_size(self, preallocated_size: usize) -> Self

                                source

                                pub fn write(self, write: bool) -> Self

                                source

                                pub fn create(self, create: bool) -> Self

                                source

                                pub fn build(self) -> Result<UnifiedLogger>

                                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 diff --git a/cu29_unifiedlog/struct.UnifiedLoggerIOReader.html b/cu29_unifiedlog/struct.UnifiedLoggerIOReader.html index 73a912c8e..8aaacf57c 100644 --- a/cu29_unifiedlog/struct.UnifiedLoggerIOReader.html +++ b/cu29_unifiedlog/struct.UnifiedLoggerIOReader.html @@ -1,4 +1,4 @@ -UnifiedLoggerIOReader in cu29_unifiedlog - Rust

                                Struct cu29_unifiedlog::UnifiedLoggerIOReader

                                source ·
                                pub struct UnifiedLoggerIOReader { /* private fields */ }
                                Expand description

                                This a convience wrapper around the UnifiedLoggerRead to implement the Read trait.

                                +UnifiedLoggerIOReader in cu29_unifiedlog - Rust
                                cu29_unifiedlog

                                Struct UnifiedLoggerIOReader

                                source
                                pub struct UnifiedLoggerIOReader { /* private fields */ }
                                Expand description

                                This a convience wrapper around the UnifiedLoggerRead to implement the Read trait.

                                Implementations§

                                source§

                                impl UnifiedLoggerIOReader

                                source

                                pub fn new(logger: UnifiedLoggerRead, log_type: UnifiedLogType) -> Self

                                Trait Implementations§

                                source§

                                impl Read for UnifiedLoggerIOReader

                                source§

                                fn read(&mut self, buf: &mut [u8]) -> Result<usize>

                                Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
                                1.36.0 · source§

                                fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

                                Like read, except that it reads into a slice of buffers. Read more
                                source§

                                fn is_read_vectored(&self) -> bool

                                🔬This is a nightly-only experimental API. (can_vector)
                                Determines if this Reader has an efficient read_vectored implementation. Read more
                                1.0.0 · source§

                                fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

                                Reads all bytes until EOF in this source, placing them into buf. Read more
                                1.0.0 · source§

                                fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

                                Reads all bytes until EOF in this source, appending them to buf. Read more
                                1.6.0 · source§

                                fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

                                Reads the exact number of bytes required to fill buf. Read more
                                source§

                                fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>

                                🔬This is a nightly-only experimental API. (read_buf)
                                Pull some bytes from this source into the specified buffer. Read more
                                source§

                                fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

                                🔬This is a nightly-only experimental API. (read_buf)
                                Reads the exact number of bytes required to fill cursor. Read more
                                1.0.0 · source§

                                fn by_ref(&mut self) -> &mut Self
                                where diff --git a/cu29_unifiedlog/struct.UnifiedLoggerRead.html b/cu29_unifiedlog/struct.UnifiedLoggerRead.html index ebfe254d8..6b1a82b50 100644 --- a/cu29_unifiedlog/struct.UnifiedLoggerRead.html +++ b/cu29_unifiedlog/struct.UnifiedLoggerRead.html @@ -1,4 +1,4 @@ -UnifiedLoggerRead in cu29_unifiedlog - Rust

                                Struct cu29_unifiedlog::UnifiedLoggerRead

                                source ·
                                pub struct UnifiedLoggerRead { /* private fields */ }
                                Expand description

                                A read side of the datalogger.

                                +UnifiedLoggerRead in cu29_unifiedlog - Rust
                                cu29_unifiedlog

                                Struct UnifiedLoggerRead

                                source
                                pub struct UnifiedLoggerRead { /* private fields */ }
                                Expand description

                                A read side of the datalogger.

                                Implementations§

                                source§

                                impl UnifiedLoggerRead

                                source

                                pub fn new(base_file_path: &PathBuf) -> Result<Self>

                                source

                                pub fn read_next_section_type( &mut self, datalogtype: UnifiedLogType, diff --git a/cu29_unifiedlog/struct.UnifiedLoggerWrite.html b/cu29_unifiedlog/struct.UnifiedLoggerWrite.html index feb77fd4e..fef3c50e5 100644 --- a/cu29_unifiedlog/struct.UnifiedLoggerWrite.html +++ b/cu29_unifiedlog/struct.UnifiedLoggerWrite.html @@ -1,4 +1,4 @@ -UnifiedLoggerWrite in cu29_unifiedlog - Rust

                                Struct cu29_unifiedlog::UnifiedLoggerWrite

                                source ·
                                pub struct UnifiedLoggerWrite { /* private fields */ }
                                Expand description

                                A write side of the datalogger.

                                +UnifiedLoggerWrite in cu29_unifiedlog - Rust
                                cu29_unifiedlog

                                Struct UnifiedLoggerWrite

                                source
                                pub struct UnifiedLoggerWrite { /* private fields */ }
                                Expand description

                                A write side of the datalogger.

                                Implementations§

                                source§

                                impl UnifiedLoggerWrite

                                source

                                pub fn flush_section(&mut self, section: &mut SectionHandle)

                                Trait Implementations§

                                source§

                                impl Drop for UnifiedLoggerWrite

                                source§

                                fn drop(&mut self)

                                Executes the destructor for this type. Read more

                                Auto Trait Implementations§

                                Blanket Implementations§

                                source§

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

                                source§

                                fn type_id(&self) -> TypeId

                                Gets the TypeId of self. Read more
                                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 diff --git a/help.html b/help.html index e5eb0abff..704deadc5 100644 --- a/help.html +++ b/help.html @@ -1 +1 @@ -Help

                                Rustdoc help

                                Back
                                \ No newline at end of file +Help

                                Rustdoc help

                                Back
                                \ No newline at end of file diff --git a/index.html b/index.html index 19bb2361d..81e7ccbeb 100644 --- a/index.html +++ b/index.html @@ -1,2 +1,2 @@ -Index of crates
                                +Index of crates
                                \ No newline at end of file diff --git a/settings.html b/settings.html index be0d68b8f..a9580fc97 100644 --- a/settings.html +++ b/settings.html @@ -1 +1 @@ -Settings

                                Rustdoc settings

                                Back
                                \ No newline at end of file +Settings

                                Rustdoc settings

                                Back
                                \ No newline at end of file diff --git a/src/cu29/config.rs.html b/src/cu29/config.rs.html index 10b9021b8..ec0b976e7 100644 --- a/src/cu29/config.rs.html +++ b/src/cu29/config.rs.html @@ -1,4 +1,4 @@ -config.rs - source
                                +config.rs - source

                                cu29/
                                config.rs

                                 1
                                 2
                                 3
                                @@ -686,10 +686,10 @@
                                             if let Some(i) = num.as_i64() {
                                                 i as u8
                                             } else {
                                -                panic!("Expected an integer value")
                                +                panic!("Expected an integer value but got {:?}", value)
                                             }
                                         } else {
                                -            panic!("Expected a Number variant")
                                +            panic!("Expected a Number variant but got {:?}", value)
                                         }
                                     }
                                 }
                                @@ -700,10 +700,10 @@
                                             if let Some(i) = num.as_i64() {
                                                 i as u32
                                             } else {
                                -                panic!("Expected an integer value")
                                +                panic!("Expected an integer value but got {:?}", value)
                                             }
                                         } else {
                                -            panic!("Expected a Number variant")
                                +            panic!("Expected a Number variant but got {:?}", value)
                                         }
                                     }
                                 }
                                @@ -714,10 +714,10 @@
                                             if let Some(i) = num.as_i64() {
                                                 i as i32
                                             } else {
                                -                panic!("Expected an integer value")
                                +                panic!("Expected an integer value but got {:?}", value)
                                             }
                                         } else {
                                -            panic!("Expected a Number variant")
                                +            panic!("Expected a Number variant but got {:?}", value)
                                         }
                                     }
                                 }
                                @@ -728,10 +728,10 @@
                                             if let Some(f) = num.as_f64() {
                                                 f
                                             } else {
                                -                panic!("Expected a float value")
                                +                panic!("Expected a float value but got {:?}", value)
                                             }
                                         } else {
                                -            panic!("Expected a Number variant")
                                +            panic!("Expected a Number variant but got {:?}", value)
                                         }
                                     }
                                 }
                                diff --git a/src/cu29/copperlist.rs.html b/src/cu29/copperlist.rs.html
                                index 5cd3bd6c5..401186dc7 100644
                                --- a/src/cu29/copperlist.rs.html
                                +++ b/src/cu29/copperlist.rs.html
                                @@ -1,4 +1,4 @@
                                -copperlist.rs - source
                                +copperlist.rs - source

                                cu29/
                                copperlist.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29/curuntime.rs.html b/src/cu29/curuntime.rs.html
                                index 9ce754591..457e5ed5d 100644
                                --- a/src/cu29/curuntime.rs.html
                                +++ b/src/cu29/curuntime.rs.html
                                @@ -1,4 +1,4 @@
                                -curuntime.rs - source
                                +curuntime.rs - source

                                cu29/
                                curuntime.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29/cutask.rs.html b/src/cu29/cutask.rs.html
                                index 291a2b3aa..52ea6d647 100644
                                --- a/src/cu29/cutask.rs.html
                                +++ b/src/cu29/cutask.rs.html
                                @@ -1,4 +1,4 @@
                                -cutask.rs - source
                                +cutask.rs - source

                                cu29/
                                cutask.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29/lib.rs.html b/src/cu29/lib.rs.html
                                index 6fa36ea32..a5aa3e090 100644
                                --- a/src/cu29/lib.rs.html
                                +++ b/src/cu29/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29/monitoring.rs.html b/src/cu29/monitoring.rs.html
                                index f5f7844c1..29224f054 100644
                                --- a/src/cu29/monitoring.rs.html
                                +++ b/src/cu29/monitoring.rs.html
                                @@ -1,4 +1,4 @@
                                -monitoring.rs - source
                                +monitoring.rs - source

                                cu29/
                                monitoring.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_clock/lib.rs.html b/src/cu29_clock/lib.rs.html
                                index caaa16999..61fb7ddeb 100644
                                --- a/src/cu29_clock/lib.rs.html
                                +++ b/src/cu29_clock/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_clock/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_derive/format.rs.html b/src/cu29_derive/format.rs.html
                                index 4922ab8e2..651a40f24 100644
                                --- a/src/cu29_derive/format.rs.html
                                +++ b/src/cu29_derive/format.rs.html
                                @@ -1,4 +1,4 @@
                                -format.rs - source
                                +format.rs - source

                                cu29_derive/
                                format.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_derive/lib.rs.html b/src/cu29_derive/lib.rs.html
                                index 785e5cb3e..217828944 100644
                                --- a/src/cu29_derive/lib.rs.html
                                +++ b/src/cu29_derive/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_derive/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_derive/utils.rs.html b/src/cu29_derive/utils.rs.html
                                index 53be1f7e9..8e1d30cda 100644
                                --- a/src/cu29_derive/utils.rs.html
                                +++ b/src/cu29_derive/utils.rs.html
                                @@ -1,4 +1,4 @@
                                -utils.rs - source
                                +utils.rs - source

                                cu29_derive/
                                utils.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_export/lib.rs.html b/src/cu29_export/lib.rs.html
                                index 87ca02237..2ba2bf4b9 100644
                                --- a/src/cu29_export/lib.rs.html
                                +++ b/src/cu29_export/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_export/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_helpers/lib.rs.html b/src/cu29_helpers/lib.rs.html
                                index 3551fda3a..4dcfc7562 100644
                                --- a/src/cu29_helpers/lib.rs.html
                                +++ b/src/cu29_helpers/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_helpers/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_intern_strs/lib.rs.html b/src/cu29_intern_strs/lib.rs.html
                                index 6ddbae032..892e34619 100644
                                --- a/src/cu29_intern_strs/lib.rs.html
                                +++ b/src/cu29_intern_strs/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_intern_strs/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_log/lib.rs.html b/src/cu29_log/lib.rs.html
                                index ccfd2f205..d0cfbc27a 100644
                                --- a/src/cu29_log/lib.rs.html
                                +++ b/src/cu29_log/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_log/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_log_derive/index.rs.html b/src/cu29_log_derive/index.rs.html
                                index f2d2a7256..48f7c8d36 100644
                                --- a/src/cu29_log_derive/index.rs.html
                                +++ b/src/cu29_log_derive/index.rs.html
                                @@ -1,4 +1,4 @@
                                -index.rs - source
                                +index.rs - source

                                cu29_log_derive/
                                index.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_log_derive/lib.rs.html b/src/cu29_log_derive/lib.rs.html
                                index b23401d9c..61184b576 100644
                                --- a/src/cu29_log_derive/lib.rs.html
                                +++ b/src/cu29_log_derive/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_log_derive/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_log_runtime/lib.rs.html b/src/cu29_log_runtime/lib.rs.html
                                index 45bed6d8d..fd7257c4e 100644
                                --- a/src/cu29_log_runtime/lib.rs.html
                                +++ b/src/cu29_log_runtime/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_log_runtime/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_rendercfg/config.rs.html b/src/cu29_rendercfg/config.rs.html
                                index 6c3b87e44..5db49023a 100644
                                --- a/src/cu29_rendercfg/config.rs.html
                                +++ b/src/cu29_rendercfg/config.rs.html
                                @@ -1,4 +1,4 @@
                                -config.rs - source
                                +config.rs - source

                                cu29_rendercfg/
                                config.rs

                                 1
                                 2
                                 3
                                @@ -686,10 +686,10 @@
                                             if let Some(i) = num.as_i64() {
                                                 i as u8
                                             } else {
                                -                panic!("Expected an integer value")
                                +                panic!("Expected an integer value but got {:?}", value)
                                             }
                                         } else {
                                -            panic!("Expected a Number variant")
                                +            panic!("Expected a Number variant but got {:?}", value)
                                         }
                                     }
                                 }
                                @@ -700,10 +700,10 @@
                                             if let Some(i) = num.as_i64() {
                                                 i as u32
                                             } else {
                                -                panic!("Expected an integer value")
                                +                panic!("Expected an integer value but got {:?}", value)
                                             }
                                         } else {
                                -            panic!("Expected a Number variant")
                                +            panic!("Expected a Number variant but got {:?}", value)
                                         }
                                     }
                                 }
                                @@ -714,10 +714,10 @@
                                             if let Some(i) = num.as_i64() {
                                                 i as i32
                                             } else {
                                -                panic!("Expected an integer value")
                                +                panic!("Expected an integer value but got {:?}", value)
                                             }
                                         } else {
                                -            panic!("Expected a Number variant")
                                +            panic!("Expected a Number variant but got {:?}", value)
                                         }
                                     }
                                 }
                                @@ -728,10 +728,10 @@
                                             if let Some(f) = num.as_f64() {
                                                 f
                                             } else {
                                -                panic!("Expected a float value")
                                +                panic!("Expected a float value but got {:?}", value)
                                             }
                                         } else {
                                -            panic!("Expected a Number variant")
                                +            panic!("Expected a Number variant but got {:?}", value)
                                         }
                                     }
                                 }
                                diff --git a/src/cu29_rendercfg/rendercfg.rs.html b/src/cu29_rendercfg/rendercfg.rs.html
                                index b0c36def3..c5fb4557b 100644
                                --- a/src/cu29_rendercfg/rendercfg.rs.html
                                +++ b/src/cu29_rendercfg/rendercfg.rs.html
                                @@ -1,4 +1,4 @@
                                -rendercfg.rs - source
                                +rendercfg.rs - source

                                cu29_rendercfg/
                                rendercfg.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_soa_derive/format.rs.html b/src/cu29_soa_derive/format.rs.html
                                index 20251a9d3..d5b5fd0a6 100644
                                --- a/src/cu29_soa_derive/format.rs.html
                                +++ b/src/cu29_soa_derive/format.rs.html
                                @@ -1,4 +1,4 @@
                                -format.rs - source
                                +format.rs - source

                                cu29_soa_derive/
                                format.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_soa_derive/lib.rs.html b/src/cu29_soa_derive/lib.rs.html
                                index 880a0d527..1da54590b 100644
                                --- a/src/cu29_soa_derive/lib.rs.html
                                +++ b/src/cu29_soa_derive/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_soa_derive/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_traits/lib.rs.html b/src/cu29_traits/lib.rs.html
                                index 3d4297b37..1ca571824 100644
                                --- a/src/cu29_traits/lib.rs.html
                                +++ b/src/cu29_traits/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_traits/
                                lib.rs

                                 1
                                 2
                                 3
                                diff --git a/src/cu29_unifiedlog/lib.rs.html b/src/cu29_unifiedlog/lib.rs.html
                                index 35c7db0c1..26a0c43c6 100644
                                --- a/src/cu29_unifiedlog/lib.rs.html
                                +++ b/src/cu29_unifiedlog/lib.rs.html
                                @@ -1,4 +1,4 @@
                                -lib.rs - source
                                +lib.rs - source

                                cu29_unifiedlog/
                                lib.rs

                                 1
                                 2
                                 3
                                @@ -1521,7 +1521,7 @@
                                         .write(true)
                                         .create(true)
                                         .open(&file_path)
                                -        .expect("Failed to open file");
                                +        .expect(format!("Failed to open file: {}", file_path.display()).as_str());
                                     file.set_len(slab_size as u64)
                                         .expect("Failed to set file length");
                                     file
                                diff --git a/static.files/main-2a73ac97dd39bfde.js b/static.files/main-2a73ac97dd39bfde.js
                                deleted file mode 100644
                                index e6702ec79..000000000
                                --- a/static.files/main-2a73ac97dd39bfde.js
                                +++ /dev/null
                                @@ -1,11 +0,0 @@
                                -"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function 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.innerHTML=`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,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback}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 sendSearchForm(){document.getElementsByClassName("search-form")[0].submit()}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm)}}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)},descShards:new Map(),loadDesc:async function({descShard,descIndex}){if(descShard.promise===null){descShard.promise=new Promise((resolve,reject)=>{descShard.resolve=resolve;const ds=descShard;const fname=`${ds.crate}-desc-${ds.shard}-`;const url=resourcePath(`search.desc/${descShard.crate}/${fname}`,".js",);loadScript(url,reject)})}const list=await descShard.promise;return list[descIndex]},loadedDescShard:function(crate,shard,data){this.descShards.get(crate)[shard].resolve(data.split("\n"))},};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 implElems=document.querySelectorAll(`details > summary > section[id^="${implId}"]`,);onEachLazy(implElems,implElem=>{const numbered=/^(.+?)-([0-9]+)$/.exec(implElem.id);if(implElem.id!==implId&&(!numbered||numbered[1]!==implId)){return false}return 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);return true}},)})}}}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":case"/":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.getElementById("rustdoc-modnav");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;link.textContent=name;const li=document.createElement("li");if(link.href===current_page){li.classList.add("current")}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("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.getElementById("rustdoc-modnav");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=()=>{if(document.querySelector(".rustdoc.src")){return}onEachLazy(document.querySelectorAll(":not(.scraped-example) > .example-wrap > pre:not(.example-line-numbers)",),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.querySelectorAll(".example-wrap > .example-line-numbers"),x=>{x.parentNode.removeChild(x)})};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";document.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}document.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}window.hideAllModals(false);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(){function copyContentToClipboard(content){const el=document.createElement("textarea");el.value=content;el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el)}function copyButtonAnimation(button){button.classList.add("clicked");if(button.reset_button_timeout!==undefined){window.clearTimeout(button.reset_button_timeout)}button.reset_button_timeout=window.setTimeout(()=>{button.reset_button_timeout=undefined;button.classList.remove("clicked")},1000)}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)}});copyContentToClipboard(path.join("::"));copyButtonAnimation(but)};function copyCode(codeElem){if(!codeElem){return}copyContentToClipboard(codeElem.textContent)}function getExampleWrap(event){let elem=event.target;while(!hasClass(elem,"example-wrap")){if(elem===document.body||elem.tagName==="A"||elem.tagName==="BUTTON"||hasClass(elem,"docblock")){return null}elem=elem.parentElement}return elem}function addCopyButton(event){const elem=getExampleWrap(event);if(elem===null){return}elem.removeEventListener("mouseover",addCopyButton);const parent=document.createElement("div");parent.className="button-holder";const runButton=elem.querySelector(".test-arrow");if(runButton!==null){parent.appendChild(runButton)}elem.appendChild(parent);const copyButton=document.createElement("button");copyButton.className="copy-button";copyButton.title="Copy code to clipboard";copyButton.addEventListener("click",()=>{copyCode(elem.querySelector("pre > code"));copyButtonAnimation(copyButton)});parent.appendChild(copyButton);if(!elem.parentElement.classList.contains("scraped-example")){return}const scrapedWrapped=elem.parentElement;window.updateScrapedExample(scrapedWrapped,parent)}function showHideCodeExampleButtons(event){const elem=getExampleWrap(event);if(elem===null){return}let buttons=elem.querySelector(".button-holder");if(buttons===null){addCopyButton(event);buttons=elem.querySelector(".button-holder");if(buttons===null){return}}buttons.classList.toggle("keep-visible")}onEachLazy(document.querySelectorAll(".docblock .example-wrap"),elem=>{elem.addEventListener("mouseover",addCopyButton);elem.addEventListener("click",showHideCodeExampleButtons)})}()) \ No newline at end of file diff --git a/static.files/main-54bc299d2a5e4e43.js b/static.files/main-54bc299d2a5e4e43.js new file mode 100644 index 000000000..b4f20a41d --- /dev/null +++ b/static.files/main-54bc299d2a5e4e43.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");const toggle=document.getElementById("toggle-all-docs");if(toggle){toggle.setAttribute("disabled","disabled")}}function showMain(){const main=document.getElementById(MAIN_ID);removeClass(main,"hidden");const mainHeading=main.querySelector(".main-heading");if(mainHeading&&searchState.rustdocToolbar){if(searchState.rustdocToolbar.parentElement){searchState.rustdocToolbar.parentElement.removeChild(searchState.rustdocToolbar)}mainHeading.appendChild(searchState.rustdocToolbar)}const toggle=document.getElementById("toggle-all-docs");if(toggle){toggle.removeAttribute("disabled")}}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.innerHTML=`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");const mainHeading=elemToDisplay.querySelector(".main-heading");if(mainHeading&&searchState.rustdocToolbar){if(searchState.rustdocToolbar.parentElement){searchState.rustdocToolbar.parentElement.removeChild(searchState.rustdocToolbar)}mainHeading.appendChild(searchState.rustdocToolbar)}}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,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback}document.head.append(script)}if(getSettingsButton()){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={rustdocToolbar:document.querySelector("rustdoc-toolbar"),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 sendSearchForm(){document.getElementsByClassName("search-form")[0].submit()}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm)}}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)},descShards:new Map(),loadDesc:async function({descShard,descIndex}){if(descShard.promise===null){descShard.promise=new Promise((resolve,reject)=>{descShard.resolve=resolve;const ds=descShard;const fname=`${ds.crate}-desc-${ds.shard}-`;const url=resourcePath(`search.desc/${descShard.crate}/${fname}`,".js",);loadScript(url,reject)})}const list=await descShard.promise;return list[descIndex]},loadedDescShard:function(crate,shard,data){this.descShards.get(crate)[shard].resolve(data.split("\n"))},};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 implElems=document.querySelectorAll(`details > summary > section[id^="${implId}"]`,);onEachLazy(implElems,implElem=>{const numbered=/^(.+?)-([0-9]+)$/.exec(implElem.id);if(implElem.id!==implId&&(!numbered||numbered[1]!==implId)){return false}return 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);return true}},)})}}}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":case"/":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.getElementById("rustdoc-modnav");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;link.textContent=name;const li=document.createElement("li");if(link.href===current_page){li.classList.add("current")}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("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.getElementById("rustdoc-modnav");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.children[0].innerText="Summary"}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.children[0].innerText="Show all"}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=()=>{if(document.querySelector(".rustdoc.src")){return}onEachLazy(document.querySelectorAll(":not(.scraped-example) > .example-wrap > pre:not(.example-line-numbers)",),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.querySelectorAll(".example-wrap > .example-line-numbers"),x=>{x.parentNode.removeChild(x)})};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";document.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}document.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){if(!getHelpButton().contains(document.activeElement)&&!getHelpButton().contains(event.relatedTarget)&&!getSettingsButton().contains(document.activeElement)&&!getSettingsButton().contains(event.relatedTarget)){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("rustdoc-toolbar .popover"),elem=>{elem.style.display="none"});const button=getHelpButton();if(button){removeClass(button,"help-open")}};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){const button=getHelpButton();addClass(button,"help-open");button.querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}const helpLink=document.querySelector(`#${HELP_BUTTON_ID} > a`);if(isHelpPage){buildHelpMenu()}else if(helpLink){helpLink.addEventListener("click",event=>{if(!helpLink.contains(helpLink)||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}window.hideAllModals(false);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(){function copyContentToClipboard(content){const el=document.createElement("textarea");el.value=content;el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el)}function copyButtonAnimation(button){button.classList.add("clicked");if(button.reset_button_timeout!==undefined){window.clearTimeout(button.reset_button_timeout)}button.reset_button_timeout=window.setTimeout(()=>{button.reset_button_timeout=undefined;button.classList.remove("clicked")},1000)}const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const path=[];onEachLazy(document.querySelectorAll(".rustdoc-breadcrumbs a"),a=>{path.push(a.textContent)});path.push(document.querySelector("title").textContent.split(" ")[0]);copyContentToClipboard(path.join("::"));copyButtonAnimation(but)};function copyCode(codeElem){if(!codeElem){return}copyContentToClipboard(codeElem.textContent)}function getExampleWrap(event){let elem=event.target;while(!hasClass(elem,"example-wrap")){if(elem===document.body||elem.tagName==="A"||elem.tagName==="BUTTON"||hasClass(elem,"docblock")){return null}elem=elem.parentElement}return elem}function addCopyButton(event){const elem=getExampleWrap(event);if(elem===null){return}elem.removeEventListener("mouseover",addCopyButton);const parent=document.createElement("div");parent.className="button-holder";const runButton=elem.querySelector(".test-arrow");if(runButton!==null){parent.appendChild(runButton)}elem.appendChild(parent);const copyButton=document.createElement("button");copyButton.className="copy-button";copyButton.title="Copy code to clipboard";copyButton.addEventListener("click",()=>{copyCode(elem.querySelector("pre > code"));copyButtonAnimation(copyButton)});parent.appendChild(copyButton);if(!elem.parentElement.classList.contains("scraped-example")){return}const scrapedWrapped=elem.parentElement;window.updateScrapedExample(scrapedWrapped,parent)}function showHideCodeExampleButtons(event){const elem=getExampleWrap(event);if(elem===null){return}let buttons=elem.querySelector(".button-holder");if(buttons===null){addCopyButton(event);buttons=elem.querySelector(".button-holder");if(buttons===null){return}}buttons.classList.toggle("keep-visible")}onEachLazy(document.querySelectorAll(".docblock .example-wrap"),elem=>{elem.addEventListener("mouseover",addCopyButton);elem.addEventListener("click",showHideCodeExampleButtons)})}()) \ No newline at end of file diff --git a/static.files/noscript-0111fcff984fae8f.css b/static.files/noscript-0111fcff984fae8f.css new file mode 100644 index 000000000..a6c18ecaf --- /dev/null +++ b/static.files/noscript-0111fcff984fae8f.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,:root:not([data-theme]){--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%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#595959;--settings-menu-filter:invert(50%);--settings-menu-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;--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,:root:not([data-theme]){--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%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#a5a5a5;--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;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(65%);--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;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/static.files/noscript-40f72c9259523cb3.css b/static.files/noscript-40f72c9259523cb3.css deleted file mode 100644 index 06afc77fd..000000000 --- a/static.files/noscript-40f72c9259523cb3.css +++ /dev/null @@ -1 +0,0 @@ - #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,:root:not([data-theme]){--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%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#595959;--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;--settings-menu-filter:none;--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;--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,:root:not([data-theme]){--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%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#a5a5a5;--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;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/static.files/rustdoc-42fa08075bb476ff.css b/static.files/rustdoc-42fa08075bb476ff.css new file mode 100644 index 000000000..84d17587d --- /dev/null +++ b/static.files/rustdoc-42fa08075bb476ff.css @@ -0,0 +1,53 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;--sidebar-elems-left-padding:24px;--clipboard-image:url('data:image/svg+xml,\ +\ +\ +');--copy-path-height:34px;--copy-path-width:33px;--checkmark-image:url('data:image/svg+xml,\ +\ +');--button-left-margin:4px;--button-border-radius:2px;--toolbar-button-border-radius:6px;--code-block-border-radius:6px;}@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;grid-area:main-heading-h1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{position:relative;display:grid;grid-template-areas:"main-heading-breadcrumbs main-heading-breadcrumbs" "main-heading-h1 main-heading-toolbar" "main-heading-sub-heading main-heading-toolbar";grid-template-columns:1fr max-content;grid-template-rows:25px min-content min-content;padding-bottom:6px;margin-bottom:11px;}.rustdoc-breadcrumbs{grid-area:main-heading-breadcrumbs;height:25px;line-height:1.25;display:flex;align-items:end;}.rustdoc-breadcrumbs a{padding:4px 0;margin:-4px 0;z-index:1;}.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,.sub-heading,span.since,a.src,rustdoc-toolbar,summary.hideme,.scraped-example-list,.rustdoc-breadcrumbs,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,.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 .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,.block ul{padding:0;margin:0;list-style:none;}.block ul a{padding-left:1rem;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-right:0.25rem;border-left:solid var(--sidebar-elems-left-padding) transparent;margin-left:calc(-0.25rem - var(--sidebar-elems-left-padding));background-clip:border-box;}.hide-toc #rustdoc-toc,.hide-toc .in-crate{display:none;}.hide-modnav #rustdoc-modnav{display:none;}.sidebar h2{text-wrap:balance;overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{text-wrap:balance;overflow-wrap:anywhere;font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:var(--sidebar-elems-left-padding);}.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 calc(-16px - var(--sidebar-elems-left-padding));padding:0 var(--sidebar-elems-left-padding);text-align:center;}.sidebar-crate .logo-container img{margin-top:-16px;border-top:solid 16px transparent;box-sizing:content-box;position:relative;background-clip:border-box;z-index:1;}.sidebar-crate h2 a{display:block;border-left:solid var(--sidebar-elems-left-padding) transparent;background-clip:border-box;margin:0 calc(-24px + 0.25rem) 0 calc(-0.2rem - var(--sidebar-elems-left-padding));padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.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>pre,.rustdoc .scraped-example .src-line-numbers,.rustdoc .scraped-example .src-line-numbers>pre{border-radius:6px;}.rustdoc .example-wrap>.example-line-numbers,.rustdoc .scraped-example .src-line-numbers,.rustdoc .scraped-example .src-line-numbers>pre{border-top-right-radius:0;border-bottom-right-radius:0;}.rustdoc .example-wrap>.example-line-numbers+pre,.rustdoc .scraped-example .rust{border-top-left-radius:0;border-bottom-left-radius:0;}.rustdoc .scraped-example{position:relative;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 10 + 10px);}.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers,.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers>pre,.rustdoc:not(.src) .scraped-example:not(.expanded) pre.rust{padding-bottom:0;overflow:auto hidden;}.rustdoc:not(.src) .scraped-example .src-line-numbers{padding-top:0;}.rustdoc:not(.src) .scraped-example.expanded .src-line-numbers{padding-bottom:0;}.rustdoc:not(.src) .example-wrap pre{overflow:auto;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap .src-line-numbers{min-width:fit-content;flex-grow:0;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;padding-right:2px;color:var(--src-line-numbers-span-color);}.rustdoc .scraped-example .example-wrap .src-line-numbers{padding:0;}.rustdoc .src-line-numbers pre{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;}.sub-heading{font-size:1rem;flex-grow:0;grid-area:main-heading-sub-heading;line-height:1.25;padding-bottom:4px;}.main-heading rustdoc-toolbar,.main-heading .out-of-band{grid-area:main-heading-toolbar;}rustdoc-toolbar{display:flex;flex-direction:row;flex-wrap:nowrap;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap,.example-wrap .src-line-numbers{background-color:var(--code-block-background-color);border-radius:var(--code-block-border-radius);}#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);}.docblock .stab,.docblock-short .stab{display:inline-block;}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 0 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 -10px 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;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:10px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a: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;width:100%;}.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;}.search-results-title+.sub-heading{color:var(--main-color);display:flex;align-items:center;}#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;}#settings.popover{--popover-arrow-offset:202px;top:calc(100% - 16px);}#help.popover{max-width:600px;--popover-arrow-offset:118px;top:calc(100% - 16px);}#help dt{float:left;clear:left;margin-right:0.5rem;}#help dd{margin-bottom:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;padding:0 0.5rem;text-wrap-style:balance;}#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{display:flex;margin-bottom:20px;}.side-by-side>div{width:50%;padding:0 20px 0 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,.sub-heading,rustdoc-toolbar{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;}.example-wrap>a.test-arrow,.example-wrap .button-holder{visibility:hidden;position:absolute;top:4px;right:4px;z-index:1;}a.test-arrow{height:var(--copy-path-height);padding:6px 4px 0 11px;}a.test-arrow::before{content:url('data:image/svg+xml,');}.example-wrap .button-holder{display:flex;}@media not (pointer:coarse){.example-wrap:hover>a.test-arrow,.example-wrap:hover>.button-holder{visibility:visible;}}.example-wrap .button-holder.keep-visible{visibility:visible;}.example-wrap .button-holder>*{background:var(--main-background-color);cursor:pointer;border-radius:var(--button-border-radius);height:var(--copy-path-height);width:var(--copy-path-width);border:0;color:var(--code-example-button-color);}.example-wrap .button-holder>*:hover{color:var(--code-example-button-hover-color);}.example-wrap .button-holder>*:not(:first-child){margin-left:var(--button-left-margin);}.example-wrap .button-holder .copy-button{padding:2px 0 0 4px;}.example-wrap .button-holder .copy-button::before,.example-wrap .test-arrow::before{filter:var(--copy-path-img-filter);}.example-wrap .button-holder .copy-button::before{content:var(--clipboard-image);}.example-wrap .button-holder .copy-button:hover::before,.example-wrap .test-arrow:hover::before{filter:var(--copy-path-img-hover-filter);}.example-wrap .button-holder .copy-button.clicked::before{content:var(--checkmark-image);padding-right:5px;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.main-heading span.since::before{content:"Since ";}.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;}@keyframes targetfadein{from{background-color:var(--main-background-color);}10%{background-color:var(--target-border-color);}to{background-color:var(--target-background-color);}}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);animation:0.65s cubic-bezier(0,0,0.1,1.0) 0.1s targetfadein;}.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{margin-top:0.25rem;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,button#toggle-all-docs{margin-left:var(--button-left-margin);display:flex;line-height:1.25;}#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,button#toggle-all-docs{display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid transparent;border-radius:var(--button-border-radius);color:var(--main-color);}#settings-menu>a,#help-button>a,button#toggle-all-docs{width:80px;border-radius:var(--toolbar-button-border-radius);}#sidebar-button>a{background-color:var(--button-background-color);border-color:var(--border-color);width:33px;}#settings-menu>a:hover,#settings-menu>a:focus-visible,#help-button>a:hover,#help-button>a:focus-visible,#sidebar-button>a:hover,#sidebar-button>a:focus-visible,button#toggle-all-docs:hover,button#toggle-all-docs:focus-visible{border-color:var(--settings-button-border-focus);text-decoration:none;}#settings-menu>a:before{content:url('data:image/svg+xml,\ + ');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs:before{content:url('data:image/svg+xml,\ + ');width:18px;height:18px;filter:var(--settings-menu-filter);}#help-button>a:before{content:url('data:image/svg+xml,\ + \ + ?');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs:before,#help-button>a:before,#settings-menu>a:before{filter:var(--settings-menu-filter);margin:8px;}@media not (pointer:coarse){button#toggle-all-docs:hover:before,#help-button>a:hover:before,#settings-menu>a:hover:before{filter:var(--settings-menu-hover-filter);}}button[disabled]#toggle-all-docs{opacity:0.25;border:solid 1px var(--main-background-color);background-size:cover;}button[disabled]#toggle-all-docs:hover{border:solid 1px var(--main-background-color);cursor:not-allowed;}rustdoc-toolbar span.label{font-size:1rem;flex-grow:1;padding-bottom:4px;}#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:var(--copy-path-height);width:var(--copy-path-width);margin-left:10px;padding:0;padding-left:2px;border:0;font-size:0;}#copy-path::before{filter:var(--copy-path-img-filter);content:var(--clipboard-image);}#copy-path:hover::before{filter:var(--copy-path-img-hover-filter);}#copy-path.clicked::before{content:var(--checkmark-image);}@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.big-toggle{contain:inline-size;}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,\ + ');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.big-toggle>summary:not(.hideme)::before{left:-34px;top:9px;}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,\ + ');}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;}.side-by-side{flex-direction:column-reverse;}.side-by-side>div{width:auto;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}#copy-path{display:none;}rustdoc-toolbar span.label{display:none;}#settings-menu>a,#help-button>a,button#toggle-all-docs{width:33px;}#settings.popover{--popover-arrow-offset:86px;}#help.popover{--popover-arrow-offset:48px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.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;}.src .main-heading{margin-left:8px;}.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;white-space:nowrap;text-overflow:ellipsis;}.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;}#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 0 -25px 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);}.item-table>li>.item-name{width:33%;}.item-table>li>div{overflow-wrap:anywhere;}}@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:not(.expanded) .example-wrap::before,.scraped-example:not(.expanded) .example-wrap::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .example-wrap::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) .example-wrap::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded){width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded){overflow-x:hidden;}.scraped-example .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .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"],:root:not([data-theme]){--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%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#595959;--settings-menu-filter:invert(50%);--settings-menu-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;--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%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#a5a5a5;--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;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(65%);--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;--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%);--code-example-button-color:#b2b2b2;--code-example-button-hover-color:#fff;--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;--settings-menu-filter:invert(70%);--settings-menu-hover-filter:invert(100%);--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);--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/static.files/rustdoc-9d5ec5f3536319c6.css b/static.files/rustdoc-9d5ec5f3536319c6.css deleted file mode 100644 index b614ff1fa..000000000 --- a/static.files/rustdoc-9d5ec5f3536319c6.css +++ /dev/null @@ -1,47 +0,0 @@ - :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;--sidebar-elems-left-padding:24px;--clipboard-image:url('data:image/svg+xml,\ -\ -\ -');--copy-path-height:34px;--copy-path-width:33px;--checkmark-image:url('data:image/svg+xml,\ -\ -');--button-left-margin:4px;--button-border-radius:2px;}@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,.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 .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,.block ul{padding:0;margin:0;list-style:none;}.block ul a{padding-left:1rem;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-right:0.25rem;border-left:solid var(--sidebar-elems-left-padding) transparent;margin-left:calc(-0.25rem - var(--sidebar-elems-left-padding));background-clip:border-box;}.hide-toc #rustdoc-toc,.hide-toc .in-crate{display:none;}.hide-modnav #rustdoc-modnav{display:none;}.sidebar h2{text-wrap:balance;overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{text-wrap:balance;overflow-wrap:anywhere;font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:var(--sidebar-elems-left-padding);}.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 calc(-16px - var(--sidebar-elems-left-padding));padding:0 var(--sidebar-elems-left-padding);text-align:center;}.sidebar-crate .logo-container img{margin-top:-16px;border-top:solid 16px transparent;box-sizing:content-box;position:relative;background-clip:border-box;z-index:1;}.sidebar-crate h2 a{display:block;border-left:solid var(--sidebar-elems-left-padding) transparent;background-clip:border-box;margin:0 calc(-24px + 0.25rem) 0 calc(-0.2rem - var(--sidebar-elems-left-padding));padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.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>pre,.rustdoc .scraped-example .src-line-numbers,.rustdoc .scraped-example .src-line-numbers>pre{border-radius:6px;}.rustdoc .example-wrap>.example-line-numbers,.rustdoc .scraped-example .src-line-numbers,.rustdoc .scraped-example .src-line-numbers>pre{border-top-right-radius:0;border-bottom-right-radius:0;}.rustdoc .example-wrap>.example-line-numbers+pre,.rustdoc .scraped-example .rust{border-top-left-radius:0;border-bottom-left-radius:0;}.rustdoc .scraped-example{position:relative;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 10 + 10px);}.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers,.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers>pre,.rustdoc:not(.src) .scraped-example:not(.expanded) pre.rust{padding-bottom:0;overflow:auto hidden;}.rustdoc:not(.src) .scraped-example .src-line-numbers{padding-top:0;}.rustdoc:not(.src) .scraped-example.expanded .src-line-numbers{padding-bottom:0;}.rustdoc:not(.src) .example-wrap pre{overflow:auto;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap .src-line-numbers{min-width:fit-content;flex-grow:0;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;padding-right:2px;color:var(--src-line-numbers-span-color);}.rustdoc .scraped-example .example-wrap .src-line-numbers{padding:0;}.rustdoc .src-line-numbers pre{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,.example-wrap .src-line-numbers{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);}.docblock .stab,.docblock-short .stab{display:inline-block;}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;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:10px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a: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;width:100%;}.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;}.example-wrap>a.test-arrow,.example-wrap .button-holder{visibility:hidden;position:absolute;top:4px;right:4px;z-index:1;}a.test-arrow{height:var(--copy-path-height);padding:6px 4px 0 11px;}a.test-arrow::before{content:url('data:image/svg+xml,');}.example-wrap .button-holder{display:flex;}@media not (pointer:coarse){.example-wrap:hover>a.test-arrow,.example-wrap:hover>.button-holder{visibility:visible;}}.example-wrap .button-holder.keep-visible{visibility:visible;}.example-wrap .button-holder>*{background:var(--main-background-color);cursor:pointer;border-radius:var(--button-border-radius);height:var(--copy-path-height);width:var(--copy-path-width);border:0;color:var(--code-example-button-color);}.example-wrap .button-holder>*:hover{color:var(--code-example-button-hover-color);}.example-wrap .button-holder>*:not(:first-child){margin-left:var(--button-left-margin);}.example-wrap .button-holder .copy-button{padding:2px 0 0 4px;}.example-wrap .button-holder .copy-button::before,.example-wrap .test-arrow::before{filter:var(--copy-path-img-filter);}.example-wrap .button-holder .copy-button::before{content:var(--clipboard-image);}.example-wrap .button-holder .copy-button:hover::before,.example-wrap .test-arrow:hover::before{filter:var(--copy-path-img-hover-filter);}.example-wrap .button-holder .copy-button.clicked::before{content:var(--checkmark-image);padding-right:5px;}.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;}@keyframes targetfadein{from{background-color:var(--main-background-color);}10%{background-color:var(--target-border-color);}to{background-color:var(--target-background-color);}}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);animation:0.65s cubic-bezier(0,0,0.1,1.0) 0.1s targetfadein;}.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:var(--button-left-margin);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:var(--button-border-radius);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);}#settings-menu>a{line-height:0;font-size:0;}#settings-menu>a:before{content:url('data:image/svg+xml,\ - ');width:22px;height:22px;filter:var(--settings-menu-filter);}#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:var(--copy-path-height);width:var(--copy-path-width);margin-left:10px;padding:0;padding-left:2px;border:0;font-size:0;}#copy-path::before{filter:var(--copy-path-img-filter);content:var(--clipboard-image);}#copy-path:hover::before{filter:var(--copy-path-img-hover-filter);}#copy-path.clicked::before{content:var(--checkmark-image);}@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.big-toggle{contain:inline-size;}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.big-toggle>summary:not(.hideme)::before{left:-34px;top:9px;}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;white-space:nowrap;text-overflow:ellipsis;}.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);}.item-table>li>.item-name{width:33%;}.item-table>li>div{overflow-wrap:anywhere;}}@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:not(.expanded) .example-wrap::before,.scraped-example:not(.expanded) .example-wrap::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .example-wrap::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) .example-wrap::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded){width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded){overflow-x:hidden;}.scraped-example .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .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"],:root:not([data-theme]){--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%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#595959;--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;--settings-menu-filter:none;--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;--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%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#a5a5a5;--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;--settings-menu-filter:none;--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;--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%);--code-example-button-color:#b2b2b2;--code-example-button-hover-color:#fff;--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;--settings-menu-filter:invert(100%);--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);--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/static.files/search-0cfde64e8ad3a7fe.js b/static.files/search-e056c65ede92db13.js similarity index 89% rename from static.files/search-0cfde64e8ad3a7fe.js rename to static.files/search-e056c65ede92db13.js index 5e3c05172..3e2c702e3 100644 --- a/static.files/search-0cfde64e8ad3a7fe.js +++ b/static.files/search-e056c65ede92db13.js @@ -2,4 +2,5 @@ ${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""}async 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=DocSearch.parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const[ret_others,ret_in_args,ret_returned]=await Promise.all([addTab(results.others,results.query,true),addTab(results.in_args,results.query,false),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)}}async function search(forced){const query=DocSearch.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="\""+query.original+"\" Search - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));await showResults(await docSearch.execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}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)}function initSearch(searchIndx){rawSearchIndex=searchIndx;if(typeof window!=="undefined"){docSearch=new DocSearch(rawSearchIndex,ROOT_PATH,searchState);registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}else if(typeof exports!=="undefined"){docSearch=new DocSearch(rawSearchIndex,ROOT_PATH,searchState);exports.docSearch=docSearch;exports.parseQuery=DocSearch.parseQuery}}if(typeof exports!=="undefined"){exports.initSearch=initSearch}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file +
                                `);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""}async 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=DocSearch.parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const[ret_others,ret_in_args,ret_returned]=await Promise.all([addTab(results.others,results.query,true),addTab(results.in_args,results.query,false),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;if(searchState.rustdocToolbar){search.querySelector(".main-heading").appendChild(searchState.rustdocToolbar)}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)}}async function search(forced){const query=DocSearch.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="\""+query.original+"\" Search - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));await showResults(await docSearch.execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}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)}function initSearch(searchIndx){rawSearchIndex=searchIndx;if(typeof window!=="undefined"){docSearch=new DocSearch(rawSearchIndex,ROOT_PATH,searchState);registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}else if(typeof exports!=="undefined"){docSearch=new DocSearch(rawSearchIndex,ROOT_PATH,searchState);exports.docSearch=docSearch;exports.parseQuery=DocSearch.parseQuery}}if(typeof exports!=="undefined"){exports.initSearch=initSearch}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/static.files/settings-7e3bb6c46e92e77c.js b/static.files/settings-805db61a62df4bd2.js similarity index 85% rename from static.files/settings-7e3bb6c46e92e77c.js rename to static.files/settings-805db61a62df4bd2.js index 049ee8374..4a30479d9 100644 --- a/static.files/settings-7e3bb6c46e92e77c.js +++ b/static.files/settings-805db61a62df4bd2.js @@ -14,4 +14,4 @@ \ ${setting_name}\ \ -
                                `}}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":"Hide table of contents","js_name":"hide-toc","default":false,},{"name":"Hide module navigation","js_name":"hide-modnav","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 +
                                `}}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":"Hide table of contents","js_name":"hide-toc","default":false,},{"name":"Hide module navigation","js_name":"hide-modnav","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){if(!getHelpButton().contains(document.activeElement)&&!getHelpButton().contains(event.relatedTarget)&&!getSettingsButton().contains(document.activeElement)&&!getSettingsButton().contains(event.relatedTarget)){window.hidePopoverMenus()}}if(!isSettingsPage){const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=event=>{if(settingsMenu.contains(event.target)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/static.files/storage-29b1d5a9048d38fe.js b/static.files/storage-1d39b6787ed640ff.js similarity index 89% rename from static.files/storage-29b1d5a9048d38fe.js rename to static.files/storage-1d39b6787ed640ff.js index 688214da8..5aac776b4 100644 --- a/static.files/storage-29b1d5a9048d38fe.js +++ b/static.files/storage-1d39b6787ed640ff.js @@ -12,13 +12,12 @@ spellcheck="false" placeholder="Type ‘S’ or ‘/’ to search, ‘?’ for more options…" type="search"> -
                                - ? -
                                - - `}}window.customElements.define("rustdoc-search",RustdocSearchElement) \ No newline at end of file + `}}window.customElements.define("rustdoc-search",RustdocSearchElement);class RustdocToolbarElement extends HTMLElement{constructor(){super()}connectedCallback(){if(this.firstElementChild){return}const rootPath=getVar("root-path");this.innerHTML=` +
                                + Settings +
                                +
                                + Help +
                                + `}}window.customElements.define("rustdoc-toolbar",RustdocToolbarElement) \ No newline at end of file