From 6178e07787d54c894544b9b4518e3c601f41e9a9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:56:23 +0000 Subject: [PATCH] Deploy documentation for main to GitHub pages --- main/dfw/all.html | 2 +- main/dfw/errors/enum.DFWError.html | 50 ++++---- main/dfw/errors/index.html | 2 +- main/dfw/errors/type.Result.html | 4 +- main/dfw/index.html | 3 +- main/dfw/iptables/enum.IptablesRule.html | 32 ++--- .../enum.IptablesRuleDiscriminants.html | 44 +++---- main/dfw/iptables/enum.PolicyOrRule.html | 56 ++++----- main/dfw/iptables/index.html | 2 +- main/dfw/iptables/struct.Iptables.html | 80 ++++++------- main/dfw/iptables/types/index.html | 2 +- main/dfw/iptables/types/struct.Defaults.html | 52 ++++---- .../iptables/types/struct.Initialization.html | 56 ++++----- main/dfw/nftables/enum.Family.html | 34 +++--- main/dfw/nftables/enum.Hook.html | 34 +++--- main/dfw/nftables/enum.Type.html | 34 +++--- main/dfw/nftables/index.html | 2 +- main/dfw/nftables/struct.Nftables.html | 82 ++++++------- main/dfw/nftables/types/index.html | 2 +- main/dfw/nftables/types/struct.Defaults.html | 56 ++++----- .../nftables/types/struct.Initialization.html | 52 ++++---- main/dfw/nftables/types/struct.Table.html | 60 +++++----- main/dfw/process/enum.ContainerFilter.html | 44 +++---- main/dfw/process/index.html | 2 +- main/dfw/process/struct.ProcessContext.html | 34 +++--- .../dfw/process/struct.ProcessingOptions.html | 44 +++---- main/dfw/process/trait.Process.html | 12 +- main/dfw/trait.FirewallBackend.html | 14 +-- main/dfw/types/enum.ChainPolicy.html | 56 ++++----- .../types/enum.ExposePortBuilderError.html | 54 ++++----- main/dfw/types/enum.RuleVerdict.html | 56 ++++----- main/dfw/types/index.html | 2 +- main/dfw/types/struct.ContainerDNAT.html | 64 +++++----- main/dfw/types/struct.ContainerDNATRule.html | 76 ++++++------ .../types/struct.ContainerToContainer.html | 60 +++++----- .../struct.ContainerToContainerRule.html | 72 +++++------ main/dfw/types/struct.ContainerToHost.html | 64 +++++----- .../dfw/types/struct.ContainerToHostRule.html | 68 +++++------ .../types/struct.ContainerToWiderWorld.html | 64 +++++----- .../struct.ContainerToWiderWorldRule.html | 72 +++++------ main/dfw/types/struct.DFW.html | 112 +++++++++--------- main/dfw/types/struct.ExposePort.html | 66 +++++------ main/dfw/types/struct.ExposePortBuilder.html | 52 ++++---- main/dfw/types/struct.GlobalDefaults.html | 64 +++++----- .../types/struct.WiderWorldToContainer.html | 60 +++++----- .../struct.WiderWorldToContainerRule.html | 88 +++++++------- main/dfw/util/fn.load_file.html | 2 +- main/dfw/util/fn.load_path.html | 2 +- main/dfw/util/index.html | 2 +- main/dfw/util/trait.FutureExt.html | 12 +- main/help.html | 2 +- main/implementors/core/clone/trait.Clone.js | 3 - main/implementors/core/cmp/trait.Eq.js | 3 - main/implementors/core/cmp/trait.PartialEq.js | 3 - main/implementors/core/convert/trait.From.js | 3 - .../core/default/trait.Default.js | 3 - main/implementors/core/fmt/trait.Debug.js | 3 - main/implementors/core/fmt/trait.Display.js | 3 - main/implementors/core/hash/trait.Hash.js | 3 - main/implementors/core/marker/trait.Copy.js | 3 - .../core/marker/trait.StructuralEq.js | 3 - .../core/marker/trait.StructuralPartialEq.js | 3 - .../serde/de/trait.Deserialize.js | 3 - main/search-index.js | 2 +- main/settings.html | 2 +- main/src/dfw/de.rs.html | 2 +- main/src/dfw/errors.rs.html | 2 +- main/src/dfw/iptables/mod.rs.html | 2 +- main/src/dfw/iptables/process.rs.html | 2 +- main/src/dfw/iptables/rule.rs.html | 2 +- main/src/dfw/iptables/types.rs.html | 2 +- main/src/dfw/lib.rs.html | 2 +- main/src/dfw/nftables/mod.rs.html | 2 +- main/src/dfw/nftables/process.rs.html | 2 +- main/src/dfw/nftables/rule.rs.html | 2 +- main/src/dfw/nftables/types.rs.html | 2 +- main/src/dfw/process.rs.html | 2 +- main/src/dfw/types.rs.html | 2 +- main/src/dfw/util.rs.html | 2 +- main/static.files/main-9dd44ab47b99a0fb.js | 12 ++ main/static.files/main-c5bd66d33317d69f.js | 12 -- ...bf86c.css => rustdoc-9ee3a5e31a2afa3e.css} | 4 +- ...9f5f14a8.js => search-8fbf244ebcf71464.js} | 4 +- main/trait.impl/core/clone/trait.Clone.js | 3 + main/trait.impl/core/cmp/trait.Eq.js | 3 + main/trait.impl/core/cmp/trait.PartialEq.js | 3 + main/trait.impl/core/convert/trait.From.js | 3 + .../core/convert/trait.TryFrom.js | 2 +- main/trait.impl/core/default/trait.Default.js | 3 + .../core/error/trait.Error.js | 2 +- main/trait.impl/core/fmt/trait.Debug.js | 3 + main/trait.impl/core/fmt/trait.Display.js | 3 + main/trait.impl/core/hash/trait.Hash.js | 3 + main/trait.impl/core/marker/trait.Copy.js | 3 + .../core/marker/trait.Freeze.js | 0 .../core/marker/trait.Send.js | 2 +- .../core/marker/trait.StructuralEq.js | 3 + .../core/marker/trait.StructuralPartialEq.js | 3 + .../core/marker/trait.Sync.js | 2 +- .../core/marker/trait.Unpin.js | 2 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 2 +- .../panic/unwind_safe/trait.UnwindSafe.js | 2 +- .../core/str/traits/trait.FromStr.js | 2 +- .../dfw/process/trait.Process.js | 0 .../dfw/trait.FirewallBackend.js | 0 .../dfw/util/trait.FutureExt.js | 0 .../failure/trait.Fail.js | 0 main/trait.impl/serde/de/trait.Deserialize.js | 3 + .../slog/trait.Value.js | 0 main/type.impl/core/result/enum.Result.js | 3 + 110 files changed, 1110 insertions(+), 1106 deletions(-) delete mode 100644 main/implementors/core/clone/trait.Clone.js delete mode 100644 main/implementors/core/cmp/trait.Eq.js delete mode 100644 main/implementors/core/cmp/trait.PartialEq.js delete mode 100644 main/implementors/core/convert/trait.From.js delete mode 100644 main/implementors/core/default/trait.Default.js delete mode 100644 main/implementors/core/fmt/trait.Debug.js delete mode 100644 main/implementors/core/fmt/trait.Display.js delete mode 100644 main/implementors/core/hash/trait.Hash.js delete mode 100644 main/implementors/core/marker/trait.Copy.js delete mode 100644 main/implementors/core/marker/trait.StructuralEq.js delete mode 100644 main/implementors/core/marker/trait.StructuralPartialEq.js delete mode 100644 main/implementors/serde/de/trait.Deserialize.js create mode 100644 main/static.files/main-9dd44ab47b99a0fb.js delete mode 100644 main/static.files/main-c5bd66d33317d69f.js rename main/static.files/{rustdoc-fa3bb1812debf86c.css => rustdoc-9ee3a5e31a2afa3e.css} (71%) rename main/static.files/{search-8be46b629f5f14a8.js => search-8fbf244ebcf71464.js} (62%) create mode 100644 main/trait.impl/core/clone/trait.Clone.js create mode 100644 main/trait.impl/core/cmp/trait.Eq.js create mode 100644 main/trait.impl/core/cmp/trait.PartialEq.js create mode 100644 main/trait.impl/core/convert/trait.From.js rename main/{implementors => trait.impl}/core/convert/trait.TryFrom.js (72%) create mode 100644 main/trait.impl/core/default/trait.Default.js rename main/{implementors => trait.impl}/core/error/trait.Error.js (86%) create mode 100644 main/trait.impl/core/fmt/trait.Debug.js create mode 100644 main/trait.impl/core/fmt/trait.Display.js create mode 100644 main/trait.impl/core/hash/trait.Hash.js create mode 100644 main/trait.impl/core/marker/trait.Copy.js rename main/{implementors => trait.impl}/core/marker/trait.Freeze.js (100%) rename main/{implementors => trait.impl}/core/marker/trait.Send.js (79%) create mode 100644 main/trait.impl/core/marker/trait.StructuralEq.js create mode 100644 main/trait.impl/core/marker/trait.StructuralPartialEq.js rename main/{implementors => trait.impl}/core/marker/trait.Sync.js (79%) rename main/{implementors => trait.impl}/core/marker/trait.Unpin.js (80%) rename main/{implementors => trait.impl}/core/panic/unwind_safe/trait.RefUnwindSafe.js (81%) rename main/{implementors => trait.impl}/core/panic/unwind_safe/trait.UnwindSafe.js (82%) rename main/{implementors => trait.impl}/core/str/traits/trait.FromStr.js (60%) rename main/{implementors => trait.impl}/dfw/process/trait.Process.js (100%) rename main/{implementors => trait.impl}/dfw/trait.FirewallBackend.js (100%) rename main/{implementors => trait.impl}/dfw/util/trait.FutureExt.js (100%) rename main/{implementors => trait.impl}/failure/trait.Fail.js (100%) create mode 100644 main/trait.impl/serde/de/trait.Deserialize.js rename main/{implementors => trait.impl}/slog/trait.Value.js (100%) create mode 100644 main/type.impl/core/result/enum.Result.js diff --git a/main/dfw/all.html b/main/dfw/all.html index 3d24b8b7..78de021c 100644 --- a/main/dfw/all.html +++ b/main/dfw/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

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

List of all items

Structs

Enums

Traits

Functions

Type Aliases

\ No newline at end of file diff --git a/main/dfw/errors/enum.DFWError.html b/main/dfw/errors/enum.DFWError.html index da694a92..ee01a677 100644 --- a/main/dfw/errors/enum.DFWError.html +++ b/main/dfw/errors/enum.DFWError.html @@ -1,33 +1,33 @@ -DFWError in dfw::errors - Rust

Enum dfw::errors::DFWError

source ·
pub enum DFWError {
+DFWError in dfw::errors - Rust

Enum dfw::errors::DFWError

source ·
pub enum DFWError {
     NFTablesError {
-        stdout: String,
-        stderr: String,
+        stdout: String,
+        stderr: String,
     },
     TraitMethodUnimplemented {
-        method: String,
+        method: String,
     },
-}

Variants§

§

NFTablesError

Fields

§stdout: String
§stderr: String
§

TraitMethodUnimplemented

Fields

§method: String

Trait Implementations§

source§

impl Debug for DFWError

source§

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

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

impl Display for DFWError

source§

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

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

impl Fail for DFWError

source§

fn name(&self) -> Option<&str>

Returns the “name” of the error. Read more
source§

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

Returns a reference to the underlying cause of this failure, if it -is an error that wraps other errors. Read more
source§

fn backtrace(&self) -> Option<&Backtrace>

Returns a reference to the Backtrace carried by this failure, if it +}

Variants§

§

NFTablesError

Fields

§stdout: String
§stderr: String
§

TraitMethodUnimplemented

Fields

§method: String

Trait Implementations§

source§

impl Debug for DFWError

source§

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

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

impl Display for DFWError

source§

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

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

impl Fail for DFWError

source§

fn name(&self) -> Option<&str>

Returns the “name” of the error. Read more
source§

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

Returns a reference to the underlying cause of this failure, if it +is an error that wraps other errors. Read more
source§

fn backtrace(&self) -> Option<&Backtrace>

Returns a reference to the Backtrace carried by this failure, if it carries one. Read more
§

fn context<D>(self, context: D) -> Context<D>where - D: Display + Send + Sync + 'static, - Self: Sized,

Provides context for this failure. Read more
§

fn compat(self) -> Compat<Self>where - Self: Sized,

Wraps this failure in a compatibility wrapper that implements -std::error::Error. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsFail for Twhere - T: Fail,

§

fn as_fail(&self) -> &(dyn Fail + 'static)

Converts a reference to Self into a dynamic trait object of Fail.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an + D: Display + Send + Sync + 'static, + Self: Sized,
Provides context for this failure. Read more
§

fn compat(self) -> Compat<Self>where + Self: Sized,

Wraps this failure in a compatibility wrapper that implements +std::error::Error. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for DFWError

§

impl Send for DFWError

§

impl Sync for DFWError

§

impl Unpin for DFWError

§

impl UnwindSafe for DFWError

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsFail for Twhere + T: Fail,

§

fn as_fail(&self) -> &(dyn Fail + 'static)

Converts a reference to Self into a dynamic trait object of Fail.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/errors/index.html b/main/dfw/errors/index.html index f104b884..b4c8607e 100644 --- a/main/dfw/errors/index.html +++ b/main/dfw/errors/index.html @@ -1,2 +1,2 @@ -dfw::errors - Rust

Module dfw::errors

source ·
Expand description

Errors, using failure.

+dfw::errors - Rust

Module dfw::errors

source ·
Expand description

Errors, using failure.

Enums

Type Aliases

\ No newline at end of file diff --git a/main/dfw/errors/type.Result.html b/main/dfw/errors/type.Result.html index ab7d1022..b3c52571 100644 --- a/main/dfw/errors/type.Result.html +++ b/main/dfw/errors/type.Result.html @@ -1,6 +1,6 @@ -Result in dfw::errors - Rust

Type Alias dfw::errors::Result

source ·
pub type Result<E> = Result<E, Error>;

Aliased Type§

enum Result<E> {
+Result in dfw::errors - Rust

Type Alias dfw::errors::Result

source ·
pub type Result<E> = Result<E, Error>;

Aliased Type§

enum Result<E> {
     Ok(E),
     Err(Error),
 }

Variants§

§1.0.0

Ok(E)

Contains the success value

§1.0.0

Err(Error)

Contains the error value

-
\ No newline at end of file +
\ No newline at end of file diff --git a/main/dfw/index.html b/main/dfw/index.html index a553ad7a..e1924da2 100644 --- a/main/dfw/index.html +++ b/main/dfw/index.html @@ -1,4 +1,5 @@ -dfw - Rust

Crate dfw

source ·
Expand description

DFW - Docker Firewall Framework in Rust

+dfw - Rust

Crate dfw

source ·
Expand description

DFW - Docker Firewall Framework in Rust

For detailed introductions, see the README.

License

DFW is licensed under either of

diff --git a/main/dfw/iptables/enum.IptablesRule.html b/main/dfw/iptables/enum.IptablesRule.html index 144f1e76..2e69de76 100644 --- a/main/dfw/iptables/enum.IptablesRule.html +++ b/main/dfw/iptables/enum.IptablesRule.html @@ -1,24 +1,24 @@ -IptablesRule in dfw::iptables - Rust
pub enum IptablesRule {
+IptablesRule in dfw::iptables - Rust
pub enum IptablesRule {
     V4(PolicyOrRule),
     V6(PolicyOrRule),
 }
Expand description

Rule representation for iptables firewall backend.

Variants§

§

V4(PolicyOrRule)

IPv4

§

V6(PolicyOrRule)

IPv6

-

Trait Implementations§

source§

impl Clone for IptablesRule

source§

fn clone(&self) -> IptablesRule

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 IptablesRule

source§

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

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

impl<'_enum> From<&'_enum IptablesRule> for IptablesRuleDiscriminants

source§

fn from(val: &'_enum IptablesRule) -> IptablesRuleDiscriminants

Converts to this type from the input type.
source§

impl From<IptablesRule> for IptablesRuleDiscriminants

source§

fn from(val: IptablesRule) -> IptablesRuleDiscriminants

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for IptablesRule

source§

fn clone(&self) -> IptablesRule

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 IptablesRule

source§

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

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

impl<'_enum> From<&'_enum IptablesRule> for IptablesRuleDiscriminants

source§

fn from(val: &'_enum IptablesRule) -> IptablesRuleDiscriminants

Converts to this type from the input type.
source§

impl From<IptablesRule> for IptablesRuleDiscriminants

source§

fn from(val: IptablesRule) -> IptablesRuleDiscriminants

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/iptables/enum.IptablesRuleDiscriminants.html b/main/dfw/iptables/enum.IptablesRuleDiscriminants.html index f6fb977d..abf60099 100644 --- a/main/dfw/iptables/enum.IptablesRuleDiscriminants.html +++ b/main/dfw/iptables/enum.IptablesRuleDiscriminants.html @@ -1,30 +1,30 @@ -IptablesRuleDiscriminants in dfw::iptables - Rust
pub enum IptablesRuleDiscriminants {
+IptablesRuleDiscriminants in dfw::iptables - Rust
pub enum IptablesRuleDiscriminants {
     V4,
     V6,
 }
Expand description

Auto-generated discriminant enum variants

Variants§

§

V4

IPv4

§

V6

IPv6

-

Trait Implementations§

source§

impl Clone for IptablesRuleDiscriminants

source§

fn clone(&self) -> IptablesRuleDiscriminants

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 IptablesRuleDiscriminants

source§

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

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

impl<'_enum> From<&'_enum IptablesRule> for IptablesRuleDiscriminants

source§

fn from(val: &'_enum IptablesRule) -> IptablesRuleDiscriminants

Converts to this type from the input type.
source§

impl From<IptablesRule> for IptablesRuleDiscriminants

source§

fn from(val: IptablesRule) -> IptablesRuleDiscriminants

Converts to this type from the input type.
source§

impl PartialEq<IptablesRuleDiscriminants> for IptablesRuleDiscriminants

source§

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

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

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

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

impl Copy for IptablesRuleDiscriminants

source§

impl Eq for IptablesRuleDiscriminants

source§

impl StructuralEq for IptablesRuleDiscriminants

source§

impl StructuralPartialEq for IptablesRuleDiscriminants

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for IptablesRuleDiscriminants

source§

fn clone(&self) -> IptablesRuleDiscriminants

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 IptablesRuleDiscriminants

source§

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

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

impl<'_enum> From<&'_enum IptablesRule> for IptablesRuleDiscriminants

source§

fn from(val: &'_enum IptablesRule) -> IptablesRuleDiscriminants

Converts to this type from the input type.
source§

impl From<IptablesRule> for IptablesRuleDiscriminants

source§

fn from(val: IptablesRule) -> IptablesRuleDiscriminants

Converts to this type from the input type.
source§

impl PartialEq for IptablesRuleDiscriminants

source§

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

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

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

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

impl Copy for IptablesRuleDiscriminants

source§

impl Eq for IptablesRuleDiscriminants

source§

impl StructuralEq for IptablesRuleDiscriminants

source§

impl StructuralPartialEq for IptablesRuleDiscriminants

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/iptables/enum.PolicyOrRule.html b/main/dfw/iptables/enum.PolicyOrRule.html index 457c4bec..24a58ff0 100644 --- a/main/dfw/iptables/enum.PolicyOrRule.html +++ b/main/dfw/iptables/enum.PolicyOrRule.html @@ -1,38 +1,38 @@ -PolicyOrRule in dfw::iptables - Rust
pub enum PolicyOrRule {
+PolicyOrRule in dfw::iptables - Rust
pub enum PolicyOrRule {
     Policy {
-        table: String,
-        chain: String,
-        policy: String,
+        table: String,
+        chain: String,
+        policy: String,
     },
     Rule {
-        table: String,
-        chain: String,
-        value: String,
+        table: String,
+        chain: String,
+        value: String,
     },
 }
Expand description

Policy or rule representation for iptables firewall backend.

-

Variants§

§

Policy

Fields

§table: String

Associated iptables table.

-
§chain: String

Associated iptables chain.

-
§policy: String

Policy to set.

+

Variants§

§

Policy

Fields

§table: String

Associated iptables table.

+
§chain: String

Associated iptables chain.

+
§policy: String

Policy to set.

Rule specifying a chain policy.

-
§

Rule

Fields

§table: String

Associated iptables table.

-
§chain: String

Associated iptables chain.

-
§value: String

The rule itself in valid iptables syntax.

+
§

Rule

Fields

§table: String

Associated iptables table.

+
§chain: String

Associated iptables chain.

+
§value: String

The rule itself in valid iptables syntax.

Actual filter rule that will be added to a chain.

-

Trait Implementations§

source§

impl Clone for PolicyOrRule

source§

fn clone(&self) -> PolicyOrRule

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 PolicyOrRule

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for PolicyOrRule

source§

fn clone(&self) -> PolicyOrRule

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 PolicyOrRule

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/iptables/index.html b/main/dfw/iptables/index.html index 8bed751e..92c62d6e 100644 --- a/main/dfw/iptables/index.html +++ b/main/dfw/iptables/index.html @@ -1,2 +1,2 @@ -dfw::iptables - Rust

Module dfw::iptables

source ·
Expand description

This module implements the iptables backend for DFW.

+dfw::iptables - Rust

Module dfw::iptables

source ·
Expand description

This module implements the iptables backend for DFW.

Modules

  • The types in this module make up the structure of the iptables backend-specific configurations.

Structs

  • Marker struct to implement iptables as a firewall backend.

Enums

\ No newline at end of file diff --git a/main/dfw/iptables/struct.Iptables.html b/main/dfw/iptables/struct.Iptables.html index 5e18181e..c68caa88 100644 --- a/main/dfw/iptables/struct.Iptables.html +++ b/main/dfw/iptables/struct.Iptables.html @@ -1,74 +1,74 @@ -Iptables in dfw::iptables - Rust

Struct dfw::iptables::Iptables

source ·
pub struct Iptables;
Expand description

Marker struct to implement iptables as a firewall backend.

+Iptables in dfw::iptables - Rust

Struct dfw::iptables::Iptables

source ·
pub struct Iptables;
Expand description

Marker struct to implement iptables as a firewall backend.

Implementations§

source§

impl Iptables

source

pub fn get_rules( - rules: Vec<IptablesRule>, + rules: Vec<IptablesRule>, rule_discriminant: IptablesRuleDiscriminants -) -> Vec<String>

Retrieve the current text that would be passed to iptables-restore as a vector of lines.

-

Trait Implementations§

source§

impl Debug for Iptables

source§

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

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

impl FirewallBackend for Iptables

§

type Rule = IptablesRule

Associated type identifying the rule-type returned.
§

type Defaults = Defaults

Associated type representing the firewall backend defaults/configuration.
source§

fn apply(rules: Vec<Self::Rule>, ctx: &ProcessContext<'_, Self>) -> Result<()>

Apply the processed rules.
source§

impl Process<Iptables> for <Iptables as FirewallBackend>::Defaults

source§

fn process( +) -> Vec<String>

Retrieve the current text that would be passed to iptables-restore as a vector of lines.

+

Trait Implementations§

source§

impl Debug for Iptables

source§

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

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

impl FirewallBackend for Iptables

§

type Rule = IptablesRule

Associated type identifying the rule-type returned.
§

type Defaults = Defaults

Associated type representing the firewall backend defaults/configuration.
source§

fn apply(rules: Vec<Self::Rule>, ctx: &ProcessContext<'_, Self>) -> Result<()>

Apply the processed rules.
source§

impl Process<Iptables> for <Iptables as FirewallBackend>::Defaults

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for ContainerDNAT

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for ContainerDNAT

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Iptables> for ContainerDNATRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for ContainerToContainer

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for ContainerToContainer

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for ContainerToContainerRule

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for ContainerToContainerRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for ContainerToHost

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for ContainerToHost

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for ContainerToHostRule

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for ContainerToHostRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for ContainerToWiderWorld

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for ContainerToWiderWorld

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for ContainerToWiderWorldRule

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for ContainerToWiderWorldRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for DFW<Iptables>

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for DFW<Iptables>

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Iptables> for GlobalDefaults

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Iptables> for WiderWorldToContainer

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Iptables> for WiderWorldToContainerRule

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Iptables> for WiderWorldToContainerRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/iptables/types/index.html b/main/dfw/iptables/types/index.html index f86f971c..6a904b14 100644 --- a/main/dfw/iptables/types/index.html +++ b/main/dfw/iptables/types/index.html @@ -1,4 +1,4 @@ -dfw::iptables::types - Rust

Module dfw::iptables::types

source ·
Expand description

The types in this module make up the structure of the iptables backend-specific configurations.

+dfw::iptables::types - Rust

Module dfw::iptables::types

source ·
Expand description

The types in this module make up the structure of the iptables backend-specific configurations.

Example

[backend_defaults.initialization.v4]
 filter = [
diff --git a/main/dfw/iptables/types/struct.Defaults.html b/main/dfw/iptables/types/struct.Defaults.html
index 1bba14cd..e2cc53ba 100644
--- a/main/dfw/iptables/types/struct.Defaults.html
+++ b/main/dfw/iptables/types/struct.Defaults.html
@@ -1,7 +1,7 @@
-Defaults in dfw::iptables::types - Rust

Fields§

§initialization: Option<Initialization>

The optional initialization section.

Example

[initialization.v4]
 filter = [
@@ -13,29 +13,29 @@ 

Example

nat = [ "-P PREROUTING DROP", ]
-

Trait Implementations§

source§

impl Clone for Defaults

source§

fn clone(&self) -> Defaults

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 Defaults

source§

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

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

impl<'de> Deserialize<'de> for Defaults

source§

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

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

impl PartialEq<Defaults> for Defaults

source§

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

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

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

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

impl Eq for Defaults

source§

impl StructuralEq for Defaults

source§

impl StructuralPartialEq for Defaults

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for Defaults

source§

fn clone(&self) -> Defaults

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 Defaults

source§

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

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

impl<'de> Deserialize<'de> for Defaults

source§

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

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

impl PartialEq for Defaults

source§

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

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

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

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

impl Eq for Defaults

source§

impl StructuralEq for Defaults

source§

impl StructuralPartialEq for Defaults

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

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

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/iptables/types/struct.Initialization.html b/main/dfw/iptables/types/struct.Initialization.html index ce510d7b..6a9968c0 100644 --- a/main/dfw/iptables/types/struct.Initialization.html +++ b/main/dfw/iptables/types/struct.Initialization.html @@ -1,6 +1,6 @@ -Initialization in dfw::iptables::types - Rust
pub struct Initialization {
-    pub v4: Option<HashMap<String, Vec<String>>>,
-    pub v6: Option<HashMap<String, Vec<String>>>,
+Initialization in dfw::iptables::types - Rust
pub struct Initialization {
+    pub v4: Option<HashMap<String, Vec<String>>>,
+    pub v6: Option<HashMap<String, Vec<String>>>,
 }
Expand description

The initialization section allows you to add custom rules to any table in both iptables and ip6tables.

Example

@@ -14,7 +14,7 @@

Example

nat = [ "-P PREROUTING DROP", ]
-

Fields§

§v4: Option<HashMap<String, Vec<String>>>

Initialization rules for iptables (IPv4). Expects a map where the key is a specific table +

Fields§

§v4: Option<HashMap<String, Vec<String>>>

Initialization rules for iptables (IPv4). Expects a map where the key is a specific table and the value is a list of rules.

Example

[initialization.v4]
@@ -22,36 +22,36 @@ 

Example

"-P INPUT DROP", "-F INPUT", ]
-
§v6: Option<HashMap<String, Vec<String>>>

Initialization rules for ip6tables (IPv6). Expects a map where the key is a specific table +

§v6: Option<HashMap<String, Vec<String>>>

Initialization rules for ip6tables (IPv6). Expects a map where the key is a specific table and the value is a list of rules.

Example

[initialization.v6]
 nat = [
     "-P PREROUTING DROP",
 ]
-

Trait Implementations§

source§

impl Clone for Initialization

source§

fn clone(&self) -> Initialization

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 Initialization

source§

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

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

impl<'de> Deserialize<'de> for Initialization

source§

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

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

impl PartialEq<Initialization> for Initialization

source§

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

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

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

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

impl Eq for Initialization

source§

impl StructuralEq for Initialization

source§

impl StructuralPartialEq for Initialization

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for Initialization

source§

fn clone(&self) -> Initialization

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 Initialization

source§

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

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

impl<'de> Deserialize<'de> for Initialization

source§

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

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

impl PartialEq for Initialization

source§

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

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

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

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

impl Eq for Initialization

source§

impl StructuralEq for Initialization

source§

impl StructuralPartialEq for Initialization

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

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

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/nftables/enum.Family.html b/main/dfw/nftables/enum.Family.html index feb4f790..063a7587 100644 --- a/main/dfw/nftables/enum.Family.html +++ b/main/dfw/nftables/enum.Family.html @@ -1,4 +1,4 @@ -Family in dfw::nftables - Rust

Trait Implementations§

source§

impl Clone for Family

source§

fn clone(&self) -> Family

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 Family

source§

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

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

impl Display for Family

source§

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

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

impl Copy for Family

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for Family

source§

fn clone(&self) -> Family

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 Family

source§

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

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

impl Display for Family

source§

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

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

impl Copy for Family

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/nftables/enum.Hook.html b/main/dfw/nftables/enum.Hook.html index 5a361d8d..1b6cb4c1 100644 --- a/main/dfw/nftables/enum.Hook.html +++ b/main/dfw/nftables/enum.Hook.html @@ -1,4 +1,4 @@ -Hook in dfw::nftables - Rust

Enum dfw::nftables::Hook

source ·
pub enum Hook {
+Hook in dfw::nftables - Rust

Enum dfw::nftables::Hook

source ·
pub enum Hook {
     Ingress,
     Prerouting,
     Input,
@@ -25,22 +25,22 @@ 

Attribution

§

Forward

Forward allows traffic-filtering for packets that were not routed to the local system.

§

Output

Output allows traffic-filtering for packets leaving the local system.

§

Postrouting

Postrouting allows traffic-filtering for already routed packets leaving the local system.

-

Trait Implementations§

source§

impl Clone for Hook

source§

fn clone(&self) -> Hook

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 Hook

source§

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

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

impl Display for Hook

source§

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

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

impl Copy for Hook

Auto Trait Implementations§

§

impl RefUnwindSafe for Hook

§

impl Send for Hook

§

impl Sync for Hook

§

impl Unpin for Hook

§

impl UnwindSafe for Hook

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for Hook

source§

fn clone(&self) -> Hook

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 Hook

source§

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

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

impl Display for Hook

source§

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

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

impl Copy for Hook

Auto Trait Implementations§

§

impl RefUnwindSafe for Hook

§

impl Send for Hook

§

impl Sync for Hook

§

impl Unpin for Hook

§

impl UnwindSafe for Hook

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/nftables/enum.Type.html b/main/dfw/nftables/enum.Type.html index 8f85d0bc..73726997 100644 --- a/main/dfw/nftables/enum.Type.html +++ b/main/dfw/nftables/enum.Type.html @@ -1,4 +1,4 @@ -Type in dfw::nftables - Rust

Trait Implementations§

source§

impl Clone for Type

source§

fn clone(&self) -> Type

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 Type

source§

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

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

impl Display for Type

source§

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

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

impl Copy for Type

Auto Trait Implementations§

§

impl RefUnwindSafe for Type

§

impl Send for Type

§

impl Sync for Type

§

impl Unpin for Type

§

impl UnwindSafe for Type

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for Type

source§

fn clone(&self) -> Type

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 Type

source§

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

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

impl Display for Type

source§

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

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

impl Copy for Type

Auto Trait Implementations§

§

impl RefUnwindSafe for Type

§

impl Send for Type

§

impl Sync for Type

§

impl Unpin for Type

§

impl UnwindSafe for Type

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/nftables/index.html b/main/dfw/nftables/index.html index f5e7603b..6132b115 100644 --- a/main/dfw/nftables/index.html +++ b/main/dfw/nftables/index.html @@ -1,2 +1,2 @@ -dfw::nftables - Rust

Module dfw::nftables

source ·
Expand description

This module implements the nftables backend for DFW.

+dfw::nftables - Rust

Module dfw::nftables

source ·
Expand description

This module implements the nftables backend for DFW.

Modules

  • The types in this module make up the structure of the nftables backend-specific configurations.

Structs

  • Marker struct to implement nftables as a firewall backend.

Enums

  • Representation of nftables table-families.
  • Representation of nftables chain hooks.
  • Representation of nftables chain-types.
\ No newline at end of file diff --git a/main/dfw/nftables/struct.Nftables.html b/main/dfw/nftables/struct.Nftables.html index 21cbf389..9006f2bb 100644 --- a/main/dfw/nftables/struct.Nftables.html +++ b/main/dfw/nftables/struct.Nftables.html @@ -1,73 +1,73 @@ -Nftables in dfw::nftables - Rust

Struct dfw::nftables::Nftables

source ·
pub struct Nftables;
Expand description

Marker struct to implement nftables as a firewall backend.

-

Trait Implementations§

source§

impl Debug for Nftables

source§

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

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

impl FirewallBackend for Nftables

§

type Rule = String

Associated type identifying the rule-type returned.
§

type Defaults = Defaults

Associated type representing the firewall backend defaults/configuration.
source§

fn apply( - rules: Vec<Self::Rule>, +Nftables in dfw::nftables - Rust

Struct dfw::nftables::Nftables

source ·
pub struct Nftables;
Expand description

Marker struct to implement nftables as a firewall backend.

+

Trait Implementations§

source§

impl Debug for Nftables

source§

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

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

impl FirewallBackend for Nftables

§

type Rule = String

Associated type identifying the rule-type returned.
§

type Defaults = Defaults

Associated type representing the firewall backend defaults/configuration.
source§

fn apply( + rules: Vec<Self::Rule>, ctx: &ProcessContext<'_, Nftables> -) -> Result<()>

Apply the processed rules.
source§

impl Process<Nftables> for <Nftables as FirewallBackend>::Defaults

source§

fn process( +) -> Result<()>

Apply the processed rules.
source§

impl Process<Nftables> for <Nftables as FirewallBackend>::Defaults

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerDNAT

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerDNAT

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for ContainerDNATRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerToContainer

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerToContainer

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerToContainerRule

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerToContainerRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerToHost

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerToHost

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerToHostRule

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerToHostRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerToWiderWorld

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerToWiderWorld

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerToWiderWorldRule

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerToWiderWorldRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for DFW<Nftables>

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for GlobalDefaults

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for GlobalDefaults

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for WiderWorldToContainer

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for WiderWorldToContainer

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for WiderWorldToContainerRule

source§

fn process( +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for WiderWorldToContainerRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/nftables/types/index.html b/main/dfw/nftables/types/index.html index b91d63a0..2637b055 100644 --- a/main/dfw/nftables/types/index.html +++ b/main/dfw/nftables/types/index.html @@ -1,4 +1,4 @@ -dfw::nftables::types - Rust

Module dfw::nftables::types

source ·
Expand description

The types in this module make up the structure of the nftables backend-specific configurations.

+dfw::nftables::types - Rust

Module dfw::nftables::types

source ·
Expand description

The types in this module make up the structure of the nftables backend-specific configurations.

Example

[backend_defaults]
 custom_tables = { name = "filter", chains = ["input", "forward"]}
diff --git a/main/dfw/nftables/types/struct.Defaults.html b/main/dfw/nftables/types/struct.Defaults.html
index bf79d2f1..7a0a3e2c 100644
--- a/main/dfw/nftables/types/struct.Defaults.html
+++ b/main/dfw/nftables/types/struct.Defaults.html
@@ -1,8 +1,8 @@
-Defaults in dfw::nftables::types - Rust

Struct dfw::nftables::types::Defaults

source ·
pub struct Defaults {
-    pub custom_tables: Option<Vec<Table>>,
-    pub initialization: Option<Initialization>,
+Defaults in dfw::nftables::types - Rust

Struct dfw::nftables::types::Defaults

source ·
pub struct Defaults {
+    pub custom_tables: Option<Vec<Table>>,
+    pub initialization: Option<Initialization>,
 }
Expand description

The defaults/configuration for the nftables backend.

-

Fields§

§custom_tables: Option<Vec<Table>>

Specify the names of custom nft-tables that should be partially managed.

+

Fields§

§custom_tables: Option<Vec<Table>>

Specify the names of custom nft-tables that should be partially managed.

Explanation

If you want to use or already use an existing nftables table to manage rules independently from DFW, it is important that two conditions are met:

@@ -19,36 +19,36 @@

Example

{ name = "filter", chains = ["input", "forward"] }, { name = "custom", chains = ["input", "forward"] } ]
-
§initialization: Option<Initialization>

The optional initialization section.

+
§initialization: Option<Initialization>

The optional initialization section.

Example

[initialization]
 rules = [
     "add table inet custom",
     "flush table inet custom",
 ]
-

Trait Implementations§

source§

impl Clone for Defaults

source§

fn clone(&self) -> Defaults

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 Defaults

source§

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

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

impl Default for Defaults

source§

fn default() -> Defaults

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

impl<'de> Deserialize<'de> for Defaults

source§

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

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

impl PartialEq<Defaults> for Defaults

source§

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

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

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

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

impl Eq for Defaults

source§

impl StructuralEq for Defaults

source§

impl StructuralPartialEq for Defaults

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for Defaults

source§

fn clone(&self) -> Defaults

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 Defaults

source§

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

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

impl Default for Defaults

source§

fn default() -> Defaults

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

impl<'de> Deserialize<'de> for Defaults

source§

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

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

impl PartialEq for Defaults

source§

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

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

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

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

impl Eq for Defaults

source§

impl StructuralEq for Defaults

source§

impl StructuralPartialEq for Defaults

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

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

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/nftables/types/struct.Initialization.html b/main/dfw/nftables/types/struct.Initialization.html index 25b698d9..29978b87 100644 --- a/main/dfw/nftables/types/struct.Initialization.html +++ b/main/dfw/nftables/types/struct.Initialization.html @@ -1,36 +1,36 @@ -Initialization in dfw::nftables::types - Rust
pub struct Initialization {
-    pub rules: Option<Vec<String>>,
+Initialization in dfw::nftables::types - Rust
pub struct Initialization {
+    pub rules: Option<Vec<String>>,
 }
Expand description

The initialization section allows you to execute any commands against nftables.

-

Fields§

§rules: Option<Vec<String>>

Initialization rules for nftables

+

Fields§

§rules: Option<Vec<String>>

Initialization rules for nftables

Example

[initialization]
 rules = [
     "add table inet custom",
     "flush table inet custom",
 ]
-

Trait Implementations§

source§

impl Clone for Initialization

source§

fn clone(&self) -> Initialization

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 Initialization

source§

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

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

impl Default for Initialization

source§

fn default() -> Initialization

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

impl<'de> Deserialize<'de> for Initialization

source§

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

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

impl PartialEq<Initialization> for Initialization

source§

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

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

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

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

impl Eq for Initialization

source§

impl StructuralEq for Initialization

source§

impl StructuralPartialEq for Initialization

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for Initialization

source§

fn clone(&self) -> Initialization

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 Initialization

source§

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

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

impl Default for Initialization

source§

fn default() -> Initialization

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

impl<'de> Deserialize<'de> for Initialization

source§

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

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

impl PartialEq for Initialization

source§

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

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

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

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

impl Eq for Initialization

source§

impl StructuralEq for Initialization

source§

impl StructuralPartialEq for Initialization

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

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

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/nftables/types/struct.Table.html b/main/dfw/nftables/types/struct.Table.html index e7ede3ac..33022b43 100644 --- a/main/dfw/nftables/types/struct.Table.html +++ b/main/dfw/nftables/types/struct.Table.html @@ -1,35 +1,35 @@ -Table in dfw::nftables::types - Rust

Struct dfw::nftables::types::Table

source ·
pub struct Table {
-    pub name: String,
-    pub chains: Vec<String>,
+Table in dfw::nftables::types - Rust

Struct dfw::nftables::types::Table

source ·
pub struct Table {
+    pub name: String,
+    pub chains: Vec<String>,
 }
Expand description

Reference to an nftables table, specifically to the input- and forward-chains within it.

This is used by DFW when managing other tables is required.

-

Fields§

§name: String

Name of the custom table.

-
§chains: Vec<String>

Names of the input and forward chains defined within the custom table.

-

Trait Implementations§

source§

impl Clone for Table

source§

fn clone(&self) -> Table

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 Table

source§

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

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

impl Default for Table

source§

fn default() -> Table

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

impl<'de> Deserialize<'de> for Table

source§

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

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

impl Hash for Table

source§

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

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

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

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

impl PartialEq<Table> for Table

source§

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

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

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

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

impl Eq for Table

source§

impl StructuralEq for Table

source§

impl StructuralPartialEq for Table

Auto Trait Implementations§

§

impl RefUnwindSafe for Table

§

impl Send for Table

§

impl Sync for Table

§

impl Unpin for Table

§

impl UnwindSafe for Table

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

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

Instruments this type with the provided [Span], returning an +

Fields§

§name: String

Name of the custom table.

+
§chains: Vec<String>

Names of the input and forward chains defined within the custom table.

+

Trait Implementations§

source§

impl Clone for Table

source§

fn clone(&self) -> Table

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 Table

source§

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

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

impl Default for Table

source§

fn default() -> Table

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

impl<'de> Deserialize<'de> for Table

source§

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

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

impl Hash for Table

source§

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

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

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

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

impl PartialEq for Table

source§

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

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

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

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

impl Eq for Table

source§

impl StructuralEq for Table

source§

impl StructuralPartialEq for Table

Auto Trait Implementations§

§

impl RefUnwindSafe for Table

§

impl Send for Table

§

impl Sync for Table

§

impl Unpin for Table

§

impl UnwindSafe for Table

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/process/enum.ContainerFilter.html b/main/dfw/process/enum.ContainerFilter.html index 8f150770..67d1b4a5 100644 --- a/main/dfw/process/enum.ContainerFilter.html +++ b/main/dfw/process/enum.ContainerFilter.html @@ -1,30 +1,30 @@ -ContainerFilter in dfw::process - Rust
pub enum ContainerFilter {
+ContainerFilter in dfw::process - Rust
pub enum ContainerFilter {
     All,
     Running,
 }
Expand description

Option to filter the containers to be processed

Variants§

§

All

Process all containers, i.e. don’t filter.

§

Running

Only process running containers.

-

Trait Implementations§

source§

impl Clone for ContainerFilter

source§

fn clone(&self) -> ContainerFilter

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 ContainerFilter

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq<ContainerFilter> for ContainerFilter

source§

fn eq(&self, other: &ContainerFilter) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for ContainerFilter

source§

impl StructuralEq for ContainerFilter

source§

impl StructuralPartialEq for ContainerFilter

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for ContainerFilter

source§

fn clone(&self) -> ContainerFilter

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 ContainerFilter

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for ContainerFilter

source§

fn eq(&self, other: &ContainerFilter) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Eq for ContainerFilter

source§

impl StructuralEq for ContainerFilter

source§

impl StructuralPartialEq for ContainerFilter

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/process/index.html b/main/dfw/process/index.html index b22fdba3..6c1a3267 100644 --- a/main/dfw/process/index.html +++ b/main/dfw/process/index.html @@ -1,3 +1,3 @@ -dfw::process - Rust

Module dfw::process

source ·
Expand description

This module holds the types related to configuration processing and rule creation.

+dfw::process - Rust

Module dfw::process

source ·
Expand description

This module holds the types related to configuration processing and rule creation.

Structs

Enums

Traits

  • This trait allows a type to define its own processing rules. It is expected to return a list of rules that can be applied with nft.
\ No newline at end of file diff --git a/main/dfw/process/struct.ProcessContext.html b/main/dfw/process/struct.ProcessContext.html index de71d892..8ae24981 100644 --- a/main/dfw/process/struct.ProcessContext.html +++ b/main/dfw/process/struct.ProcessContext.html @@ -1,4 +1,4 @@ -ProcessContext in dfw::process - Rust

Struct dfw::process::ProcessContext

source ·
pub struct ProcessContext<'a, B>where
+ProcessContext in dfw::process - Rust

Struct dfw::process::ProcessContext

source ·
pub struct ProcessContext<'a, B>where
     B: FirewallBackend,
     DFW<B>: Process<B>,{ /* private fields */ }
Expand description

Enclosing struct to manage rule processing.

Implementations§

source§

impl<'a, B> ProcessContext<'a, B>where @@ -8,24 +8,24 @@ dfw: &'a DFW<B>, processing_options: &'a ProcessingOptions, logger: &'a Logger, - dry_run: bool + dry_run: bool ) -> Result<ProcessContext<'a, B>>

Create a new instance of ProcessDFW for rule processing.

-
source

pub fn process(&mut self) -> Result<()>

Start the processing using the configuration given at creation.

-

Auto Trait Implementations§

§

impl<'a, B> !RefUnwindSafe for ProcessContext<'a, B>

§

impl<'a, B> Send for ProcessContext<'a, B>where - <B as FirewallBackend>::Defaults: Sync,

§

impl<'a, B> Sync for ProcessContext<'a, B>where - <B as FirewallBackend>::Defaults: Sync,

§

impl<'a, B> Unpin for ProcessContext<'a, B>

§

impl<'a, B> !UnwindSafe for ProcessContext<'a, B>

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +
source

pub fn process(&mut self) -> Result<()>

Start the processing using the configuration given at creation.

+

Auto Trait Implementations§

§

impl<'a, B> !RefUnwindSafe for ProcessContext<'a, B>

§

impl<'a, B> Send for ProcessContext<'a, B>where + <B as FirewallBackend>::Defaults: Sync,

§

impl<'a, B> Sync for ProcessContext<'a, B>where + <B as FirewallBackend>::Defaults: Sync,

§

impl<'a, B> Unpin for ProcessContext<'a, B>

§

impl<'a, B> !UnwindSafe for ProcessContext<'a, B>

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
\ No newline at end of file diff --git a/main/dfw/process/struct.ProcessingOptions.html b/main/dfw/process/struct.ProcessingOptions.html index ba3c0c36..4139ab75 100644 --- a/main/dfw/process/struct.ProcessingOptions.html +++ b/main/dfw/process/struct.ProcessingOptions.html @@ -1,29 +1,29 @@ -ProcessingOptions in dfw::process - Rust
pub struct ProcessingOptions {
+ProcessingOptions in dfw::process - Rust
pub struct ProcessingOptions {
     pub container_filter: ContainerFilter,
 }
Expand description

Options to configure the processing procedure.

Fields§

§container_filter: ContainerFilter

Option to filter the containers to be processed, see ContainerFilter.

-

Trait Implementations§

source§

impl Clone for ProcessingOptions

source§

fn clone(&self) -> ProcessingOptions

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 ProcessingOptions

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ProcessingOptions

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl PartialEq<ProcessingOptions> for ProcessingOptions

source§

fn eq(&self, other: &ProcessingOptions) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for ProcessingOptions

source§

impl StructuralEq for ProcessingOptions

source§

impl StructuralPartialEq for ProcessingOptions

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for ProcessingOptions

source§

fn clone(&self) -> ProcessingOptions

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 ProcessingOptions

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ProcessingOptions

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl PartialEq for ProcessingOptions

source§

fn eq(&self, other: &ProcessingOptions) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Eq for ProcessingOptions

source§

impl StructuralEq for ProcessingOptions

source§

impl StructuralPartialEq for ProcessingOptions

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/process/trait.Process.html b/main/dfw/process/trait.Process.html index a8419a9b..fa8cfddd 100644 --- a/main/dfw/process/trait.Process.html +++ b/main/dfw/process/trait.Process.html @@ -1,10 +1,10 @@ -Process in dfw::process - Rust

Trait dfw::process::Process

source ·
pub trait Process<B: FirewallBackend>where
+Process in dfw::process - Rust

Trait dfw::process::Process

source ·
pub trait Process<B: FirewallBackend>where
     DFW<B>: Process<B>,{
     // Required method
     fn process(
         &self,
         ctx: &ProcessContext<'_, B>
-    ) -> Result<Option<Vec<B::Rule>>>;
+    ) -> Result<Option<Vec<B::Rule>>>;
 }
Expand description

This trait allows a type to define its own processing rules. It is expected to return a list of rules that can be applied with nft.

Example

@@ -29,12 +29,12 @@

Example

Ok(Some(rules)) } }
-

Required Methods§

source

fn process(&self, ctx: &ProcessContext<'_, B>) -> Result<Option<Vec<B::Rule>>>

Process the current type within the given ProcessContext, returning zero or more rules +

Required Methods§

source

fn process(&self, ctx: &ProcessContext<'_, B>) -> Result<Option<Vec<B::Rule>>>

Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.

-

Implementations on Foreign Types§

source§

impl<B, T> Process<B> for Vec<T>where +

Implementations on Foreign Types§

source§

impl<B, T> Process<B> for Option<T>where B: FirewallBackend, DFW<B>: Process<B>, - T: Process<B>,

source§

fn process(&self, ctx: &ProcessContext<'_, B>) -> Result<Option<Vec<B::Rule>>>

source§

impl<B, T> Process<B> for Option<T>where + T: Process<B>,

source§

fn process(&self, ctx: &ProcessContext<'_, B>) -> Result<Option<Vec<B::Rule>>>

source§

impl<B, T> Process<B> for Vec<T>where B: FirewallBackend, DFW<B>: Process<B>, - T: Process<B>,

source§

fn process(&self, ctx: &ProcessContext<'_, B>) -> Result<Option<Vec<B::Rule>>>

Implementors§

\ No newline at end of file + T: Process<B>,
source§

fn process(&self, ctx: &ProcessContext<'_, B>) -> Result<Option<Vec<B::Rule>>>

Implementors§

\ No newline at end of file diff --git a/main/dfw/trait.FirewallBackend.html b/main/dfw/trait.FirewallBackend.html index d0872211..aec9eaf7 100644 --- a/main/dfw/trait.FirewallBackend.html +++ b/main/dfw/trait.FirewallBackend.html @@ -1,16 +1,16 @@ -FirewallBackend in dfw - Rust

Trait dfw::FirewallBackend

source ·
pub trait FirewallBackend: Sizedwhere
+FirewallBackend in dfw - Rust

Trait dfw::FirewallBackend

source ·
pub trait FirewallBackend: Sizedwhere
     DFW<Self>: Process<Self>,{
     type Rule;
-    type Defaults: Debug + DeserializeOwned;
+    type Defaults: Debug + DeserializeOwned;
 
     // Required method
     fn apply(
-        rules: Vec<Self::Rule>,
+        rules: Vec<Self::Rule>,
         ctx: &ProcessContext<'_, Self>
-    ) -> Result<()>;
+    ) -> Result<()>;
 }
Expand description

This trait is used to distinguish between different firewall backends.

To add a new firewall-backend create an empty struct implementing this trait.

Required Associated Types§

source

type Rule

Associated type identifying the rule-type returned.

-
source

type Defaults: Debug + DeserializeOwned

Associated type representing the firewall backend defaults/configuration.

-

Required Methods§

source

fn apply(rules: Vec<Self::Rule>, ctx: &ProcessContext<'_, Self>) -> Result<()>

Apply the processed rules.

-

Implementors§

\ No newline at end of file +
source

type Defaults: Debug + DeserializeOwned

Associated type representing the firewall backend defaults/configuration.

+

Required Methods§

source

fn apply(rules: Vec<Self::Rule>, ctx: &ProcessContext<'_, Self>) -> Result<()>

Apply the processed rules.

+

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/main/dfw/types/enum.ChainPolicy.html b/main/dfw/types/enum.ChainPolicy.html index b94052c2..0c268e10 100644 --- a/main/dfw/types/enum.ChainPolicy.html +++ b/main/dfw/types/enum.ChainPolicy.html @@ -1,4 +1,4 @@ -ChainPolicy in dfw::types - Rust

Enum dfw::types::ChainPolicy

source ·
pub enum ChainPolicy {
+ChainPolicy in dfw::types - Rust

Enum dfw::types::ChainPolicy

source ·
pub enum ChainPolicy {
     Accept,
     Drop,
 }
Expand description

Representation of chain policies.

@@ -8,37 +8,37 @@

Attribution

Variants§

§

Accept

The accept verdict means that the packet will keep traversing the network stack.

§

Drop

The drop verdict means that the packet is discarded if the packet reaches the end of the base chain.

-

Trait Implementations§

source§

impl Clone for ChainPolicy

source§

fn clone(&self) -> ChainPolicy

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 ChainPolicy

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ChainPolicy

source§

fn default() -> ChainPolicy

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ChainPolicy

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 ChainPolicy

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl FromStr for ChainPolicy

§

type Err = ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<ChainPolicy, <Self as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for ChainPolicy

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ChainPolicy> for ChainPolicy

source§

fn eq(&self, other: &ChainPolicy) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&str> for ChainPolicy

§

type Error = ParseError

The type returned in the event of a conversion error.
source§

fn try_from(s: &str) -> Result<ChainPolicy, <Self as TryFrom<&str>>::Error>

Performs the conversion.
source§

impl Value for ChainPolicy

Trait Implementations§

source§

impl Clone for ChainPolicy

source§

fn clone(&self) -> ChainPolicy

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 ChainPolicy

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ChainPolicy

source§

fn default() -> ChainPolicy

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ChainPolicy

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 ChainPolicy

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl FromStr for ChainPolicy

§

type Err = ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<ChainPolicy, <Self as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for ChainPolicy

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ChainPolicy

source§

fn eq(&self, other: &ChainPolicy) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&str> for ChainPolicy

§

type Error = ParseError

The type returned in the event of a conversion error.
source§

fn try_from(s: &str) -> Result<ChainPolicy, <Self as TryFrom<&str>>::Error>

Performs the conversion.
source§

impl Value for ChainPolicy

source§

fn serialize( &self, record: &Record<'_>, key: Key, serializer: &mut dyn Serializer -) -> Result

Serialize self into Serializer Read more
source§

impl Copy for ChainPolicy

source§

impl Eq for ChainPolicy

source§

impl StructuralEq for ChainPolicy

source§

impl StructuralPartialEq for ChainPolicy

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result
Serialize self into Serializer Read more
source§

impl Copy for ChainPolicy

source§

impl Eq for ChainPolicy

source§

impl StructuralEq for ChainPolicy

source§

impl StructuralPartialEq for ChainPolicy

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/enum.ExposePortBuilderError.html b/main/dfw/types/enum.ExposePortBuilderError.html index 6ded3fa3..2776a2bf 100644 --- a/main/dfw/types/enum.ExposePortBuilderError.html +++ b/main/dfw/types/enum.ExposePortBuilderError.html @@ -1,32 +1,32 @@ -ExposePortBuilderError in dfw::types - Rust
#[non_exhaustive]
pub enum ExposePortBuilderError { - UninitializedField(&'static str), - ValidationError(String), +ExposePortBuilderError in dfw::types - Rust
#[non_exhaustive]
pub enum ExposePortBuilderError { + UninitializedField(&'static str), + ValidationError(String), }
Expand description

Error type for ExposePortBuilder

-

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

UninitializedField(&'static str)

Uninitialized field

-
§

ValidationError(String)

Custom validation error

-

Trait Implementations§

source§

impl Debug for ExposePortBuilderError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ExposePortBuilderError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ExposePortBuilderError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

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<String> for ExposePortBuilderError

source§

fn from(s: String) -> Self

Converts to this type from the input type.
source§

impl From<UninitializedFieldError> for ExposePortBuilderError

source§

fn from(s: UninitializedFieldError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsFail for Twhere - T: Fail,

§

fn as_fail(&self) -> &(dyn Fail + 'static)

Converts a reference to Self into a dynamic trait object of Fail.
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<E> Fail for Ewhere - E: Error + Send + Sync + 'static,

§

fn name(&self) -> Option<&str>

Returns the “name” of the error. Read more
§

fn cause(&self) -> Option<&(dyn Fail + 'static)>

Returns a reference to the underlying cause of this failure, if it -is an error that wraps other errors. Read more
§

fn backtrace(&self) -> Option<&Backtrace>

Returns a reference to the Backtrace carried by this failure, if it +

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

UninitializedField(&'static str)

Uninitialized field

+
§

ValidationError(String)

Custom validation error

+

Trait Implementations§

source§

impl Debug for ExposePortBuilderError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ExposePortBuilderError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ExposePortBuilderError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

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<String> for ExposePortBuilderError

source§

fn from(s: String) -> Self

Converts to this type from the input type.
source§

impl From<UninitializedFieldError> for ExposePortBuilderError

source§

fn from(s: UninitializedFieldError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsFail for Twhere + T: Fail,

§

fn as_fail(&self) -> &(dyn Fail + 'static)

Converts a reference to Self into a dynamic trait object of Fail.
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<E> Fail for Ewhere + E: Error + Send + Sync + 'static,

§

fn name(&self) -> Option<&str>

Returns the “name” of the error. Read more
§

fn cause(&self) -> Option<&(dyn Fail + 'static)>

Returns a reference to the underlying cause of this failure, if it +is an error that wraps other errors. Read more
§

fn backtrace(&self) -> Option<&Backtrace>

Returns a reference to the Backtrace carried by this failure, if it carries one. Read more
§

fn context<D>(self, context: D) -> Context<D>where - D: Display + Send + Sync + 'static, - Self: Sized,

Provides context for this failure. Read more
§

fn compat(self) -> Compat<Self>where - Self: Sized,

Wraps this failure in a compatibility wrapper that implements -std::error::Error. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an + D: Display + Send + Sync + 'static, + Self: Sized,
Provides context for this failure. Read more
§

fn compat(self) -> Compat<Self>where + Self: Sized,

Wraps this failure in a compatibility wrapper that implements +std::error::Error. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToString for Twhere - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToString for Twhere + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/enum.RuleVerdict.html b/main/dfw/types/enum.RuleVerdict.html index 47e3ad77..dc940562 100644 --- a/main/dfw/types/enum.RuleVerdict.html +++ b/main/dfw/types/enum.RuleVerdict.html @@ -1,4 +1,4 @@ -RuleVerdict in dfw::types - Rust

Trait Implementations§

source§

impl Clone for RuleVerdict

source§

fn clone(&self) -> RuleVerdict

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 RuleVerdict

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RuleVerdict

source§

fn default() -> RuleVerdict

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for RuleVerdict

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 RuleVerdict

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl FromStr for RuleVerdict

§

type Err = ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<RuleVerdict, <Self as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for RuleVerdict

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<RuleVerdict> for RuleVerdict

source§

fn eq(&self, other: &RuleVerdict) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&str> for RuleVerdict

§

type Error = ParseError

The type returned in the event of a conversion error.
source§

fn try_from(s: &str) -> Result<RuleVerdict, <Self as TryFrom<&str>>::Error>

Performs the conversion.
source§

impl Value for RuleVerdict

Trait Implementations§

source§

impl Clone for RuleVerdict

source§

fn clone(&self) -> RuleVerdict

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 RuleVerdict

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for RuleVerdict

source§

fn default() -> RuleVerdict

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for RuleVerdict

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 RuleVerdict

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl FromStr for RuleVerdict

§

type Err = ParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<RuleVerdict, <Self as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for RuleVerdict

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for RuleVerdict

source§

fn eq(&self, other: &RuleVerdict) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&str> for RuleVerdict

§

type Error = ParseError

The type returned in the event of a conversion error.
source§

fn try_from(s: &str) -> Result<RuleVerdict, <Self as TryFrom<&str>>::Error>

Performs the conversion.
source§

impl Value for RuleVerdict

source§

fn serialize( &self, record: &Record<'_>, key: Key, serializer: &mut dyn Serializer -) -> Result

Serialize self into Serializer Read more
source§

impl Copy for RuleVerdict

source§

impl Eq for RuleVerdict

source§

impl StructuralEq for RuleVerdict

source§

impl StructuralPartialEq for RuleVerdict

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result
Serialize self into Serializer Read more
source§

impl Copy for RuleVerdict

source§

impl Eq for RuleVerdict

source§

impl StructuralEq for RuleVerdict

source§

impl StructuralPartialEq for RuleVerdict

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/index.html b/main/dfw/types/index.html index cb85924d..6ed600b6 100644 --- a/main/dfw/types/index.html +++ b/main/dfw/types/index.html @@ -1,4 +1,4 @@ -dfw::types - Rust

Module dfw::types

source ·
Expand description

The types in this module make up the structure of the configuration-file(s).

+dfw::types - Rust

Module dfw::types

source ·
Expand description

The types in this module make up the structure of the configuration-file(s).

Example

The following is an examplary TOML configuration, which will be parsed into this modules types.

diff --git a/main/dfw/types/struct.ContainerDNAT.html b/main/dfw/types/struct.ContainerDNAT.html index c780bf72..7df28102 100644 --- a/main/dfw/types/struct.ContainerDNAT.html +++ b/main/dfw/types/struct.ContainerDNAT.html @@ -1,8 +1,8 @@ -ContainerDNAT in dfw::types - Rust

Fields§

§rules: Option<Vec<ContainerDNATRule>>

An optional list of rules, see ContainerDNATRule.

Example

The easiest way to define the rules is using TOMLs arrays of tables:

@@ -11,39 +11,39 @@

Example

# first rule here [[container_dnat.rules]] # second rule here
-

Trait Implementations§

source§

impl Clone for ContainerDNAT

source§

fn clone(&self) -> ContainerDNAT

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 ContainerDNAT

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerDNAT

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerDNAT

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ContainerDNAT> for ContainerDNAT

source§

fn eq(&self, other: &ContainerDNAT) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerDNAT

Trait Implementations§

source§

impl Clone for ContainerDNAT

source§

fn clone(&self) -> ContainerDNAT

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 ContainerDNAT

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerDNAT

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerDNAT

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ContainerDNAT

source§

fn eq(&self, other: &ContainerDNAT) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerDNAT

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerDNAT

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerDNAT

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for ContainerDNAT

source§

impl StructuralEq for ContainerDNAT

source§

impl StructuralPartialEq for ContainerDNAT

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for ContainerDNAT

source§

impl StructuralEq for ContainerDNAT

source§

impl StructuralPartialEq for ContainerDNAT

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ContainerDNATRule.html b/main/dfw/types/struct.ContainerDNATRule.html index a5c263b6..3cce5f15 100644 --- a/main/dfw/types/struct.ContainerDNATRule.html +++ b/main/dfw/types/struct.ContainerDNATRule.html @@ -1,15 +1,15 @@ -ContainerDNATRule in dfw::types - Rust
pub struct ContainerDNATRule {
-    pub src_network: Option<String>,
-    pub src_container: Option<String>,
-    pub dst_network: String,
-    pub dst_container: String,
-    pub expose_port: Vec<ExposePort>,
+ContainerDNATRule in dfw::types - Rust
pub struct ContainerDNATRule {
+    pub src_network: Option<String>,
+    pub src_container: Option<String>,
+    pub dst_network: String,
+    pub dst_container: String,
+    pub expose_port: Vec<ExposePort>,
 }
Expand description

Definition for a rule to be used in the container-DNAT section.

-

Fields§

§src_network: Option<String>

Network of the source container to apply the rule to.

-
§src_container: Option<String>

Source container to apply the rule to.

-
§dst_network: String

Network of the destination container to apply the rule to.

-
§dst_container: String

Destination container to apply the rule to.

-
§expose_port: Vec<ExposePort>

Ports to apply the rule to.

+

Fields§

§src_network: Option<String>

Network of the source container to apply the rule to.

+
§src_container: Option<String>

Source container to apply the rule to.

+
§dst_network: String

Network of the destination container to apply the rule to.

+
§dst_container: String

Destination container to apply the rule to.

+
§expose_port: Vec<ExposePort>

Ports to apply the rule to.

Defined as:

  • @@ -50,39 +50,39 @@

    Example

    { host_port = 53, family = "udp" }, { host_port = 443, container_port = 8443 }, ]
-

Trait Implementations§

source§

impl Clone for ContainerDNATRule

source§

fn clone(&self) -> ContainerDNATRule

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 ContainerDNATRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerDNATRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerDNATRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ContainerDNATRule> for ContainerDNATRule

source§

fn eq(&self, other: &ContainerDNATRule) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +

Trait Implementations§

source§

impl Clone for ContainerDNATRule

source§

fn clone(&self) -> ContainerDNATRule

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 ContainerDNATRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerDNATRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerDNATRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ContainerDNATRule

source§

fn eq(&self, other: &ContainerDNATRule) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerDNATRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for ContainerDNATRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for ContainerDNATRule

source§

impl StructuralEq for ContainerDNATRule

source§

impl StructuralPartialEq for ContainerDNATRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for ContainerDNATRule

source§

impl StructuralEq for ContainerDNATRule

source§

impl StructuralPartialEq for ContainerDNATRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ContainerToContainer.html b/main/dfw/types/struct.ContainerToContainer.html index 939ba62d..2bb4c988 100644 --- a/main/dfw/types/struct.ContainerToContainer.html +++ b/main/dfw/types/struct.ContainerToContainer.html @@ -1,6 +1,6 @@ -ContainerToContainer in dfw::types - Rust
pub struct ContainerToContainer {
+ContainerToContainer in dfw::types - Rust
pub struct ContainerToContainer {
     pub default_policy: ChainPolicy,
-    pub rules: Option<Vec<ContainerToContainerRule>>,
+    pub rules: Option<Vec<ContainerToContainerRule>>,
 }
Expand description

The container-to-container section, defining how containers can communicate amongst each other.

Fields§

§default_policy: ChainPolicy

The default_policy defines the default for when there is not a specific rule.

Filtering traffic within the same bridge

@@ -14,7 +14,7 @@

sysctl net.bridge.bridge-nf-call-iptables=1
 

To permanently set this configuration, take a look at man sysctl.d and man sysctl.conf.

-
§rules: Option<Vec<ContainerToContainerRule>>

An optional list of rules, see +

§rules: Option<Vec<ContainerToContainerRule>>

An optional list of rules, see ContainerToContainerRule.

Example

The easiest way to define the rules is using TOMLs arrays of tables:

@@ -26,39 +26,39 @@

Example

# first rule here [[container_to_container.rules]] # second rule here
-

Trait Implementations§

source§

impl Clone for ContainerToContainer

source§

fn clone(&self) -> ContainerToContainer

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 ContainerToContainer

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToContainer

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToContainer

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ContainerToContainer> for ContainerToContainer

source§

fn eq(&self, other: &ContainerToContainer) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +

Trait Implementations§

source§

impl Clone for ContainerToContainer

source§

fn clone(&self) -> ContainerToContainer

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 ContainerToContainer

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToContainer

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToContainer

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ContainerToContainer

source§

fn eq(&self, other: &ContainerToContainer) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerToContainer

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for ContainerToContainer

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for ContainerToContainer

source§

impl StructuralEq for ContainerToContainer

source§

impl StructuralPartialEq for ContainerToContainer

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for ContainerToContainer

source§

impl StructuralEq for ContainerToContainer

source§

impl StructuralPartialEq for ContainerToContainer

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ContainerToContainerRule.html b/main/dfw/types/struct.ContainerToContainerRule.html index f5881c86..6b5af134 100644 --- a/main/dfw/types/struct.ContainerToContainerRule.html +++ b/main/dfw/types/struct.ContainerToContainerRule.html @@ -1,49 +1,49 @@ -ContainerToContainerRule in dfw::types - Rust
pub struct ContainerToContainerRule {
-    pub network: String,
-    pub src_container: Option<String>,
-    pub dst_container: Option<String>,
-    pub matches: Option<String>,
+ContainerToContainerRule in dfw::types - Rust
pub struct ContainerToContainerRule {
+    pub network: String,
+    pub src_container: Option<String>,
+    pub dst_container: Option<String>,
+    pub matches: Option<String>,
     pub verdict: RuleVerdict,
 }
Expand description

Definition for a rule to be used in the container-to-container section.

-

Fields§

§network: String

Common network between the source container and the destination container to apply the rule +

Fields§

§network: String

Common network between the source container and the destination container to apply the rule to.

-
§src_container: Option<String>

Source container to apply the rule to.

-
§dst_container: Option<String>

Destination container to apply the rule to.

-
§matches: Option<String>

Additional match-string, which will be added to the nftables command.

+
§src_container: Option<String>

Source container to apply the rule to.

+
§dst_container: Option<String>

Destination container to apply the rule to.

+
§matches: Option<String>

Additional match-string, which will be added to the nftables command.

§verdict: RuleVerdict

Verdict for rule (accept, drop or reject).

-

Trait Implementations§

source§

impl Clone for ContainerToContainerRule

source§

fn clone(&self) -> ContainerToContainerRule

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 ContainerToContainerRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToContainerRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToContainerRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ContainerToContainerRule> for ContainerToContainerRule

source§

fn eq(&self, other: &ContainerToContainerRule) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +

Trait Implementations§

source§

impl Clone for ContainerToContainerRule

source§

fn clone(&self) -> ContainerToContainerRule

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 ContainerToContainerRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToContainerRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToContainerRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ContainerToContainerRule

source§

fn eq(&self, other: &ContainerToContainerRule) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerToContainerRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for ContainerToContainerRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for ContainerToContainerRule

source§

impl StructuralEq for ContainerToContainerRule

source§

impl StructuralPartialEq for ContainerToContainerRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for ContainerToContainerRule

source§

impl StructuralEq for ContainerToContainerRule

source§

impl StructuralPartialEq for ContainerToContainerRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ContainerToHost.html b/main/dfw/types/struct.ContainerToHost.html index 311ba1e9..e968e8fe 100644 --- a/main/dfw/types/struct.ContainerToHost.html +++ b/main/dfw/types/struct.ContainerToHost.html @@ -1,9 +1,9 @@ -ContainerToHost in dfw::types - Rust

Struct dfw::types::ContainerToHost

source ·
pub struct ContainerToHost {
+ContainerToHost in dfw::types - Rust

Struct dfw::types::ContainerToHost

source ·
pub struct ContainerToHost {
     pub default_policy: RuleVerdict,
-    pub rules: Option<Vec<ContainerToHostRule>>,
+    pub rules: Option<Vec<ContainerToHostRule>>,
 }
Expand description

The container-to-host section, defining how containers can communicate with the host.

Fields§

§default_policy: RuleVerdict

The default_policy defines the default for when there is not a specific rule.

-
§rules: Option<Vec<ContainerToHostRule>>

An optional list of rules, see +

§rules: Option<Vec<ContainerToHostRule>>

An optional list of rules, see ContainerToHostRule.

Example

The easiest way to define the rules is using TOMLs arrays of tables:

@@ -15,39 +15,39 @@

Example

# first rule here [[container_to_host.rules]] # second rule here
-

Trait Implementations§

source§

impl Clone for ContainerToHost

source§

fn clone(&self) -> ContainerToHost

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 ContainerToHost

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToHost

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToHost

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ContainerToHost> for ContainerToHost

source§

fn eq(&self, other: &ContainerToHost) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerToHost

Trait Implementations§

source§

impl Clone for ContainerToHost

source§

fn clone(&self) -> ContainerToHost

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 ContainerToHost

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToHost

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToHost

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ContainerToHost

source§

fn eq(&self, other: &ContainerToHost) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerToHost

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerToHost

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerToHost

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for ContainerToHost

source§

impl StructuralEq for ContainerToHost

source§

impl StructuralPartialEq for ContainerToHost

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for ContainerToHost

source§

impl StructuralEq for ContainerToHost

source§

impl StructuralPartialEq for ContainerToHost

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ContainerToHostRule.html b/main/dfw/types/struct.ContainerToHostRule.html index 331c3332..eb0a54f2 100644 --- a/main/dfw/types/struct.ContainerToHostRule.html +++ b/main/dfw/types/struct.ContainerToHostRule.html @@ -1,46 +1,46 @@ -ContainerToHostRule in dfw::types - Rust
pub struct ContainerToHostRule {
-    pub network: String,
-    pub src_container: Option<String>,
-    pub matches: Option<String>,
+ContainerToHostRule in dfw::types - Rust
pub struct ContainerToHostRule {
+    pub network: String,
+    pub src_container: Option<String>,
+    pub matches: Option<String>,
     pub verdict: RuleVerdict,
 }
Expand description

Definition for a rule to be used in the container-to-host section.

-

Fields§

§network: String

Network of the source container to apply the rule to.

-
§src_container: Option<String>

Source container to apply the rule to.

-
§matches: Option<String>

Additional match-string, which will be added to the nftables command.

+

Fields§

§network: String

Network of the source container to apply the rule to.

+
§src_container: Option<String>

Source container to apply the rule to.

+
§matches: Option<String>

Additional match-string, which will be added to the nftables command.

§verdict: RuleVerdict

Verdict for rule (accept, drop or reject).

-

Trait Implementations§

source§

impl Clone for ContainerToHostRule

source§

fn clone(&self) -> ContainerToHostRule

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 ContainerToHostRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToHostRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToHostRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ContainerToHostRule> for ContainerToHostRule

source§

fn eq(&self, other: &ContainerToHostRule) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +

Trait Implementations§

source§

impl Clone for ContainerToHostRule

source§

fn clone(&self) -> ContainerToHostRule

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 ContainerToHostRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToHostRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToHostRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ContainerToHostRule

source§

fn eq(&self, other: &ContainerToHostRule) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerToHostRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for ContainerToHostRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for ContainerToHostRule

source§

impl StructuralEq for ContainerToHostRule

source§

impl StructuralPartialEq for ContainerToHostRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for ContainerToHostRule

source§

impl StructuralEq for ContainerToHostRule

source§

impl StructuralPartialEq for ContainerToHostRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ContainerToWiderWorld.html b/main/dfw/types/struct.ContainerToWiderWorld.html index e2654969..f3e517de 100644 --- a/main/dfw/types/struct.ContainerToWiderWorld.html +++ b/main/dfw/types/struct.ContainerToWiderWorld.html @@ -1,10 +1,10 @@ -ContainerToWiderWorld in dfw::types - Rust
pub struct ContainerToWiderWorld {
+ContainerToWiderWorld in dfw::types - Rust
pub struct ContainerToWiderWorld {
     pub default_policy: RuleVerdict,
-    pub rules: Option<Vec<ContainerToWiderWorldRule>>,
+    pub rules: Option<Vec<ContainerToWiderWorldRule>>,
 }
Expand description

The container-to-wider-world section, defining how containers can communicate with the wider world.

Fields§

§default_policy: RuleVerdict

The default_policy defines the default for when there is not a specific rule.

-
§rules: Option<Vec<ContainerToWiderWorldRule>>

An optional list of rules, see +

§rules: Option<Vec<ContainerToWiderWorldRule>>

An optional list of rules, see ContainerToWiderWorldRule.

Example

The easiest way to define the rules is using TOMLs arrays of tables:

@@ -16,39 +16,39 @@

Example

# first rule here [[container_to_wider_world.rules]] # second rule here
-

Trait Implementations§

source§

impl Clone for ContainerToWiderWorld

source§

fn clone(&self) -> ContainerToWiderWorld

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 ContainerToWiderWorld

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToWiderWorld

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToWiderWorld

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ContainerToWiderWorld> for ContainerToWiderWorld

source§

fn eq(&self, other: &ContainerToWiderWorld) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerToWiderWorld

Trait Implementations§

source§

impl Clone for ContainerToWiderWorld

source§

fn clone(&self) -> ContainerToWiderWorld

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 ContainerToWiderWorld

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToWiderWorld

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToWiderWorld

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ContainerToWiderWorld

source§

fn eq(&self, other: &ContainerToWiderWorld) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerToWiderWorld

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for ContainerToWiderWorld

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for ContainerToWiderWorld

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for ContainerToWiderWorld

source§

impl StructuralEq for ContainerToWiderWorld

source§

impl StructuralPartialEq for ContainerToWiderWorld

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for ContainerToWiderWorld

source§

impl StructuralEq for ContainerToWiderWorld

source§

impl StructuralPartialEq for ContainerToWiderWorld

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ContainerToWiderWorldRule.html b/main/dfw/types/struct.ContainerToWiderWorldRule.html index dc50c11c..51ada13f 100644 --- a/main/dfw/types/struct.ContainerToWiderWorldRule.html +++ b/main/dfw/types/struct.ContainerToWiderWorldRule.html @@ -1,48 +1,48 @@ -ContainerToWiderWorldRule in dfw::types - Rust
pub struct ContainerToWiderWorldRule {
-    pub network: Option<String>,
-    pub src_container: Option<String>,
-    pub matches: Option<String>,
+ContainerToWiderWorldRule in dfw::types - Rust
pub struct ContainerToWiderWorldRule {
+    pub network: Option<String>,
+    pub src_container: Option<String>,
+    pub matches: Option<String>,
     pub verdict: RuleVerdict,
-    pub external_network_interface: Option<String>,
+    pub external_network_interface: Option<String>,
 }
Expand description

Definition for a rule to be used in the container-to-wider-world section.

-

Fields§

§network: Option<String>

Network of the source container to apply the rule to.

-
§src_container: Option<String>

Source container to apply the rule to.

-
§matches: Option<String>

Additional match-string, which will be added to the nftables command.

+

Fields§

§network: Option<String>

Network of the source container to apply the rule to.

+
§src_container: Option<String>

Source container to apply the rule to.

+
§matches: Option<String>

Additional match-string, which will be added to the nftables command.

§verdict: RuleVerdict

Verdict for rule (accept, drop or reject).

-
§external_network_interface: Option<String>

Specific external network interface to target.

-

Trait Implementations§

source§

impl Clone for ContainerToWiderWorldRule

source§

fn clone(&self) -> ContainerToWiderWorldRule

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 ContainerToWiderWorldRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToWiderWorldRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToWiderWorldRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ContainerToWiderWorldRule> for ContainerToWiderWorldRule

source§

fn eq(&self, other: &ContainerToWiderWorldRule) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +
§external_network_interface: Option<String>

Specific external network interface to target.

+

Trait Implementations§

source§

impl Clone for ContainerToWiderWorldRule

source§

fn clone(&self) -> ContainerToWiderWorldRule

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 ContainerToWiderWorldRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ContainerToWiderWorldRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for ContainerToWiderWorldRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ContainerToWiderWorldRule

source§

fn eq(&self, other: &ContainerToWiderWorldRule) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for ContainerToWiderWorldRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for ContainerToWiderWorldRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for ContainerToWiderWorldRule

source§

impl StructuralEq for ContainerToWiderWorldRule

source§

impl StructuralPartialEq for ContainerToWiderWorldRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for ContainerToWiderWorldRule

source§

impl StructuralEq for ContainerToWiderWorldRule

source§

impl StructuralPartialEq for ContainerToWiderWorldRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.DFW.html b/main/dfw/types/struct.DFW.html index cec59892..d0c76d41 100644 --- a/main/dfw/types/struct.DFW.html +++ b/main/dfw/types/struct.DFW.html @@ -1,84 +1,84 @@ -DFW in dfw::types - Rust

Struct dfw::types::DFW

source ·
pub struct DFW<B>where
+DFW in dfw::types - Rust

Struct dfw::types::DFW

source ·
pub struct DFW<B>where
     B: FirewallBackend,
     DFW<B>: Process<B>,{
     pub global_defaults: GlobalDefaults,
-    pub backend_defaults: Option<B::Defaults>,
-    pub initialization: Option<Initialization>,
-    pub container_to_container: Option<ContainerToContainer>,
-    pub container_to_wider_world: Option<ContainerToWiderWorld>,
-    pub container_to_host: Option<ContainerToHost>,
-    pub wider_world_to_container: Option<WiderWorldToContainer>,
-    pub container_dnat: Option<ContainerDNAT>,
+    pub backend_defaults: Option<B::Defaults>,
+    pub initialization: Option<Initialization>,
+    pub container_to_container: Option<ContainerToContainer>,
+    pub container_to_wider_world: Option<ContainerToWiderWorld>,
+    pub container_to_host: Option<ContainerToHost>,
+    pub wider_world_to_container: Option<WiderWorldToContainer>,
+    pub container_dnat: Option<ContainerDNAT>,
 }
Expand description

DFW is the parent type defining the complete configuration used by DFW to build up the firewall rules.

Every section is optional.

Fields§

§global_defaults: GlobalDefaults

The defaults configuration section.

You can leave this section unspecified.

-
§backend_defaults: Option<B::Defaults>

The backend_defaults configuration section

-
§initialization: Option<Initialization>
👎Deprecated since 1.2.0: Provide the initialization in the nftables backend-defaults section instead. This field will be removed with release 2.0.0.
§backend_defaults: Option<B::Defaults>

The backend_defaults configuration section

+
§initialization: Option<Initialization>
👎Deprecated since 1.2.0: Provide the initialization in the nftables backend-defaults section instead. This field will be removed with release 2.0.0.

This field is DEPRECATED!

Provide the custom tables in the nftables backend-defaults section instead. (This field will be removed with release 2.0.0.)

Please consult the firewall-backend documentation if you want to know how to use this field.

-
§container_to_container: Option<ContainerToContainer>

The container_to_container configuration section

-
§container_to_wider_world: Option<ContainerToWiderWorld>

The container_to_wider_world configuration section

-
§container_to_host: Option<ContainerToHost>

The container_to_host configuration section

-
§wider_world_to_container: Option<WiderWorldToContainer>

The wider_world_to_container configuration section

-
§container_dnat: Option<ContainerDNAT>

The container_dnat configuration section

-

Trait Implementations§

source§

impl<B> Clone for DFW<B>where - B: FirewallBackend + Clone, +

§container_to_container: Option<ContainerToContainer>

The container_to_container configuration section

+
§container_to_wider_world: Option<ContainerToWiderWorld>

The container_to_wider_world configuration section

+
§container_to_host: Option<ContainerToHost>

The container_to_host configuration section

+
§wider_world_to_container: Option<WiderWorldToContainer>

The wider_world_to_container configuration section

+
§container_dnat: Option<ContainerDNAT>

The container_dnat configuration section

+

Trait Implementations§

source§

impl<B> Clone for DFW<B>where + B: FirewallBackend + Clone, DFW<B>: Process<B>, - B::Defaults: Clone,

source§

fn clone(&self) -> DFW<B>

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<B> Debug for DFW<B>where - B: FirewallBackend + Debug, + B::Defaults: Clone,

source§

fn clone(&self) -> DFW<B>

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<B> Debug for DFW<B>where + B: FirewallBackend + Debug, DFW<B>: Process<B>, - B::Defaults: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, B> Deserialize<'de> for DFW<B>where + B::Defaults: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, B> Deserialize<'de> for DFW<B>where B: FirewallBackend, - DFW<B>: Process<B>,

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<B> PartialEq<DFW<B>> for DFW<B>where - B: FirewallBackend + PartialEq, + DFW<B>: Process<B>,

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<B> PartialEq for DFW<B>where + B: FirewallBackend + PartialEq, DFW<B>: Process<B>, - B::Defaults: PartialEq,

source§

fn eq(&self, other: &DFW<B>) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always + B::Defaults: PartialEq,
source§

fn eq(&self, other: &DFW<B>) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for DFW<Iptables>

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for DFW<Nftables>

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl<B> Eq for DFW<B>where - B: FirewallBackend + Eq, +) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl<B> Eq for DFW<B>where + B: FirewallBackend + Eq, DFW<B>: Process<B>, - B::Defaults: Eq,

source§

impl<B> StructuralEq for DFW<B>where + B::Defaults: Eq,

source§

impl<B> StructuralEq for DFW<B>where B: FirewallBackend, - DFW<B>: Process<B>,

source§

impl<B> StructuralPartialEq for DFW<B>where + DFW<B>: Process<B>,

source§

impl<B> StructuralPartialEq for DFW<B>where B: FirewallBackend, - DFW<B>: Process<B>,

Auto Trait Implementations§

§

impl<B> RefUnwindSafe for DFW<B>where - <B as FirewallBackend>::Defaults: RefUnwindSafe,

§

impl<B> Send for DFW<B>where - <B as FirewallBackend>::Defaults: Send,

§

impl<B> Sync for DFW<B>where - <B as FirewallBackend>::Defaults: Sync,

§

impl<B> Unpin for DFW<B>where - <B as FirewallBackend>::Defaults: Unpin,

§

impl<B> UnwindSafe for DFW<B>where - <B as FirewallBackend>::Defaults: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an + DFW<B>: Process<B>,

Auto Trait Implementations§

§

impl<B> RefUnwindSafe for DFW<B>where + <B as FirewallBackend>::Defaults: RefUnwindSafe,

§

impl<B> Send for DFW<B>where + <B as FirewallBackend>::Defaults: Send,

§

impl<B> Sync for DFW<B>where + <B as FirewallBackend>::Defaults: Sync,

§

impl<B> Unpin for DFW<B>where + <B as FirewallBackend>::Defaults: Unpin,

§

impl<B> UnwindSafe for DFW<B>where + <B as FirewallBackend>::Defaults: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ExposePort.html b/main/dfw/types/struct.ExposePort.html index 292fe4c4..f35d7886 100644 --- a/main/dfw/types/struct.ExposePort.html +++ b/main/dfw/types/struct.ExposePort.html @@ -1,14 +1,14 @@ -ExposePort in dfw::types - Rust

Struct dfw::types::ExposePort

source ·
pub struct ExposePort {
-    pub host_port: u16,
-    pub container_port: Option<u16>,
-    pub family: String,
+ExposePort in dfw::types - Rust

Struct dfw::types::ExposePort

source ·
pub struct ExposePort {
+    pub host_port: u16,
+    pub container_port: Option<u16>,
+    pub family: String,
 }
Expand description

Struct to hold a port definition to expose on the host/between containers.

-

Fields§

§host_port: u16

Port the container_port should be exposed to on the host.

-
§container_port: Option<u16>

Port the host_port should map to into the container.

-
§family: String

Family of the exposed port.

+

Fields§

§host_port: u16

Port the container_port should be exposed to on the host.

+
§container_port: Option<u16>

Port the host_port should map to into the container.

+
§family: String

Family of the exposed port.

Can be left blank, tcp will be used as default.

-

Trait Implementations§

source§

impl Clone for ExposePort

source§

fn clone(&self) -> ExposePort

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 ExposePort

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ExposePort

source§

fn default() -> ExposePort

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ExposePort

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 FromStr for ExposePort

source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Convert a formatted string into a ExposePort.

+

Trait Implementations§

source§

impl Clone for ExposePort

source§

fn clone(&self) -> ExposePort

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 ExposePort

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ExposePort

source§

fn default() -> ExposePort

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for ExposePort

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 FromStr for ExposePort

source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Convert a formatted string into a ExposePort.

The string has to be in the format <HOST_PORT>[:<CONTAINER_PORT>]/<FAMILY>, i.e. 80:8080/tcp. If you don’t specify the container-port, it is assumed to be identical to the host-port.

@@ -27,30 +27,30 @@
Example
assert_eq!(port.host_port, 80); assert_eq!(port.container_port, Some(8080)); assert_eq!(port.family, "tcp");
-
§

type Err = String

The associated error which can be returned from parsing.
source§

impl Hash for ExposePort

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<ExposePort> for ExposePort

source§

fn eq(&self, other: &ExposePort) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for ExposePort

source§

impl StructuralEq for ExposePort

source§

impl StructuralPartialEq for ExposePort

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +
§

type Err = String

The associated error which can be returned from parsing.
source§

impl Hash for ExposePort

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ExposePort

source§

fn eq(&self, other: &ExposePort) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Eq for ExposePort

source§

impl StructuralEq for ExposePort

source§

impl StructuralPartialEq for ExposePort

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.ExposePortBuilder.html b/main/dfw/types/struct.ExposePortBuilder.html index 8057fd74..8d7ae344 100644 --- a/main/dfw/types/struct.ExposePortBuilder.html +++ b/main/dfw/types/struct.ExposePortBuilder.html @@ -1,34 +1,34 @@ -ExposePortBuilder in dfw::types - Rust
pub struct ExposePortBuilder {
-    pub host_port: Option<u16>,
-    pub container_port: Option<Option<u16>>,
-    pub family: Option<String>,
+ExposePortBuilder in dfw::types - Rust
pub struct ExposePortBuilder {
+    pub host_port: Option<u16>,
+    pub container_port: Option<Option<u16>>,
+    pub family: Option<String>,
 }
Expand description

Builder for ExposePort.

-

Fields§

§host_port: Option<u16>

Port the container_port should be exposed to on the host.

-
§container_port: Option<Option<u16>>

Port the host_port should map to into the container.

-
§family: Option<String>

Family of the exposed port.

+

Fields§

§host_port: Option<u16>

Port the container_port should be exposed to on the host.

+
§container_port: Option<Option<u16>>

Port the host_port should map to into the container.

+
§family: Option<String>

Family of the exposed port.

Can be left blank, tcp will be used as default.

-

Implementations§

source§

impl ExposePortBuilder

source

pub fn host_port(&mut self, value: u16) -> &mut Self

Port the container_port should be exposed to on the host.

-
source

pub fn container_port(&mut self, value: Option<u16>) -> &mut Self

Port the host_port should map to into the container.

-
source

pub fn family(&mut self, value: String) -> &mut Self

Family of the exposed port.

+

Implementations§

source§

impl ExposePortBuilder

source

pub fn host_port(&mut self, value: u16) -> &mut Self

Port the container_port should be exposed to on the host.

+
source

pub fn container_port(&mut self, value: Option<u16>) -> &mut Self

Port the host_port should map to into the container.

+
source

pub fn family(&mut self, value: String) -> &mut Self

Family of the exposed port.

Can be left blank, tcp will be used as default.

-
source

pub fn build(&self) -> Result<ExposePort, ExposePortBuilderError>

Builds a new ExposePort.

+
source

pub fn build(&self) -> Result<ExposePort, ExposePortBuilderError>

Builds a new ExposePort.

Errors

If a required field has not been initialized.

-

Trait Implementations§

source§

impl Clone for ExposePortBuilder

source§

fn clone(&self) -> ExposePortBuilder

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 Default for ExposePortBuilder

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +

Trait Implementations§

source§

impl Clone for ExposePortBuilder

source§

fn clone(&self) -> ExposePortBuilder

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 Default for ExposePortBuilder

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.GlobalDefaults.html b/main/dfw/types/struct.GlobalDefaults.html index cca460e6..73804ff9 100644 --- a/main/dfw/types/struct.GlobalDefaults.html +++ b/main/dfw/types/struct.GlobalDefaults.html @@ -1,9 +1,9 @@ -GlobalDefaults in dfw::types - Rust

Struct dfw::types::GlobalDefaults

source ·
pub struct GlobalDefaults {
-    pub external_network_interfaces: Option<Vec<String>>,
+GlobalDefaults in dfw::types - Rust

Struct dfw::types::GlobalDefaults

source ·
pub struct GlobalDefaults {
+    pub external_network_interfaces: Option<Vec<String>>,
     pub default_docker_bridge_to_host_policy: ChainPolicy,
-    pub custom_tables: Option<Vec<Table>>,
+    pub custom_tables: Option<Vec<Table>>,
 }
Expand description

The default configuration section, used by DFW for rule processing.

-

Fields§

§external_network_interfaces: Option<Vec<String>>

This defines the external network interfaces of the host to consider during building the +

Fields§

§external_network_interfaces: Option<Vec<String>>

This defines the external network interfaces of the host to consider during building the rules. The value can be non-existent, a string, or a sequence of strings.

Example

external_network_interfaces = "eth0"
@@ -12,44 +12,44 @@ 

Example

resources.

This field is optional and will be set to “accept” by default.

For non-default Docker bridges this is controlled within the container-to-host section.

-
§custom_tables: Option<Vec<Table>>
👎Deprecated since 1.2.0: Provide the custom tables in the nftables backend-defaults section instead. This field will be removed with release 2.0.0.
§custom_tables: Option<Vec<Table>>
👎Deprecated since 1.2.0: Provide the custom tables in the nftables backend-defaults section instead. This field will be removed with release 2.0.0.

This field is DEPRECATED!

Provide the custom tables in the nftables backend-defaults section instead. (This field will be removed with release 2.0.0.)

Please consult the firewall-backend documentation if you want to know how to use this field.

-

Trait Implementations§

source§

impl Clone for GlobalDefaults

source§

fn clone(&self) -> GlobalDefaults

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 GlobalDefaults

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for GlobalDefaults

source§

fn default() -> GlobalDefaults

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GlobalDefaults

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for GlobalDefaults

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<GlobalDefaults> for GlobalDefaults

source§

fn eq(&self, other: &GlobalDefaults) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +

Trait Implementations§

source§

impl Clone for GlobalDefaults

source§

fn clone(&self) -> GlobalDefaults

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 GlobalDefaults

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for GlobalDefaults

source§

fn default() -> GlobalDefaults

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GlobalDefaults

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for GlobalDefaults

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for GlobalDefaults

source§

fn eq(&self, other: &GlobalDefaults) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for GlobalDefaults

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for GlobalDefaults

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for GlobalDefaults

source§

impl StructuralEq for GlobalDefaults

source§

impl StructuralPartialEq for GlobalDefaults

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for GlobalDefaults

source§

impl StructuralEq for GlobalDefaults

source§

impl StructuralPartialEq for GlobalDefaults

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.WiderWorldToContainer.html b/main/dfw/types/struct.WiderWorldToContainer.html index 3610a807..e0961c04 100644 --- a/main/dfw/types/struct.WiderWorldToContainer.html +++ b/main/dfw/types/struct.WiderWorldToContainer.html @@ -1,7 +1,7 @@ -WiderWorldToContainer in dfw::types - Rust
pub struct WiderWorldToContainer {
-    pub rules: Option<Vec<WiderWorldToContainerRule>>,
+WiderWorldToContainer in dfw::types - Rust
pub struct WiderWorldToContainer {
+    pub rules: Option<Vec<WiderWorldToContainerRule>>,
 }
Expand description

The wider-world-to-container section, defining how containers can reached from the wider world.

-

Fields§

§rules: Option<Vec<WiderWorldToContainerRule>>

An optional list of rules, see +

Fields§

§rules: Option<Vec<WiderWorldToContainerRule>>

An optional list of rules, see WiderWorldToContainerRule.

Example

The easiest way to define the rules is using TOMLs arrays of tables:

@@ -10,39 +10,39 @@

Example

# first rule here [[wider_world_to_container.rules]] # second rule here
-

Trait Implementations§

source§

impl Clone for WiderWorldToContainer

source§

fn clone(&self) -> WiderWorldToContainer

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 WiderWorldToContainer

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for WiderWorldToContainer

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for WiderWorldToContainer

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<WiderWorldToContainer> for WiderWorldToContainer

source§

fn eq(&self, other: &WiderWorldToContainer) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +

Trait Implementations§

source§

impl Clone for WiderWorldToContainer

source§

fn clone(&self) -> WiderWorldToContainer

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 WiderWorldToContainer

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for WiderWorldToContainer

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for WiderWorldToContainer

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for WiderWorldToContainer

source§

fn eq(&self, other: &WiderWorldToContainer) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for WiderWorldToContainer

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +) -> Result<Option<Vec<IptablesRule>>>
Process the current type within the given ProcessContext, returning zero or more rules to apply with nft.
source§

impl Process<Nftables> for WiderWorldToContainer

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for WiderWorldToContainer

source§

impl StructuralEq for WiderWorldToContainer

source§

impl StructuralPartialEq for WiderWorldToContainer

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for WiderWorldToContainer

source§

impl StructuralEq for WiderWorldToContainer

source§

impl StructuralPartialEq for WiderWorldToContainer

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/types/struct.WiderWorldToContainerRule.html b/main/dfw/types/struct.WiderWorldToContainerRule.html index c4b78f7e..ca84bc07 100644 --- a/main/dfw/types/struct.WiderWorldToContainerRule.html +++ b/main/dfw/types/struct.WiderWorldToContainerRule.html @@ -1,15 +1,15 @@ -WiderWorldToContainerRule in dfw::types - Rust
pub struct WiderWorldToContainerRule {
-    pub network: String,
-    pub dst_container: String,
-    pub expose_port: Vec<ExposePort>,
-    pub external_network_interface: Option<String>,
-    pub expose_via_ipv6: bool,
-    pub source_cidr_v4: Option<Vec<String>>,
-    pub source_cidr_v6: Option<Vec<String>>,
+WiderWorldToContainerRule in dfw::types - Rust
pub struct WiderWorldToContainerRule {
+    pub network: String,
+    pub dst_container: String,
+    pub expose_port: Vec<ExposePort>,
+    pub external_network_interface: Option<String>,
+    pub expose_via_ipv6: bool,
+    pub source_cidr_v4: Option<Vec<String>>,
+    pub source_cidr_v6: Option<Vec<String>>,
 }
Expand description

Definition for a rule to be used in the wider-world-to-container section.

-

Fields§

§network: String

Network of the destination container to apply the rule to.

-
§dst_container: String

Destination container to apply the rule to.

-
§expose_port: Vec<ExposePort>

Ports to apply the rule to.

+

Fields§

§network: String

Network of the destination container to apply the rule to.

+
§dst_container: String

Destination container to apply the rule to.

+
§expose_port: Vec<ExposePort>

Ports to apply the rule to.

Defined as:

  • @@ -50,13 +50,13 @@

    Example

    { host_port = 53, family = "udp" }, { host_port = 443, container_port = 8443 }, ]
-§external_network_interface: Option<String>

Specific external network interface to target.

-
§expose_via_ipv6: bool

Configure if the container should be exposed via IPv6, too. (Default: true).

+
§external_network_interface: Option<String>

Specific external network interface to target.

+
§expose_via_ipv6: bool

Configure if the container should be exposed via IPv6, too. (Default: true).

Example

expose_via_ipv6 = false
 
 expose_via_ipv6 = false
-
§source_cidr_v4: Option<Vec<String>>

Source CIDRs (IPv4) to which incoming traffic should be restricted.

+
§source_cidr_v4: Option<Vec<String>>

Source CIDRs (IPv4) to which incoming traffic should be restricted.

This can be:

  • @@ -73,7 +73,7 @@

    Example

    source_cidr_v4 = "127.0.0.0/8"
     
     source_cidr_v4 = ["127.0.0.0/8", "192.0.2.1/32"]
    -
§source_cidr_v6: Option<Vec<String>>

Source CIDRs (IPv6) to which incoming traffic should be restricted.

+
§source_cidr_v6: Option<Vec<String>>

Source CIDRs (IPv6) to which incoming traffic should be restricted.

This can be:

  • @@ -90,39 +90,39 @@

    Example

    source_cidr_v6 = "fe80::/10"
     
     source_cidr_v6 = ["fe80::/10", "2001:db8::/32"]
    -

Trait Implementations§

source§

impl Clone for WiderWorldToContainerRule

source§

fn clone(&self) -> WiderWorldToContainerRule

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 WiderWorldToContainerRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for WiderWorldToContainerRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for WiderWorldToContainerRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<WiderWorldToContainerRule> for WiderWorldToContainerRule

source§

fn eq(&self, other: &WiderWorldToContainerRule) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for WiderWorldToContainerRule

Trait Implementations§

source§

impl Clone for WiderWorldToContainerRule

source§

fn clone(&self) -> WiderWorldToContainerRule

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 WiderWorldToContainerRule

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for WiderWorldToContainerRule

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for WiderWorldToContainerRule

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for WiderWorldToContainerRule

source§

fn eq(&self, other: &WiderWorldToContainerRule) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl Process<Iptables> for WiderWorldToContainerRule

source§

fn process( &self, ctx: &ProcessContext<'_, Iptables> -) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Process<Nftables> for WiderWorldToContainerRule

source§

fn process( +) -> Result<Option<Vec<IptablesRule>>>

Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Process<Nftables> for WiderWorldToContainerRule

source§

fn process( &self, ctx: &ProcessContext<'_, Nftables> -) -> Result<Option<Vec<String>>>

Process the current type within the given ProcessContext, returning zero or more rules -to apply with nft.
source§

impl Eq for WiderWorldToContainerRule

source§

impl StructuralEq for WiderWorldToContainerRule

source§

impl StructuralPartialEq for WiderWorldToContainerRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an +) -> Result<Option<Vec<String>>>
Process the current type within the given ProcessContext, returning zero or more rules +to apply with nft.
source§

impl Eq for WiderWorldToContainerRule

source§

impl StructuralEq for WiderWorldToContainerRule

source§

impl StructuralPartialEq for WiderWorldToContainerRule

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Qwhere + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> ToOwned for Twhere - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where - S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where + S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere - T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere - T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file +[WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere + T: for<'de> Deserialize<'de>,

§

impl<T> SendSyncUnwindSafe for Twhere + T: Send + Sync + UnwindSafe + ?Sized,

\ No newline at end of file diff --git a/main/dfw/util/fn.load_file.html b/main/dfw/util/fn.load_file.html index 781ab9dc..63fada8b 100644 --- a/main/dfw/util/fn.load_file.html +++ b/main/dfw/util/fn.load_file.html @@ -1,3 +1,3 @@ -load_file in dfw::util - Rust

Function dfw::util::load_file

source ·
pub fn load_file<T>(file: &str) -> Result<T>where
+load_file in dfw::util - Rust

Function dfw::util::load_file

source ·
pub fn load_file<T>(file: &str) -> Result<T>where
     T: DeserializeOwned,
Expand description

Load single TOML-file from path and deserialize it into type T.

\ No newline at end of file diff --git a/main/dfw/util/fn.load_path.html b/main/dfw/util/fn.load_path.html index a93111c7..3545a366 100644 --- a/main/dfw/util/fn.load_path.html +++ b/main/dfw/util/fn.load_path.html @@ -1,4 +1,4 @@ -load_path in dfw::util - Rust

Function dfw::util::load_path

source ·
pub fn load_path<T>(path: &str) -> Result<T>where
+load_path in dfw::util - Rust

Function dfw::util::load_path

source ·
pub fn load_path<T>(path: &str) -> Result<T>where
     T: DeserializeOwned,
Expand description

Load all TOML-files from a path, concatenate their contents and deserialize the result into type T.

\ No newline at end of file diff --git a/main/dfw/util/index.html b/main/dfw/util/index.html index 3051b350..2d25df36 100644 --- a/main/dfw/util/index.html +++ b/main/dfw/util/index.html @@ -1,3 +1,3 @@ -dfw::util - Rust

Module dfw::util

source ·
Expand description

Utilities module

+dfw::util - Rust

Module dfw::util

source ·
Expand description

Utilities module

Traits

  • An extension trait for Future allowing synchronized execution of the future.

Functions

  • Load single TOML-file from path and deserialize it into type T.
  • Load all TOML-files from a path, concatenate their contents and deserialize the result into type T.
\ No newline at end of file diff --git a/main/dfw/util/trait.FutureExt.html b/main/dfw/util/trait.FutureExt.html index 25025174..e99ef39c 100644 --- a/main/dfw/util/trait.FutureExt.html +++ b/main/dfw/util/trait.FutureExt.html @@ -1,8 +1,8 @@ -FutureExt in dfw::util - Rust

Trait dfw::util::FutureExt

source ·
pub trait FutureExt: Futurewhere
-    Self: Sized,{
+FutureExt in dfw::util - Rust

Trait dfw::util::FutureExt

source ·
pub trait FutureExt: Futurewhere
+    Self: Sized,{
     // Provided method
-    fn sync(self) -> Self::Output { ... }
+    fn sync(self) -> Self::Output { ... }
 }
Expand description

An extension trait for Future allowing synchronized execution of the future.

-

Provided Methods§

source

fn sync(self) -> Self::Output

Execute future synchronously, blocking until a result can be returned.

-

Implementors§

source§

impl<F> FutureExt for Fwhere - F: Future + Sized,

\ No newline at end of file +

Provided Methods§

source

fn sync(self) -> Self::Output

Execute future synchronously, blocking until a result can be returned.

+

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<F> FutureExt for Fwhere + F: Future + Sized,

\ No newline at end of file diff --git a/main/help.html b/main/help.html index 78a602d3..55dad0d2 100644 --- a/main/help.html +++ b/main/help.html @@ -1 +1 @@ -Rustdoc help

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/main/implementors/core/clone/trait.Clone.js b/main/implementors/core/clone/trait.Clone.js deleted file mode 100644 index dec78a1d..00000000 --- a/main/implementors/core/clone/trait.Clone.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl Clone for Family"],["impl<B> Clone for DFW<B>where\n B: FirewallBackend + Clone,\n DFW<B>: Process<B>,\n B::Defaults: Clone,"],["impl Clone for ChainPolicy"],["impl Clone for ExposePort"],["impl Clone for Type"],["impl Clone for PolicyOrRule"],["impl Clone for WiderWorldToContainerRule"],["impl Clone for ContainerToContainer"],["impl Clone for GlobalDefaults"],["impl Clone for Defaults"],["impl Clone for ContainerDNAT"],["impl Clone for ContainerToHostRule"],["impl Clone for ContainerToContainerRule"],["impl Clone for RuleVerdict"],["impl Clone for IptablesRuleDiscriminants"],["impl Clone for WiderWorldToContainer"],["impl Clone for ContainerFilter"],["impl Clone for ExposePortBuilder"],["impl Clone for Defaults"],["impl Clone for ProcessingOptions"],["impl Clone for ContainerToHost"],["impl Clone for Table"],["impl Clone for ContainerDNATRule"],["impl Clone for IptablesRule"],["impl Clone for Initialization"],["impl Clone for Initialization"],["impl Clone for Hook"],["impl Clone for ContainerToWiderWorldRule"],["impl Clone for ContainerToWiderWorld"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/cmp/trait.Eq.js b/main/implementors/core/cmp/trait.Eq.js deleted file mode 100644 index 56107ad4..00000000 --- a/main/implementors/core/cmp/trait.Eq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl Eq for ContainerToHostRule"],["impl Eq for Table"],["impl Eq for ContainerDNATRule"],["impl<B> Eq for DFW<B>where\n B: FirewallBackend + Eq,\n DFW<B>: Process<B>,\n B::Defaults: Eq,"],["impl Eq for ContainerToContainerRule"],["impl Eq for IptablesRuleDiscriminants"],["impl Eq for Defaults"],["impl Eq for ProcessingOptions"],["impl Eq for WiderWorldToContainerRule"],["impl Eq for RuleVerdict"],["impl Eq for ContainerToContainer"],["impl Eq for ExposePort"],["impl Eq for GlobalDefaults"],["impl Eq for ContainerToWiderWorldRule"],["impl Eq for Initialization"],["impl Eq for ContainerToHost"],["impl Eq for Initialization"],["impl Eq for ContainerFilter"],["impl Eq for ContainerToWiderWorld"],["impl Eq for WiderWorldToContainer"],["impl Eq for ContainerDNAT"],["impl Eq for Defaults"],["impl Eq for ChainPolicy"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/cmp/trait.PartialEq.js b/main/implementors/core/cmp/trait.PartialEq.js deleted file mode 100644 index 85a1dfd3..00000000 --- a/main/implementors/core/cmp/trait.PartialEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl PartialEq<ContainerFilter> for ContainerFilter"],["impl PartialEq<RuleVerdict> for RuleVerdict"],["impl PartialEq<Table> for Table"],["impl PartialEq<ChainPolicy> for ChainPolicy"],["impl PartialEq<ContainerDNAT> for ContainerDNAT"],["impl PartialEq<Defaults> for Defaults"],["impl PartialEq<ContainerToContainerRule> for ContainerToContainerRule"],["impl PartialEq<ContainerToHostRule> for ContainerToHostRule"],["impl PartialEq<Initialization> for Initialization"],["impl PartialEq<ProcessingOptions> for ProcessingOptions"],["impl PartialEq<IptablesRuleDiscriminants> for IptablesRuleDiscriminants"],["impl PartialEq<ContainerDNATRule> for ContainerDNATRule"],["impl PartialEq<ContainerToWiderWorld> for ContainerToWiderWorld"],["impl PartialEq<ExposePort> for ExposePort"],["impl PartialEq<WiderWorldToContainerRule> for WiderWorldToContainerRule"],["impl PartialEq<WiderWorldToContainer> for WiderWorldToContainer"],["impl PartialEq<ContainerToHost> for ContainerToHost"],["impl PartialEq<Initialization> for Initialization"],["impl PartialEq<ContainerToWiderWorldRule> for ContainerToWiderWorldRule"],["impl PartialEq<ContainerToContainer> for ContainerToContainer"],["impl PartialEq<Defaults> for Defaults"],["impl PartialEq<GlobalDefaults> for GlobalDefaults"],["impl<B> PartialEq<DFW<B>> for DFW<B>where\n B: FirewallBackend + PartialEq,\n DFW<B>: Process<B>,\n B::Defaults: PartialEq,"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/convert/trait.From.js b/main/implementors/core/convert/trait.From.js deleted file mode 100644 index 6b595d73..00000000 --- a/main/implementors/core/convert/trait.From.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl From<String> for ExposePortBuilderError"],["impl From<IptablesRule> for IptablesRuleDiscriminants"],["impl<'_enum> From<&'_enum IptablesRule> for IptablesRuleDiscriminants"],["impl From<UninitializedFieldError> for ExposePortBuilderError"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/default/trait.Default.js b/main/implementors/core/default/trait.Default.js deleted file mode 100644 index 30d29fed..00000000 --- a/main/implementors/core/default/trait.Default.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl Default for ExposePort"],["impl Default for RuleVerdict"],["impl Default for Table"],["impl Default for Defaults"],["impl Default for ExposePortBuilder"],["impl Default for ProcessingOptions"],["impl Default for ChainPolicy"],["impl Default for Initialization"],["impl Default for GlobalDefaults"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/fmt/trait.Debug.js b/main/implementors/core/fmt/trait.Debug.js deleted file mode 100644 index b3c91b00..00000000 --- a/main/implementors/core/fmt/trait.Debug.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl Debug for ContainerDNATRule"],["impl<B> Debug for DFW<B>where\n B: FirewallBackend + Debug,\n DFW<B>: Process<B>,\n B::Defaults: Debug,"],["impl Debug for IptablesRuleDiscriminants"],["impl Debug for ContainerToContainerRule"],["impl Debug for ContainerFilter"],["impl Debug for ExposePortBuilderError"],["impl Debug for Iptables"],["impl Debug for ProcessingOptions"],["impl Debug for Family"],["impl Debug for Defaults"],["impl Debug for ContainerToHostRule"],["impl Debug for ContainerToWiderWorld"],["impl Debug for ContainerToHost"],["impl Debug for Hook"],["impl Debug for PolicyOrRule"],["impl Debug for ExposePort"],["impl Debug for GlobalDefaults"],["impl Debug for ContainerDNAT"],["impl Debug for Initialization"],["impl Debug for ChainPolicy"],["impl Debug for Nftables"],["impl Debug for Defaults"],["impl Debug for DFWError"],["impl Debug for WiderWorldToContainerRule"],["impl Debug for Type"],["impl Debug for ContainerToWiderWorldRule"],["impl Debug for Initialization"],["impl Debug for IptablesRule"],["impl Debug for WiderWorldToContainer"],["impl Debug for RuleVerdict"],["impl Debug for Table"],["impl Debug for ContainerToContainer"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/fmt/trait.Display.js b/main/implementors/core/fmt/trait.Display.js deleted file mode 100644 index 2225648c..00000000 --- a/main/implementors/core/fmt/trait.Display.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl Display for DFWError"],["impl Display for Family"],["impl Display for ChainPolicy"],["impl Display for ExposePortBuilderError"],["impl Display for Hook"],["impl Display for Type"],["impl Display for RuleVerdict"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/hash/trait.Hash.js b/main/implementors/core/hash/trait.Hash.js deleted file mode 100644 index 14cdbc34..00000000 --- a/main/implementors/core/hash/trait.Hash.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl Hash for GlobalDefaults"],["impl Hash for ChainPolicy"],["impl Hash for ContainerDNAT"],["impl Hash for WiderWorldToContainer"],["impl Hash for ContainerToHostRule"],["impl Hash for ContainerToWiderWorld"],["impl Hash for ExposePort"],["impl Hash for RuleVerdict"],["impl Hash for Table"],["impl Hash for ContainerToContainer"],["impl Hash for WiderWorldToContainerRule"],["impl Hash for ContainerToHost"],["impl Hash for ContainerToContainerRule"],["impl Hash for ContainerToWiderWorldRule"],["impl Hash for ContainerDNATRule"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/marker/trait.Copy.js b/main/implementors/core/marker/trait.Copy.js deleted file mode 100644 index 358d25ea..00000000 --- a/main/implementors/core/marker/trait.Copy.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl Copy for Hook"],["impl Copy for ChainPolicy"],["impl Copy for IptablesRuleDiscriminants"],["impl Copy for Type"],["impl Copy for Family"],["impl Copy for RuleVerdict"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/marker/trait.StructuralEq.js b/main/implementors/core/marker/trait.StructuralEq.js deleted file mode 100644 index 82c8829b..00000000 --- a/main/implementors/core/marker/trait.StructuralEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl StructuralEq for ContainerFilter"],["impl StructuralEq for ContainerToContainer"],["impl StructuralEq for ContainerToHostRule"],["impl StructuralEq for IptablesRuleDiscriminants"],["impl StructuralEq for ContainerToWiderWorldRule"],["impl StructuralEq for ChainPolicy"],["impl StructuralEq for Defaults"],["impl StructuralEq for WiderWorldToContainerRule"],["impl StructuralEq for Table"],["impl StructuralEq for ContainerToWiderWorld"],["impl StructuralEq for Defaults"],["impl StructuralEq for ContainerToHost"],["impl StructuralEq for ContainerDNATRule"],["impl StructuralEq for GlobalDefaults"],["impl StructuralEq for Initialization"],["impl StructuralEq for ContainerToContainerRule"],["impl StructuralEq for RuleVerdict"],["impl<B> StructuralEq for DFW<B>where\n B: FirewallBackend,\n DFW<B>: Process<B>,"],["impl StructuralEq for ExposePort"],["impl StructuralEq for ContainerDNAT"],["impl StructuralEq for ProcessingOptions"],["impl StructuralEq for WiderWorldToContainer"],["impl StructuralEq for Initialization"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/marker/trait.StructuralPartialEq.js b/main/implementors/core/marker/trait.StructuralPartialEq.js deleted file mode 100644 index bddd958e..00000000 --- a/main/implementors/core/marker/trait.StructuralPartialEq.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl StructuralPartialEq for RuleVerdict"],["impl StructuralPartialEq for ContainerToHost"],["impl StructuralPartialEq for WiderWorldToContainer"],["impl StructuralPartialEq for ContainerToHostRule"],["impl StructuralPartialEq for ContainerToWiderWorldRule"],["impl StructuralPartialEq for WiderWorldToContainerRule"],["impl StructuralPartialEq for Defaults"],["impl StructuralPartialEq for ProcessingOptions"],["impl StructuralPartialEq for ContainerToContainerRule"],["impl StructuralPartialEq for ContainerToWiderWorld"],["impl StructuralPartialEq for ContainerFilter"],["impl StructuralPartialEq for IptablesRuleDiscriminants"],["impl StructuralPartialEq for Defaults"],["impl StructuralPartialEq for Initialization"],["impl StructuralPartialEq for ContainerDNAT"],["impl<B> StructuralPartialEq for DFW<B>where\n B: FirewallBackend,\n DFW<B>: Process<B>,"],["impl StructuralPartialEq for ContainerToContainer"],["impl StructuralPartialEq for Initialization"],["impl StructuralPartialEq for ExposePort"],["impl StructuralPartialEq for GlobalDefaults"],["impl StructuralPartialEq for ContainerDNATRule"],["impl StructuralPartialEq for ChainPolicy"],["impl StructuralPartialEq for Table"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/serde/de/trait.Deserialize.js b/main/implementors/serde/de/trait.Deserialize.js deleted file mode 100644 index 92860f95..00000000 --- a/main/implementors/serde/de/trait.Deserialize.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = { -"dfw":[["impl<'de> Deserialize<'de> for Defaults"],["impl<'de> Deserialize<'de> for ContainerToWiderWorld"],["impl<'de> Deserialize<'de> for ChainPolicy"],["impl<'de> Deserialize<'de> for ContainerToHost"],["impl<'de> Deserialize<'de> for ContainerDNAT"],["impl<'de> Deserialize<'de> for Defaults"],["impl<'de> Deserialize<'de> for Initialization"],["impl<'de> Deserialize<'de> for ExposePort"],["impl<'de> Deserialize<'de> for ContainerToHostRule"],["impl<'de> Deserialize<'de> for Table"],["impl<'de> Deserialize<'de> for WiderWorldToContainer"],["impl<'de> Deserialize<'de> for ContainerToContainer"],["impl<'de> Deserialize<'de> for ContainerToWiderWorldRule"],["impl<'de> Deserialize<'de> for GlobalDefaults"],["impl<'de> Deserialize<'de> for ContainerToContainerRule"],["impl<'de, B> Deserialize<'de> for DFW<B>where\n B: FirewallBackend,\n DFW<B>: Process<B>,"],["impl<'de> Deserialize<'de> for RuleVerdict"],["impl<'de> Deserialize<'de> for WiderWorldToContainerRule"],["impl<'de> Deserialize<'de> for Initialization"],["impl<'de> Deserialize<'de> for ContainerDNATRule"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/search-index.js b/main/search-index.js index 6aeb8f8a..235bfec4 100644 --- a/main/search-index.js +++ b/main/search-index.js @@ -1,5 +1,5 @@ var searchIndex = JSON.parse('{\ -"dfw":{"doc":"DFW - Docker Firewall Framework in Rust","t":"QIQKAAAAAAENNNGNLLLLLLLLLLLLLLMMMDEENENNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAMMMMMMDDLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLMMNNENNENNNNNNNDNNNNELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLADDDLLLLLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLMLLLMMLLLLLLLLLLLLNEIDDNLLLLLLLLLLMLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLNNEDDDDDDDDDNNDDEDNENNDDLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMMMMMMLLLLLMMMMLLLLLLLLLLLLLLLMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLMMMMMLLMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMIFFL","n":["Defaults","FirewallBackend","Rule","apply","errors","iptables","nftables","process","types","util","DFWError","Err","NFTablesError","Ok","Result","TraitMethodUnimplemented","as_fail","backtrace","borrow","borrow_mut","cause","fmt","fmt","from","into","name","to_string","try_from","try_into","type_id","method","stderr","stdout","Iptables","IptablesRule","IptablesRuleDiscriminants","Policy","PolicyOrRule","Rule","V4","V4","V6","V6","apply","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_rules","into","into","into","into","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","types","chain","chain","policy","table","table","value","Defaults","Initialization","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","initialization","into","into","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","v4","v6","Arp","Bridge","Family","Filter","Forward","Hook","Inet","Ingress","Input","Ip","Ip6","Nat","Netdev","Nftables","Output","Postrouting","Prerouting","Route","Type","apply","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","into","into","into","into","process","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","types","Defaults","Initialization","Table","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","chains","clone","clone","clone","clone_into","clone_into","clone_into","custom_tables","default","default","default","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","hash","initialization","into","into","into","name","rules","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","All","ContainerFilter","Process","ProcessContext","ProcessingOptions","Running","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","container_filter","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","into","into","into","new","process","process","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","Accept","Accept","ChainPolicy","ContainerDNAT","ContainerDNATRule","ContainerToContainer","ContainerToContainerRule","ContainerToHost","ContainerToHostRule","ContainerToWiderWorld","ContainerToWiderWorldRule","DFW","Drop","Drop","ExposePort","ExposePortBuilder","ExposePortBuilderError","GlobalDefaults","Reject","RuleVerdict","UninitializedField","ValidationError","WiderWorldToContainer","WiderWorldToContainerRule","as_fail","backend_defaults","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","container_dnat","container_port","container_port","container_port","container_to_container","container_to_host","container_to_wider_world","custom_tables","default","default","default","default","default","default_docker_bridge_to_host_policy","default_policy","default_policy","default_policy","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dst_container","dst_container","dst_container","dst_network","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","expose_port","expose_port","expose_via_ipv6","external_network_interface","external_network_interface","external_network_interfaces","family","family","family","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_str","from_str","from_str","global_defaults","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","host_port","host_port","host_port","initialization","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","matches","matches","matches","network","network","network","network","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","rules","rules","rules","rules","rules","serialize","serialize","source_cidr_v4","source_cidr_v6","src_container","src_container","src_container","src_container","src_network","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verdict","verdict","verdict","wider_world_to_container","FutureExt","load_file","load_path","sync"],"q":[[0,"dfw"],[10,"dfw::errors"],[30,"dfw::errors::DFWError"],[33,"dfw::iptables"],[94,"dfw::iptables::PolicyOrRule"],[100,"dfw::iptables::types"],[137,"dfw::nftables"],[206,"dfw::nftables::types"],[266,"dfw::process"],[314,"dfw::types"],[710,"dfw::util"],[714,"alloc::vec"],[715,"failure"],[716,"failure::backtrace"],[717,"core::option"],[718,"core::fmt"],[719,"core::fmt"],[720,"core::result"],[721,"core::any"],[722,"serde::de"],[723,"core::fmt"],[724,"bollard::docker"],[725,"slog"],[726,"core::clone"],[727,"core::cmp"],[728,"core::fmt"],[729,"slog"],[730,"slog"]],"d":["Associated type representing the firewall backend …","This trait is used to distinguish between different …","Associated type identifying the rule-type returned.","Apply the processed rules.","Errors, using failure.","This module implements the iptables backend for DFW.","This module implements the nftables backend for DFW.","This module holds the types related to configuration …","The types in this module make up the structure of the …","Utilities module","","Contains the error value","","Contains the success value","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","Marker struct to implement iptables as a firewall backend.","Rule representation for iptables firewall backend.","Auto-generated discriminant enum variants","Rule specifying a chain policy.","Policy or rule representation for iptables firewall …","Actual filter rule that will be added to a chain.","IPv4","IPv4","IPv6","IPv6","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Retrieve the current text that would be passed to …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","The types in this module make up the structure of the …","Associated iptables chain.","Associated iptables chain.","Policy to set.","Associated iptables table.","Associated iptables table.","The rule itself in valid iptables syntax.","The defaults/configuration for the iptables backend.","The initialization section allows you to add custom rules …","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","The optional initialization section.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Initialization rules for iptables (IPv4). Expects a map …","Initialization rules for ip6tables (IPv6). Expects a map …","ARP table family","Bridge table family","Representation of nftables table-families.","Is used to filter packets.","Forward allows traffic-filtering for packets that were not …","Representation of nftables chain hooks.","Dualstack IPv4/IPv6 table family","Ingress allows traffic-filtering before pre-routing, after …","Input allows traffic-filtering for packets that have been …","IPv4 table family","IPv6 table family","Is used to perform Networking Address Translation (NAT).","Netdev table family","Marker struct to implement nftables as a firewall backend.","Output allows traffic-filtering for packets leaving the …","Postrouting allows traffic-filtering for already routed …","Prerouting allows traffic-filtering before the packets …","Is used to reroute packets if any relevant IP header field …","Representation of nftables chain-types.","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","The types in this module make up the structure of the …","The defaults/configuration for the nftables backend.","The initialization section allows you to execute any …","Reference to an nftables table, specifically to the input- …","","","","","","","Names of the input and forward chains defined within the …","","","","","","","Specify the names of custom nft-tables that should be …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","The optional initialization section.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Name of the custom table.","Initialization rules for nftables","","","","","","","","","","","","","Process all containers, i.e. don’t filter.","Option to filter the containers to be processed","This trait allows a type to define its own processing …","Enclosing struct to manage rule processing.","Options to configure the processing procedure.","Only process running containers.","","","","","","","","","","","Option to filter the containers to be processed, see …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new instance of ProcessDFW for rule processing.","Process the current type within the given ProcessContext, …","Start the processing using the configuration given at …","","","","","","","","","","","","The accept verdict means that the packet will keep …","The accept verdict means that the packet will keep …","Representation of chain policies.","The container-DNAT section, defining how containers can …","Definition for a rule to be used in the container-DNAT …","The container-to-container section, defining how …","Definition for a rule to be used in the …","The container-to-host section, defining how containers can …","Definition for a rule to be used in the container-to-host …","The container-to-wider-world section, defining how …","Definition for a rule to be used in the …","DFW is the parent type defining the complete configuration …","The drop verdict means that the packet is discarded if the …","The drop verdict means that the packet is discarded if the …","Struct to hold a port definition to expose on the …","Builder for ExposePort.","Error type for ExposePortBuilder","The default configuration section, used by DFW for rule …","The reject verdict means that the packet is responded to …","Representation of rule policies.","Uninitialized field","Custom validation error","The wider-world-to-container section, defining how …","Definition for a rule to be used in the …","","The backend_defaults configuration section","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Builds a new ExposePort.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The container_dnat configuration section","Port the host_port should map to into the container.","Port the host_port should map to into the container.","Port the host_port should map to into the container.","The container_to_container configuration section","The container_to_host configuration section","The container_to_wider_world configuration section","This field is DEPRECATED!","","","","","","This defines whether the default Docker bridge (usually …","The default_policy defines the default for when there is …","The default_policy defines the default for when there is …","The default_policy defines the default for when there is …","","","","","","","","","","","","","","","","Destination container to apply the rule to.","Destination container to apply the rule to.","Destination container to apply the rule to.","Network of the destination container to apply the rule to.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Ports to apply the rule to.","Ports to apply the rule to.","Configure if the container should be exposed via IPv6, …","Specific external network interface to target.","Specific external network interface to target.","This defines the external network interfaces of the host …","Family of the exposed port.","Family of the exposed port.","Family of the exposed port.","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert a formatted string into a ExposePort.","","","The defaults configuration section.","","","","","","","","","","","","","","","Port the container_port should be exposed to on the host.","Port the container_port should be exposed to on the host.","Port the container_port should be exposed to on the host.","This field is DEPRECATED!","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Additional match-string, which will be added to the …","Additional match-string, which will be added to the …","Additional match-string, which will be added to the …","Common network between the source container and the …","Network of the source container to apply the rule to.","Network of the source container to apply the rule to.","Network of the destination container to apply the rule to.","","","","","","","","","","","","","","","","","","","","","","","","","An optional list of rules, see ContainerToContainerRule.","An optional list of rules, see ContainerToWiderWorldRule.","An optional list of rules, see ContainerToHostRule.","An optional list of rules, see WiderWorldToContainerRule.","An optional list of rules, see ContainerDNATRule.","","","Source CIDRs (IPv4) to which incoming traffic should be …","Source CIDRs (IPv6) to which incoming traffic should be …","Source container to apply the rule to.","Source container to apply the rule to.","Source container to apply the rule to.","Source container to apply the rule to.","Network of the source container to apply the rule to.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Verdict for rule (accept, drop or reject).","Verdict for rule (accept, drop or reject).","Verdict for rule (accept, drop or reject).","The wider_world_to_container configuration section","An extension trait for Future allowing synchronized …","Load single TOML-file from path and deserialize it into …","Load all TOML-files from a path, concatenate their …","Execute future synchronously, blocking until a result can …"],"i":[37,0,37,37,0,0,0,0,0,0,0,4,6,4,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,64,65,65,0,0,0,18,0,18,16,17,16,17,15,15,16,17,18,15,16,17,18,16,17,18,16,17,18,17,17,17,17,15,16,17,18,15,16,17,17,17,18,15,15,16,17,18,15,16,17,18,15,16,17,18,15,16,17,18,15,16,17,18,0,66,67,66,66,67,67,0,0,20,21,20,21,20,21,20,21,20,21,20,21,20,20,20,21,21,21,20,21,20,21,20,20,21,20,21,20,21,20,21,20,21,21,21,24,24,0,25,26,0,24,26,26,24,24,25,24,0,26,26,26,25,0,23,23,24,25,26,23,24,25,26,24,25,26,24,25,26,23,24,24,25,25,26,26,23,24,25,26,23,24,25,26,23,24,25,26,24,25,26,23,24,25,26,23,24,25,26,23,24,25,26,0,0,0,0,28,29,30,28,29,30,29,28,29,30,28,29,30,28,28,29,30,28,29,30,28,29,30,28,28,28,29,29,29,30,30,30,28,29,30,28,29,30,29,28,28,29,30,29,30,28,29,30,28,29,30,28,29,30,28,29,30,32,0,0,0,0,32,2,32,33,2,32,33,32,33,32,33,33,33,32,33,32,32,32,33,33,33,32,33,2,32,33,2,32,33,2,68,2,32,33,2,32,33,2,32,33,2,32,33,53,54,0,0,0,0,0,0,0,0,0,0,53,54,0,0,0,0,54,0,40,40,0,0,40,35,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,38,35,42,43,44,45,46,47,48,49,50,38,39,51,52,53,54,35,42,43,44,45,46,47,48,49,50,38,39,51,52,53,54,35,38,38,39,35,35,35,42,42,38,39,53,54,42,43,45,47,35,42,43,44,45,46,47,48,49,50,39,51,52,53,54,44,50,52,52,35,42,43,44,45,46,47,48,49,50,39,51,52,53,54,35,35,35,42,42,42,43,43,43,44,44,44,45,45,45,46,46,46,47,47,47,48,48,48,49,49,49,50,50,50,39,39,39,51,51,51,52,52,52,53,53,53,54,54,54,50,52,50,46,50,42,38,38,39,35,42,43,44,45,46,47,48,49,50,40,40,39,51,52,53,53,54,54,35,42,43,44,45,46,47,48,49,50,38,40,40,40,39,51,52,53,54,39,53,54,35,42,43,44,45,46,47,48,49,50,39,51,52,53,54,38,38,39,35,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,44,46,48,44,46,48,50,35,35,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,43,45,47,49,51,53,54,50,50,44,46,48,52,52,35,42,43,44,45,46,47,48,49,50,38,39,51,52,53,54,40,53,54,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,53,54,54,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,44,46,48,35,0,0,0,69],"f":[0,0,0,[[1,[2,[-1]]],[[4,[3]]],[]],0,0,0,0,0,0,0,0,0,0,0,0,[-1,5,[]],[6,[[8,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[6,[[8,[5]]]],[[6,9],10],[[6,9],10],[-1,-1,[]],[-1,-2,[],[]],[6,[[8,[11]]]],[-1,12,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,[2,[15]]],[[4,[3]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[16,16],[17,17],[18,18],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[17,17],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[15,9],10],[[16,9],10],[[17,9],10],[[18,9],10],[-1,-1,[]],[-1,-1,[]],[16,17],[-1,-1,[]],[16,17],[-1,-1,[]],[[[1,[16]],17],[[1,[12]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[20,20],[21,21],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[-1,[[13,[20]]],22],[-1,[[13,[21]]],22],[[20,20],19],[[21,21],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[20,9],10],[[21,9],10],[-1,-1,[]],[-1,-1,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,[2,[23]]],[[4,[3]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[24,24],[25,25],[26,26],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[23,9],10],[[24,9],10],[[24,9],[[13,[3,27]]]],[[25,9],[[13,[3,27]]]],[[25,9],10],[[26,9],10],[[26,9],[[13,[3,27]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,12,[]],[-1,12,[]],[-1,12,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[28,28],[29,29],[30,30],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[[],28],[[],29],[[],30],[-1,[[13,[28]]],22],[-1,[[13,[29]]],22],[-1,[[13,[30]]],22],[[28,28],19],[[29,29],19],[[30,30],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[28,9],10],[[29,9],10],[[30,9],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[29,-1],3,31],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[32,32],[33,33],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[[],33],[[32,32],19],[[33,33],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[32,9],10],[[33,9],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[34,[35,[-1]],33,36,19],[[4,[[2,[-1]]]]],37],[[-1,[2,[-2]]],[[4,[[8,[1]]]]],[],[]],[[[2,[-1]]],[[4,[3]]],37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,5,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,[[13,[39,40]]]],[[[35,[-1]]],[[35,[-1]]],[37,41]],[42,42],[43,43],[44,44],[45,45],[46,46],[47,47],[48,48],[49,49],[50,50],[38,38],[39,39],[51,51],[52,52],[53,53],[54,54],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[[38,[8,[55]]],38],0,0,0,0,0,0,[[],42],[[],38],[[],39],[[],53],[[],54],0,0,0,0,[-1,[[13,[[35,[-2]]]]],22,37],[-1,[[13,[42]]],22],[-1,[[13,[43]]],22],[-1,[[13,[44]]],22],[-1,[[13,[45]]],22],[-1,[[13,[46]]],22],[-1,[[13,[47]]],22],[-1,[[13,[48]]],22],[-1,[[13,[49]]],22],[-1,[[13,[50]]],22],[-1,[[13,[39]]],22],[-1,[[13,[51]]],22],[-1,[[13,[52]]],22],[-1,[[13,[53]]],22],[-1,[[13,[54]]],22],0,0,0,0,[[[35,[-1]],[35,[-1]]],19,[37,56]],[[42,42],19],[[43,43],19],[[44,44],19],[[45,45],19],[[46,46],19],[[47,47],19],[[48,48],19],[[49,49],19],[[50,50],19],[[39,39],19],[[51,51],19],[[52,52],19],[[53,53],19],[[54,54],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],0,0,0,0,0,0,[[38,12],38],0,0,[[[35,[-1]],9],10,[37,57]],[[42,9],10],[[43,9],10],[[44,9],10],[[45,9],10],[[46,9],10],[[47,9],10],[[48,9],10],[[49,9],10],[[50,9],10],[[40,9],10],[[40,9],10],[[39,9],10],[[51,9],10],[[52,9],10],[[53,9],10],[[53,9],[[13,[3,27]]]],[[54,9],10],[[54,9],[[13,[3,27]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[12,40],[58,40],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[11,[[13,[39]]]],[11,[[13,[53]]]],[11,[[13,[54]]]],0,[[42,-1],3,31],[[43,-1],3,31],[[44,-1],3,31],[[45,-1],3,31],[[46,-1],3,31],[[47,-1],3,31],[[48,-1],3,31],[[49,-1],3,31],[[50,-1],3,31],[[39,-1],3,31],[[51,-1],3,31],[[52,-1],3,31],[[53,-1],3,31],[[54,-1],3,31],[[38,55],38],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[[35,[15]],[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[[35,[23]],[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[42,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[42,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[43,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[43,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[44,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[44,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[45,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[45,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[46,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[46,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[47,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[47,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[48,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[48,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[49,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[49,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[50,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[50,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[51,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[51,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[52,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[52,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],0,0,0,0,0,[[53,59,60,61],62],[[54,59,60,61],62],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,12,[]],[-1,12,[]],[-1,12,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[11,[[13,[53]]]],[11,[[13,[54]]]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,[11,[[4,[-1]]],63],[11,[[4,[-1]]],63],[-1,[],[]]],"c":[414,571],"p":[[3,"Vec",714],[3,"ProcessContext",266],[15,"tuple"],[6,"Result",10],[8,"Fail",715],[4,"DFWError",10],[3,"Backtrace",716],[4,"Option",717],[3,"Formatter",718],[6,"Result",718],[15,"str"],[3,"String",719],[4,"Result",720],[3,"TypeId",721],[3,"Iptables",33],[4,"IptablesRule",33],[4,"IptablesRuleDiscriminants",33],[4,"PolicyOrRule",33],[15,"bool"],[3,"Defaults",100],[3,"Initialization",100],[8,"Deserializer",722],[3,"Nftables",137],[4,"Family",137],[4,"Type",137],[4,"Hook",137],[3,"Error",718],[3,"Defaults",206],[3,"Table",206],[3,"Initialization",206],[8,"Hasher",723],[4,"ContainerFilter",266],[3,"ProcessingOptions",266],[3,"Docker",724],[3,"DFW",314],[3,"Logger",725],[8,"FirewallBackend",0],[3,"ExposePortBuilder",314],[3,"ExposePort",314],[4,"ExposePortBuilderError",314],[8,"Clone",726],[3,"GlobalDefaults",314],[3,"ContainerToContainer",314],[3,"ContainerToContainerRule",314],[3,"ContainerToWiderWorld",314],[3,"ContainerToWiderWorldRule",314],[3,"ContainerToHost",314],[3,"ContainerToHostRule",314],[3,"WiderWorldToContainer",314],[3,"WiderWorldToContainerRule",314],[3,"ContainerDNAT",314],[3,"ContainerDNATRule",314],[4,"ChainPolicy",314],[4,"RuleVerdict",314],[15,"u16"],[8,"PartialEq",727],[8,"Debug",718],[3,"UninitializedFieldError",728],[3,"Record",725],[6,"Key",729],[8,"Serializer",725],[6,"Result",725],[8,"DeserializeOwned",722],[13,"TraitMethodUnimplemented",30],[13,"NFTablesError",30],[13,"Policy",94],[13,"Rule",94],[8,"Process",266],[8,"FutureExt",710]]}\ +"dfw":{"doc":"DFW - Docker Firewall Framework in Rust","t":"QIQKAAAAAAENNNGNLLLLLLLLLLLLLLMMMDEENENNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAMMMMMMDDLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLMMNNENNENNNNNNNDNNNNELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLADDDLLLLLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLMLLLMMLLLLLLLLLLLLNEIDDNLLLLLLLLLLMLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLNNEDDDDDDDDDNNDDEDNENNDDLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMMMMMMLLLLLMMMMLLLLLLLLLLLLLLLMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLMMMMMLLMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMIFFL","n":["Defaults","FirewallBackend","Rule","apply","errors","iptables","nftables","process","types","util","DFWError","Err","NFTablesError","Ok","Result","TraitMethodUnimplemented","as_fail","backtrace","borrow","borrow_mut","cause","fmt","fmt","from","into","name","to_string","try_from","try_into","type_id","method","stderr","stdout","Iptables","IptablesRule","IptablesRuleDiscriminants","Policy","PolicyOrRule","Rule","V4","V4","V6","V6","apply","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_rules","into","into","into","into","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","types","chain","chain","policy","table","table","value","Defaults","Initialization","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","initialization","into","into","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","v4","v6","Arp","Bridge","Family","Filter","Forward","Hook","Inet","Ingress","Input","Ip","Ip6","Nat","Netdev","Nftables","Output","Postrouting","Prerouting","Route","Type","apply","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","into","into","into","into","process","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","types","Defaults","Initialization","Table","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","chains","clone","clone","clone","clone_into","clone_into","clone_into","custom_tables","default","default","default","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","hash","initialization","into","into","into","name","rules","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","All","ContainerFilter","Process","ProcessContext","ProcessingOptions","Running","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","container_filter","default","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","into","into","into","new","process","process","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","Accept","Accept","ChainPolicy","ContainerDNAT","ContainerDNATRule","ContainerToContainer","ContainerToContainerRule","ContainerToHost","ContainerToHostRule","ContainerToWiderWorld","ContainerToWiderWorldRule","DFW","Drop","Drop","ExposePort","ExposePortBuilder","ExposePortBuilderError","GlobalDefaults","Reject","RuleVerdict","UninitializedField","ValidationError","WiderWorldToContainer","WiderWorldToContainerRule","as_fail","backend_defaults","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","container_dnat","container_port","container_port","container_port","container_to_container","container_to_host","container_to_wider_world","custom_tables","default","default","default","default","default","default_docker_bridge_to_host_policy","default_policy","default_policy","default_policy","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dst_container","dst_container","dst_container","dst_network","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","expose_port","expose_port","expose_via_ipv6","external_network_interface","external_network_interface","external_network_interfaces","family","family","family","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_str","from_str","from_str","global_defaults","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","host_port","host_port","host_port","initialization","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","matches","matches","matches","network","network","network","network","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","process","rules","rules","rules","rules","rules","serialize","serialize","source_cidr_v4","source_cidr_v6","src_container","src_container","src_container","src_container","src_network","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verdict","verdict","verdict","wider_world_to_container","FutureExt","load_file","load_path","sync"],"q":[[0,"dfw"],[10,"dfw::errors"],[30,"dfw::errors::DFWError"],[33,"dfw::iptables"],[94,"dfw::iptables::PolicyOrRule"],[100,"dfw::iptables::types"],[137,"dfw::nftables"],[206,"dfw::nftables::types"],[266,"dfw::process"],[314,"dfw::types"],[710,"dfw::util"],[714,"alloc::vec"],[715,"failure"],[716,"failure::backtrace"],[717,"core::option"],[718,"core::fmt"],[719,"core::fmt"],[720,"core::result"],[721,"core::any"],[722,"serde::de"],[723,"core::fmt"],[724,"bollard::docker"],[725,"slog"],[726,"core::clone"],[727,"core::cmp"],[728,"core::fmt"],[729,"slog"],[730,"slog"]],"d":["Associated type representing the firewall backend …","This trait is used to distinguish between different …","Associated type identifying the rule-type returned.","Apply the processed rules.","Errors, using failure.","This module implements the iptables backend for DFW.","This module implements the nftables backend for DFW.","This module holds the types related to configuration …","The types in this module make up the structure of the …","Utilities module","","Contains the error value","","Contains the success value","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","Marker struct to implement iptables as a firewall backend.","Rule representation for iptables firewall backend.","Auto-generated discriminant enum variants","Rule specifying a chain policy.","Policy or rule representation for iptables firewall …","Actual filter rule that will be added to a chain.","IPv4","IPv4","IPv6","IPv6","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Retrieve the current text that would be passed to …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","The types in this module make up the structure of the …","Associated iptables chain.","Associated iptables chain.","Policy to set.","Associated iptables table.","Associated iptables table.","The rule itself in valid iptables syntax.","The defaults/configuration for the iptables backend.","The initialization section allows you to add custom rules …","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","The optional initialization section.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Initialization rules for iptables (IPv4). Expects a map …","Initialization rules for ip6tables (IPv6). Expects a map …","ARP table family","Bridge table family","Representation of nftables table-families.","Is used to filter packets.","Forward allows traffic-filtering for packets that were not …","Representation of nftables chain hooks.","Dualstack IPv4/IPv6 table family","Ingress allows traffic-filtering before pre-routing, after …","Input allows traffic-filtering for packets that have been …","IPv4 table family","IPv6 table family","Is used to perform Networking Address Translation (NAT).","Netdev table family","Marker struct to implement nftables as a firewall backend.","Output allows traffic-filtering for packets leaving the …","Postrouting allows traffic-filtering for already routed …","Prerouting allows traffic-filtering before the packets …","Is used to reroute packets if any relevant IP header field …","Representation of nftables chain-types.","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","The types in this module make up the structure of the …","The defaults/configuration for the nftables backend.","The initialization section allows you to execute any …","Reference to an nftables table, specifically to the input- …","","","","","","","Names of the input and forward chains defined within the …","","","","","","","Specify the names of custom nft-tables that should be …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","The optional initialization section.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Name of the custom table.","Initialization rules for nftables","","","","","","","","","","","","","Process all containers, i.e. don’t filter.","Option to filter the containers to be processed","This trait allows a type to define its own processing …","Enclosing struct to manage rule processing.","Options to configure the processing procedure.","Only process running containers.","","","","","","","","","","","Option to filter the containers to be processed, see …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new instance of ProcessDFW for rule processing.","Process the current type within the given ProcessContext, …","Start the processing using the configuration given at …","","","","","","","","","","","","The accept verdict means that the packet will keep …","The accept verdict means that the packet will keep …","Representation of chain policies.","The container-DNAT section, defining how containers can …","Definition for a rule to be used in the container-DNAT …","The container-to-container section, defining how …","Definition for a rule to be used in the …","The container-to-host section, defining how containers can …","Definition for a rule to be used in the container-to-host …","The container-to-wider-world section, defining how …","Definition for a rule to be used in the …","DFW is the parent type defining the complete configuration …","The drop verdict means that the packet is discarded if the …","The drop verdict means that the packet is discarded if the …","Struct to hold a port definition to expose on the …","Builder for ExposePort.","Error type for ExposePortBuilder","The default configuration section, used by DFW for rule …","The reject verdict means that the packet is responded to …","Representation of rule policies.","Uninitialized field","Custom validation error","The wider-world-to-container section, defining how …","Definition for a rule to be used in the …","","The backend_defaults configuration section","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Builds a new ExposePort.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The container_dnat configuration section","Port the host_port should map to into the container.","Port the host_port should map to into the container.","Port the host_port should map to into the container.","The container_to_container configuration section","The container_to_host configuration section","The container_to_wider_world configuration section","This field is DEPRECATED!","","","","","","This defines whether the default Docker bridge (usually …","The default_policy defines the default for when there is …","The default_policy defines the default for when there is …","The default_policy defines the default for when there is …","","","","","","","","","","","","","","","","Destination container to apply the rule to.","Destination container to apply the rule to.","Destination container to apply the rule to.","Network of the destination container to apply the rule to.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Ports to apply the rule to.","Ports to apply the rule to.","Configure if the container should be exposed via IPv6, …","Specific external network interface to target.","Specific external network interface to target.","This defines the external network interfaces of the host …","Family of the exposed port.","Family of the exposed port.","Family of the exposed port.","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert a formatted string into a ExposePort.","","","The defaults configuration section.","","","","","","","","","","","","","","","Port the container_port should be exposed to on the host.","Port the container_port should be exposed to on the host.","Port the container_port should be exposed to on the host.","This field is DEPRECATED!","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Additional match-string, which will be added to the …","Additional match-string, which will be added to the …","Additional match-string, which will be added to the …","Common network between the source container and the …","Network of the source container to apply the rule to.","Network of the source container to apply the rule to.","Network of the destination container to apply the rule to.","","","","","","","","","","","","","","","","","","","","","","","","","An optional list of rules, see ContainerToContainerRule.","An optional list of rules, see ContainerToWiderWorldRule.","An optional list of rules, see ContainerToHostRule.","An optional list of rules, see WiderWorldToContainerRule.","An optional list of rules, see ContainerDNATRule.","","","Source CIDRs (IPv4) to which incoming traffic should be …","Source CIDRs (IPv6) to which incoming traffic should be …","Source container to apply the rule to.","Source container to apply the rule to.","Source container to apply the rule to.","Source container to apply the rule to.","Network of the source container to apply the rule to.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Verdict for rule (accept, drop or reject).","Verdict for rule (accept, drop or reject).","Verdict for rule (accept, drop or reject).","The wider_world_to_container configuration section","An extension trait for Future allowing synchronized …","Load single TOML-file from path and deserialize it into …","Load all TOML-files from a path, concatenate their …","Execute future synchronously, blocking until a result can …"],"i":[37,0,37,37,0,0,0,0,0,0,0,4,6,4,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,64,65,65,0,0,0,18,0,18,16,17,16,17,15,15,16,17,18,15,16,17,18,16,17,18,16,17,18,17,17,17,17,15,16,17,18,15,16,17,17,17,18,15,15,16,17,18,15,16,17,18,15,16,17,18,15,16,17,18,15,16,17,18,0,66,67,66,66,67,67,0,0,20,21,20,21,20,21,20,21,20,21,20,21,20,20,20,21,21,21,20,21,20,21,20,20,21,20,21,20,21,20,21,20,21,21,21,24,24,0,25,26,0,24,26,26,24,24,25,24,0,26,26,26,25,0,23,23,24,25,26,23,24,25,26,24,25,26,24,25,26,23,24,24,25,25,26,26,23,24,25,26,23,24,25,26,23,24,25,26,24,25,26,23,24,25,26,23,24,25,26,23,24,25,26,0,0,0,0,28,29,30,28,29,30,29,28,29,30,28,29,30,28,28,29,30,28,29,30,28,29,30,28,28,28,29,29,29,30,30,30,28,29,30,28,29,30,29,28,28,29,30,29,30,28,29,30,28,29,30,28,29,30,28,29,30,32,0,0,0,0,32,2,32,33,2,32,33,32,33,32,33,33,33,32,33,32,32,32,33,33,33,32,33,2,32,33,2,32,33,2,68,2,32,33,2,32,33,2,32,33,2,32,33,53,54,0,0,0,0,0,0,0,0,0,0,53,54,0,0,0,0,54,0,40,40,0,0,40,35,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,38,35,42,43,44,45,46,47,48,49,50,38,39,51,52,53,54,35,42,43,44,45,46,47,48,49,50,38,39,51,52,53,54,35,38,38,39,35,35,35,42,42,38,39,53,54,42,43,45,47,35,42,43,44,45,46,47,48,49,50,39,51,52,53,54,44,50,52,52,35,42,43,44,45,46,47,48,49,50,39,51,52,53,54,35,35,35,42,42,42,43,43,43,44,44,44,45,45,45,46,46,46,47,47,47,48,48,48,49,49,49,50,50,50,39,39,39,51,51,51,52,52,52,53,53,53,54,54,54,50,52,50,46,50,42,38,38,39,35,42,43,44,45,46,47,48,49,50,40,40,39,51,52,53,53,54,54,35,42,43,44,45,46,47,48,49,50,38,40,40,40,39,51,52,53,54,39,53,54,35,42,43,44,45,46,47,48,49,50,39,51,52,53,54,38,38,39,35,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,44,46,48,44,46,48,50,35,35,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,43,45,47,49,51,53,54,50,50,44,46,48,52,52,35,42,43,44,45,46,47,48,49,50,38,39,51,52,53,54,40,53,54,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,53,54,54,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,35,42,43,44,45,46,47,48,49,50,38,40,39,51,52,53,54,44,46,48,35,0,0,0,69],"f":[0,0,0,[[1,[2,[-1]]],[[4,[3]]],[]],0,0,0,0,0,0,0,0,0,0,0,0,[-1,5,[]],[6,[[8,[7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[6,[[8,[5]]]],[[6,9],10],[[6,9],10],[-1,-1,[]],[-1,-2,[],[]],[6,[[8,[11]]]],[-1,12,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,[2,[15]]],[[4,[3]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[16,16],[17,17],[18,18],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[17,17],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[15,9],10],[[16,9],10],[[17,9],10],[[18,9],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[16,17],[16,17],[-1,-1,[]],[[[1,[16]],17],[[1,[12]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[20,20],[21,21],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[-1,[[13,[20]]],22],[-1,[[13,[21]]],22],[[20,20],19],[[21,21],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[20,9],10],[[21,9],10],[-1,-1,[]],[-1,-1,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[1,[2,[23]]],[[4,[3]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[24,24],[25,25],[26,26],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[23,9],10],[[24,9],10],[[24,9],[[13,[3,27]]]],[[25,9],[[13,[3,27]]]],[[25,9],10],[[26,9],[[13,[3,27]]]],[[26,9],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,12,[]],[-1,12,[]],[-1,12,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[28,28],[29,29],[30,30],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[[],28],[[],29],[[],30],[-1,[[13,[28]]],22],[-1,[[13,[29]]],22],[-1,[[13,[30]]],22],[[28,28],19],[[29,29],19],[[30,30],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[28,9],10],[[29,9],10],[[30,9],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[29,-1],3,31],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[32,32],[33,33],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[[],33],[[32,32],19],[[33,33],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[32,9],10],[[33,9],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[34,[35,[-1]],33,36,19],[[4,[[2,[-1]]]]],37],[[-1,[2,[-2]]],[[4,[[8,[1]]]]],[],[]],[[[2,[-1]]],[[4,[3]]],37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,5,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,[[13,[39,40]]]],[[[35,[-1]]],[[35,[-1]]],[37,41]],[42,42],[43,43],[44,44],[45,45],[46,46],[47,47],[48,48],[49,49],[50,50],[38,38],[39,39],[51,51],[52,52],[53,53],[54,54],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],[[-1,-2],3,[],[]],0,[[38,[8,[55]]],38],0,0,0,0,0,0,[[],42],[[],38],[[],39],[[],53],[[],54],0,0,0,0,[-1,[[13,[[35,[-2]]]]],22,37],[-1,[[13,[42]]],22],[-1,[[13,[43]]],22],[-1,[[13,[44]]],22],[-1,[[13,[45]]],22],[-1,[[13,[46]]],22],[-1,[[13,[47]]],22],[-1,[[13,[48]]],22],[-1,[[13,[49]]],22],[-1,[[13,[50]]],22],[-1,[[13,[39]]],22],[-1,[[13,[51]]],22],[-1,[[13,[52]]],22],[-1,[[13,[53]]],22],[-1,[[13,[54]]],22],0,0,0,0,[[[35,[-1]],[35,[-1]]],19,[37,56]],[[42,42],19],[[43,43],19],[[44,44],19],[[45,45],19],[[46,46],19],[[47,47],19],[[48,48],19],[[49,49],19],[[50,50],19],[[39,39],19],[[51,51],19],[[52,52],19],[[53,53],19],[[54,54],19],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],[[-1,-2],19,[],[]],0,0,0,0,0,0,[[38,12],38],0,0,[[[35,[-1]],9],10,[37,57]],[[42,9],10],[[43,9],10],[[44,9],10],[[45,9],10],[[46,9],10],[[47,9],10],[[48,9],10],[[49,9],10],[[50,9],10],[[40,9],10],[[40,9],10],[[39,9],10],[[51,9],10],[[52,9],10],[[53,9],[[13,[3,27]]]],[[53,9],10],[[54,9],[[13,[3,27]]]],[[54,9],10],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[12,40],[-1,-1,[]],[58,40],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[11,[[13,[39]]]],[11,[[13,[53]]]],[11,[[13,[54]]]],0,[[42,-1],3,31],[[43,-1],3,31],[[44,-1],3,31],[[45,-1],3,31],[[46,-1],3,31],[[47,-1],3,31],[[48,-1],3,31],[[49,-1],3,31],[[50,-1],3,31],[[39,-1],3,31],[[51,-1],3,31],[[52,-1],3,31],[[53,-1],3,31],[[54,-1],3,31],[[38,55],38],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[[35,[23]],[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[[35,[15]],[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[42,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[42,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[43,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[43,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[44,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[44,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[45,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[45,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[46,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[46,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[47,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[47,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[48,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[48,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[49,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[49,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[50,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[50,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[51,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[51,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],[[52,[2,[15]]],[[4,[[8,[[1,[16]]]]]]]],[[52,[2,[23]]],[[4,[[8,[[1,[12]]]]]]]],0,0,0,0,0,[[53,59,60,61],62],[[54,59,60,61],62],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,12,[]],[-1,12,[]],[-1,12,[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[11,[[13,[53]]]],[-1,[[13,[-2]]],[],[]],[11,[[13,[54]]]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,[[13,[-2]]],[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],0,0,0,0,0,[11,[[4,[-1]]],63],[11,[[4,[-1]]],63],[-1,[],[]]],"c":[414,571],"p":[[3,"Vec",714],[3,"ProcessContext",266],[15,"tuple"],[6,"Result",10],[8,"Fail",715],[4,"DFWError",10],[3,"Backtrace",716],[4,"Option",717],[3,"Formatter",718],[6,"Result",718],[15,"str"],[3,"String",719],[4,"Result",720],[3,"TypeId",721],[3,"Iptables",33],[4,"IptablesRule",33],[4,"IptablesRuleDiscriminants",33],[4,"PolicyOrRule",33],[15,"bool"],[3,"Defaults",100],[3,"Initialization",100],[8,"Deserializer",722],[3,"Nftables",137],[4,"Family",137],[4,"Type",137],[4,"Hook",137],[3,"Error",718],[3,"Defaults",206],[3,"Table",206],[3,"Initialization",206],[8,"Hasher",723],[4,"ContainerFilter",266],[3,"ProcessingOptions",266],[3,"Docker",724],[3,"DFW",314],[3,"Logger",725],[8,"FirewallBackend",0],[3,"ExposePortBuilder",314],[3,"ExposePort",314],[4,"ExposePortBuilderError",314],[8,"Clone",726],[3,"GlobalDefaults",314],[3,"ContainerToContainer",314],[3,"ContainerToContainerRule",314],[3,"ContainerToWiderWorld",314],[3,"ContainerToWiderWorldRule",314],[3,"ContainerToHost",314],[3,"ContainerToHostRule",314],[3,"WiderWorldToContainer",314],[3,"WiderWorldToContainerRule",314],[3,"ContainerDNAT",314],[3,"ContainerDNATRule",314],[4,"ChainPolicy",314],[4,"RuleVerdict",314],[15,"u16"],[8,"PartialEq",727],[8,"Debug",718],[3,"UninitializedFieldError",728],[3,"Record",725],[6,"Key",729],[8,"Serializer",725],[6,"Result",725],[8,"DeserializeOwned",722],[13,"TraitMethodUnimplemented",30],[13,"NFTablesError",30],[13,"Policy",94],[13,"Rule",94],[8,"Process",266],[8,"FutureExt",710]],"b":[[21,"impl-Display-for-DFWError"],[22,"impl-Debug-for-DFWError"],[69,"impl-From%3CIptablesRule%3E-for-IptablesRuleDiscriminants"],[70,"impl-From%3C%26IptablesRule%3E-for-IptablesRuleDiscriminants"],[172,"impl-Debug-for-Family"],[173,"impl-Display-for-Family"],[174,"impl-Display-for-Type"],[175,"impl-Debug-for-Type"],[176,"impl-Display-for-Hook"],[177,"impl-Debug-for-Hook"],[522,"impl-Debug-for-ExposePortBuilderError"],[523,"impl-Display-for-ExposePortBuilderError"],[527,"impl-Display-for-ChainPolicy"],[528,"impl-Debug-for-ChainPolicy"],[529,"impl-Display-for-RuleVerdict"],[530,"impl-Debug-for-RuleVerdict"],[542,"impl-From%3CString%3E-for-ExposePortBuilderError"],[544,"impl-From%3CUninitializedFieldError%3E-for-ExposePortBuilderError"],[596,"impl-Process%3CNftables%3E-for-DFW%3CNftables%3E"],[597,"impl-Process%3CIptables%3E-for-DFW%3CIptables%3E"],[598,"impl-Process%3CIptables%3E-for-GlobalDefaults"],[599,"impl-Process%3CNftables%3E-for-GlobalDefaults"],[600,"impl-Process%3CIptables%3E-for-ContainerToContainer"],[601,"impl-Process%3CNftables%3E-for-ContainerToContainer"],[602,"impl-Process%3CIptables%3E-for-ContainerToContainerRule"],[603,"impl-Process%3CNftables%3E-for-ContainerToContainerRule"],[604,"impl-Process%3CNftables%3E-for-ContainerToWiderWorld"],[605,"impl-Process%3CIptables%3E-for-ContainerToWiderWorld"],[606,"impl-Process%3CNftables%3E-for-ContainerToWiderWorldRule"],[607,"impl-Process%3CIptables%3E-for-ContainerToWiderWorldRule"],[608,"impl-Process%3CNftables%3E-for-ContainerToHost"],[609,"impl-Process%3CIptables%3E-for-ContainerToHost"],[610,"impl-Process%3CIptables%3E-for-ContainerToHostRule"],[611,"impl-Process%3CNftables%3E-for-ContainerToHostRule"],[612,"impl-Process%3CNftables%3E-for-WiderWorldToContainer"],[613,"impl-Process%3CIptables%3E-for-WiderWorldToContainer"],[614,"impl-Process%3CIptables%3E-for-WiderWorldToContainerRule"],[615,"impl-Process%3CNftables%3E-for-WiderWorldToContainerRule"],[616,"impl-Process%3CIptables%3E-for-ContainerDNAT"],[617,"impl-Process%3CNftables%3E-for-ContainerDNAT"],[618,"impl-Process%3CIptables%3E-for-ContainerDNATRule"],[619,"impl-Process%3CNftables%3E-for-ContainerDNATRule"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/main/settings.html b/main/settings.html index 663ea526..d01a133c 100644 --- a/main/settings.html +++ b/main/settings.html @@ -1 +1 @@ -Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file +Settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/main/src/dfw/de.rs.html b/main/src/dfw/de.rs.html index 9eda767a..821a8198 100644 --- a/main/src/dfw/de.rs.html +++ b/main/src/dfw/de.rs.html @@ -1,4 +1,4 @@ -de.rs - source
1
+de.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/errors.rs.html b/main/src/dfw/errors.rs.html
index 3492a9e9..81a1a281 100644
--- a/main/src/dfw/errors.rs.html
+++ b/main/src/dfw/errors.rs.html
@@ -1,4 +1,4 @@
-errors.rs - source
1
+errors.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/iptables/mod.rs.html b/main/src/dfw/iptables/mod.rs.html
index 9bbcc059..d17118d8 100644
--- a/main/src/dfw/iptables/mod.rs.html
+++ b/main/src/dfw/iptables/mod.rs.html
@@ -1,4 +1,4 @@
-mod.rs - source
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/iptables/process.rs.html b/main/src/dfw/iptables/process.rs.html
index 625764d4..0b131e33 100644
--- a/main/src/dfw/iptables/process.rs.html
+++ b/main/src/dfw/iptables/process.rs.html
@@ -1,4 +1,4 @@
-process.rs - source
1
+process.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/iptables/rule.rs.html b/main/src/dfw/iptables/rule.rs.html
index be7ea0bb..135494ec 100644
--- a/main/src/dfw/iptables/rule.rs.html
+++ b/main/src/dfw/iptables/rule.rs.html
@@ -1,4 +1,4 @@
-rule.rs - source
1
+rule.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/iptables/types.rs.html b/main/src/dfw/iptables/types.rs.html
index 986521ea..c8c9bc82 100644
--- a/main/src/dfw/iptables/types.rs.html
+++ b/main/src/dfw/iptables/types.rs.html
@@ -1,4 +1,4 @@
-types.rs - source
1
+types.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/lib.rs.html b/main/src/dfw/lib.rs.html
index 6e4a95bb..81945973 100644
--- a/main/src/dfw/lib.rs.html
+++ b/main/src/dfw/lib.rs.html
@@ -1,4 +1,4 @@
-lib.rs - source
1
+lib.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/nftables/mod.rs.html b/main/src/dfw/nftables/mod.rs.html
index 6fa4a8ec..82ef5dec 100644
--- a/main/src/dfw/nftables/mod.rs.html
+++ b/main/src/dfw/nftables/mod.rs.html
@@ -1,4 +1,4 @@
-mod.rs - source
1
+mod.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/nftables/process.rs.html b/main/src/dfw/nftables/process.rs.html
index 1e3affa7..49e46d76 100644
--- a/main/src/dfw/nftables/process.rs.html
+++ b/main/src/dfw/nftables/process.rs.html
@@ -1,4 +1,4 @@
-process.rs - source
1
+process.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/nftables/rule.rs.html b/main/src/dfw/nftables/rule.rs.html
index c877a278..c38dabf7 100644
--- a/main/src/dfw/nftables/rule.rs.html
+++ b/main/src/dfw/nftables/rule.rs.html
@@ -1,4 +1,4 @@
-rule.rs - source
1
+rule.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/nftables/types.rs.html b/main/src/dfw/nftables/types.rs.html
index 6e4632b6..2a3a42f3 100644
--- a/main/src/dfw/nftables/types.rs.html
+++ b/main/src/dfw/nftables/types.rs.html
@@ -1,4 +1,4 @@
-types.rs - source
1
+types.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/process.rs.html b/main/src/dfw/process.rs.html
index 700bf807..d842ff71 100644
--- a/main/src/dfw/process.rs.html
+++ b/main/src/dfw/process.rs.html
@@ -1,4 +1,4 @@
-process.rs - source
1
+process.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/types.rs.html b/main/src/dfw/types.rs.html
index bc9edc41..8a97865d 100644
--- a/main/src/dfw/types.rs.html
+++ b/main/src/dfw/types.rs.html
@@ -1,4 +1,4 @@
-types.rs - source
1
+types.rs - source
1
 2
 3
 4
diff --git a/main/src/dfw/util.rs.html b/main/src/dfw/util.rs.html
index aba38021..5c431de1 100644
--- a/main/src/dfw/util.rs.html
+++ b/main/src/dfw/util.rs.html
@@ -1,4 +1,4 @@
-util.rs - source
1
+util.rs - source
1
 2
 3
 4
diff --git a/main/static.files/main-9dd44ab47b99a0fb.js b/main/static.files/main-9dd44ab47b99a0fb.js
new file mode 100644
index 00000000..cfb9a38f
--- /dev/null
+++ b/main/static.files/main-9dd44ab47b99a0fb.js
@@ -0,0 +1,12 @@
+"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function elemIsInParent(elem,parent){while(elem&&elem!==document.body){if(elem===parent){return true}elem=elem.parentElement}return false}function blurHandler(event,parentElem,hideCallback){if(!elemIsInParent(document.activeElement,parentElem)&&!elemIsInParent(event.relatedTarget,parentElem)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.body,"crate")){mobileTitle.innerText=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.body,"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(link.href===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";if(window.rootPath!=="./"&&crate===window.currentCrate){link.className="current"}link.textContent=crate;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,e)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ +the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ + restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ + enum, trait, type, macro, \ + and const.","Search functions by type signature (e.g., vec -> usize or \ + -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ + your request: \"string\"","Look for functions that accept or return \ + slices and \ + arrays by writing \ + square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/main/static.files/main-c5bd66d33317d69f.js b/main/static.files/main-c5bd66d33317d69f.js deleted file mode 100644 index 43133d66..00000000 --- a/main/static.files/main-c5bd66d33317d69f.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function elemIsInParent(elem,parent){while(elem&&elem!==document.body){if(elem===parent){return true}elem=elem.parentElement}return false}function blurHandler(event,parentElem,hideCallback){if(!elemIsInParent(document.activeElement,parentElem)&&!elemIsInParent(event.relatedTarget,parentElem)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar&&locationTitle){const mobileTitle=document.createElement("h2");mobileTitle.innerHTML=locationTitle.innerHTML;mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=name+"/index.html"}else{path=shortty+"."+name+".html"}const current_page=document.location.href.split("/").pop();const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("union","unions","Unions");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";if(window.rootPath!=="./"&&crate===window.currentCrate){link.className="current"}link.textContent=crate;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,e)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ -the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ - restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ - enum, trait, type, macro, \ - and const.","Search functions by type signature (e.g., vec -> usize or \ - -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for functions that accept or return \ - slices and \ - arrays by writing \ - square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/main/static.files/rustdoc-fa3bb1812debf86c.css b/main/static.files/rustdoc-9ee3a5e31a2afa3e.css similarity index 71% rename from main/static.files/rustdoc-fa3bb1812debf86c.css rename to main/static.files/rustdoc-9ee3a5e31a2afa3e.css index 2dd5cebc..8749d0eb 100644 --- a/main/static.files/rustdoc-fa3bb1812debf86c.css +++ b/main/static.files/rustdoc-9ee3a5e31a2afa3e.css @@ -1,9 +1,9 @@ - :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.small-section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.sub-logo-container,.logo-container{line-height:0;display:block;}.sub-logo-container{margin-right:32px;}.sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 200px;overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;}.rustdoc.src .sidebar{flex-basis:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;z-index:1;}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}#src-sidebar-toggle>button:hover,#src-sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.src .sidebar>*:not(#src-sidebar-toggle){visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:300px;}.src-sidebar-expanded .src .sidebar>*:not(#src-sidebar-toggle){visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.sidebar .logo-container{margin-top:10px;margin-bottom:10px;text-align:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.method .where,.fn .where,.where.fmt-newline{display:block;white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.small-section-header{display:block;position:relative;}.small-section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block a.current{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml,h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.small-section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.sub-logo-container,.logo-container{line-height:0;display:block;}.sub-logo-container{margin-right:32px;}.sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 200px;overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;}.rustdoc.src .sidebar{flex-basis:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;z-index:1;}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}#src-sidebar-toggle>button:hover,#src-sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.src .sidebar>*:not(#src-sidebar-toggle){visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:300px;}.src-sidebar-expanded .src .sidebar>*:not(#src-sidebar-toggle){visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.5rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.5rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;margin-top:calc((-16px + 0.57rem ) / 2 );}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.method .where,.fn .where,.where.fmt-newline{display:block;white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.small-section-header{display:block;position:relative;}.small-section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block a.current{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:2;margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ \ - ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{min-height:36px;display:flex;padding:3px;margin-bottom:5px;align-items:center;vertical-align:text-bottom;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji{font-size:1.25rem;margin-right:0.3rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar-toggle{position:sticky;top:0;left:0;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:stretch;align-items:stretch;z-index:10;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:6px;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}#src-sidebar-toggle>button{font-size:inherit;font-weight:bold;background:none;color:inherit;text-align:center;border:none;outline:none;flex:1 1;-webkit-appearance:none;opacity:1;}#settings-menu,#help-button{margin-left:4px;display:flex;}#settings-menu>a,#help-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus{border-color:var(--settings-button-border-focus);}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{min-height:36px;display:flex;padding:3px;margin-bottom:5px;align-items:center;vertical-align:text-bottom;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji{font-size:1.25rem;margin-right:0.3rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar-toggle{position:sticky;top:0;left:0;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:stretch;align-items:stretch;z-index:10;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:6px;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}#src-sidebar-toggle>button{font-size:inherit;font-weight:bold;background:none;color:inherit;text-align:center;border:none;outline:none;flex:1 1;-webkit-appearance:none;opacity:1;}#settings-menu,#help-button{margin-left:4px;display:flex;}#settings-menu>a,#help-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus{border-color:var(--settings-button-border-focus);}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;function buildTypeMapIndex(name){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){return typeNameIdMap.get(name)}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,id);return id}}function isWhitespace(c){return" \t\n\r".indexOf(c)!==-1}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return",>-]".indexOf(c)!==-1}function isStopCharacter(c){return isEndCharacter(c)}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","}function isPathSeparator(c){return c===":"||isWhitespace(c)}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(!isWhitespace(c)){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",generics:[],typeFilter:"primitive",}}if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(path.includes("::::")){throw["Unexpected ","::::"]}else if(path.includes(" ::")){throw["Unexpected "," ::"]}else if(path.includes(":: ")){throw["Unexpected ",":: "]}const pathSegments=path.split(/::|\s+/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast:pathSegments[pathSegments.length-1],generics:generics,typeFilter,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",","," or ",endChar,...extra,", found ",c,]}throw["Expected ",",",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(isWhitespace(c)){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&hasOwnPropertyRustdoc(rawSearchIndex,elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}}userQuery=userQuery.trim();const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,searchWords,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});let nameSplit=null;if(parsedQuery.elems.length===1){const hasPath=typeof parsedQuery.elems[0].path==="undefined";nameSplit=hasPath?null:parsedQuery.elems[0].path}for(const result of result_list){if(result.dontValidate){continue}const name=result.item.name.toLowerCase(),path=result.item.path.toLowerCase(),parent=result.item.parent;if(!isType&&!validateResult(name,path,nameSplit,parent)){result.id=-1}}return transformResults(result_list)}function checkGenerics(fnType,queryElem,whereClause,mgensInout){return unifyFunctionTypes(fnType.generics,queryElem.generics,whereClause,mgensInout,mgens=>{if(mgensInout){for(const[fid,qid]of mgens.entries()){mgensInout.set(fid,qid)}}return true})}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){let mgens=new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;let fl=fnTypesIn.length;let fnTypes=fnTypesIn.slice();const backtracking=[];let i=0;let j=0;const backtrack=()=>{while(backtracking.length!==0){const{fnTypesScratch,mgensScratch,queryElemsOffset,fnTypesOffset,unbox,}=backtracking.pop();mgens=new Map(mgensScratch);const fnType=fnTypesScratch[fnTypesOffset];const queryElem=queryElems[queryElemsOffset];if(unbox){if(fnType.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}mgens.set(fnType.id,0)}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;fnTypes=fnTypesScratch.toSpliced(fnTypesOffset,1,...generics);fl=fnTypes.length;i=queryElemsOffset-1}else{if(fnType.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}mgens.set(fnType.id,queryElem.id)}fnTypes=fnTypesScratch.slice();fl=fnTypes.length;const tmp=fnTypes[queryElemsOffset];fnTypes[queryElemsOffset]=fnTypes[fnTypesOffset];fnTypes[fnTypesOffset]=tmp;i=queryElemsOffset}return true}return false};for(i=0;i!==ql;++i){const queryElem=queryElems[i];const matchCandidates=[];let fnTypesScratch=null;let mgensScratch=null;for(j=i;j!==fl;++j){const fnType=fnTypes[j];if(unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){if(!fnTypesScratch){fnTypesScratch=fnTypes.slice()}unifyFunctionTypes(fnType.generics,queryElem.generics,whereClause,mgens,mgensScratch=>{matchCandidates.push({fnTypesScratch,mgensScratch,queryElemsOffset:i,fnTypesOffset:j,unbox:false,});return false})}if(unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){if(!fnTypesScratch){fnTypesScratch=fnTypes.slice()}if(!mgensScratch){mgensScratch=new Map(mgens)}backtracking.push({fnTypesScratch,mgensScratch,queryElemsOffset:i,fnTypesOffset:j,unbox:true,})}}if(matchCandidates.length===0){if(backtrack()){continue}else{return false}}const{fnTypesOffset:candidate,mgensScratch:mgensNew}=matchCandidates.pop();if(fnTypes[candidate].id<0&&queryElems[i].id<0){mgens.set(fnTypes[candidate].id,queryElems[i].id)}for(const[fid,qid]of mgensNew){mgens.set(fid,qid)}const tmp=fnTypes[candidate];fnTypes[candidate]=fnTypes[i];fnTypes[i]=tmp;for(const otherCandidate of matchCandidates){backtracking.push(otherCandidate)}while(i===(ql-1)&&solutionCb&&!solutionCb(mgens)){if(!backtrack()){return false}}}return true}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgens.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}else if(fnType.id!==null){if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(fnType.id!==queryElem.id){return false}if(fnType.generics.length===0&&queryElem.generics.length!==0){return false}const queryElemPathLength=queryElem.pathWithoutLast.length;if(queryElemPathLength>0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i=0){if(!whereClause){return false}if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause)}else if(fnType.generics&&fnType.generics.length>0){return checkIfInList(fnType.generics,queryElem,whereClause)}return false}function checkIfInList(list,elem,whereClause){for(const entry of list){if(checkType(entry,elem,whereClause)){return true}}return false}function checkType(row,elem,whereClause){if(row.id===null){return row.generics.length>0?checkIfInList(row.generics,elem,whereClause):false}if(row.id<0&&elem.id>=0){const gid=(-row.id)-1;return checkIfInList(whereClause[gid],elem,whereClause)}if(row.id<0&&elem.id<0){return true}const matchesExact=row.id===elem.id;const matchesArrayOrSlice=elem.id===typeNameIdOfArrayOrSlice&&(row.id===typeNameIdOfSlice||row.id===typeNameIdOfArray);if((matchesExact||matchesArrayOrSlice)&&typePassesFilter(elem.typeFilter,row.ty)){if(elem.generics.length>0){return checkGenerics(row,elem,whereClause,new Map())}return true}return checkIfInList(row.generics,elem,whereClause)}function checkPath(contains,ty,maxEditDistance){if(contains.length===0){return 0}let ret_dist=maxEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;if(clength>length){return maxEditDistance+1}for(let i=0;ilength){break}let dist_total=0;let aborted=false;for(let x=0;xmaxEditDistance){aborted=true;break}dist_total+=dist}if(!aborted){ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}}return ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){const inBounds=dist<=maxEditDistance||index!==-1;if(dist===0||(!parsedQuery.literalSearch&&inBounds)){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let index=-1,path_dist=0;const fullId=row.id;const searchWord=searchWords[pos];const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);if(in_args){addIntoResults(results_in_args,fullId,pos,-1,0,0,maxEditDistance)}const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(returned){addIntoResults(results_returned,fullId,pos,-1,0,0,maxEditDistance)}if(!typePassesFilter(elem.typeFilter,row.ty)){return}const row_index=row.normalizedName.indexOf(elem.pathLast);const word_index=searchWord.indexOf(elem.pathLast);if(row_index===-1){index=word_index}else if(word_index===-1){index=row_index}else if(word_index1){path_dist=checkPath(elem.pathWithoutLast,row,maxEditDistance);if(path_dist>maxEditDistance){return}}if(parsedQuery.literalSearch){if(searchWord===elem.name){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(searchWord,elem.pathLast,maxEditDistance);if(index===-1&&dist+path_dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}addIntoResults(results,row.id,pos,0,0,0,Number.MAX_VALUE)}function innerRunQuery(){let elem,i,nSearchWords,in_returned,row;let queryLen=0;for(const elem of parsedQuery.elems){queryLen+=elem.name.length}for(const elem of parsedQuery.returned){queryLen+=elem.name.length}const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem){if(typeNameIdMap.has(elem.pathLast)){elem.id=typeNameIdMap.get(elem.pathLast)}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,id]of typeNameIdMap){const dist=editDistance(name,elem.pathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}}for(const elem of parsedQuery.elems){convertNameToId(elem)}for(const elem of parsedQuery.returned){convertNameToId(elem)}if(parsedQuery.foundElems===1){if(parsedQuery.elems.length===1){elem=parsedQuery.elems[0];for(i=0,nSearchWords=searchWords.length;i0){for(i=0,nSearchWords=searchWords.length;i-1||path.indexOf(key)>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(key)>-1)||editDistance(name,key,maxEditDistance)<=maxEditDistance)){return false}}return true}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;if(type==="mod"){displayPath=path+"::";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=ROOT_PATH+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor="#"+type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=ROOT_PATH+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){let extraClass="";if(display===true){extraClass=" active"}const output=document.createElement("div");let length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";length+=1;const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias","generic",];const longItemTypes=["module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","primitive type","assoc type","constant","assoc const","union","foreign type","keyword","existential type","attribute macro","derive macro","trait alias",];const TY_PRIMITIVE=itemTypes.indexOf("primitive");const TY_KEYWORD=itemTypes.indexOf("keyword");const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function hasOwnPropertyRustdoc(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;function buildTypeMapIndex(name){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){return typeNameIdMap.get(name)}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,id);return id}}function isWhitespace(c){return" \t\n\r".indexOf(c)!==-1}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return",>-]".indexOf(c)!==-1}function isStopCharacter(c){return isEndCharacter(c)}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","}function isPathSeparator(c){return c===":"||isWhitespace(c)}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(!isWhitespace(c)){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}return{name:"never",id:null,fullPath:["never"],pathWithoutLast:[],pathLast:"never",generics:[],typeFilter:"primitive",}}if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(path.includes("::::")){throw["Unexpected ","::::"]}else if(path.includes(" ::")){throw["Unexpected "," ::"]}else if(path.includes(":: ")){throw["Unexpected ",":: "]}const pathSegments=path.split(/::|\s+/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast:pathSegments[pathSegments.length-1],generics:generics,typeFilter,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",","," or ",endChar,...extra,", found ",c,]}throw["Expected ",",",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(isWhitespace(c)){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&hasOwnPropertyRustdoc(rawSearchIndex,elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}}userQuery=userQuery.trim();const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,searchWords,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});let nameSplit=null;if(parsedQuery.elems.length===1){const hasPath=typeof parsedQuery.elems[0].path==="undefined";nameSplit=hasPath?null:parsedQuery.elems[0].path}for(const result of result_list){if(result.dontValidate){continue}const name=result.item.name.toLowerCase(),path=result.item.path.toLowerCase(),parent=result.item.parent;if(!isType&&!validateResult(name,path,nameSplit,parent)){result.id=-1}}return transformResults(result_list)}function checkGenerics(fnType,queryElem,whereClause,mgensInout){return unifyFunctionTypes(fnType.generics,queryElem.generics,whereClause,mgensInout,mgens=>{if(mgensInout){for(const[fid,qid]of mgens.entries()){mgensInout.set(fid,qid)}}return true})}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb){let mgens=new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;let fl=fnTypesIn.length;let fnTypes=fnTypesIn.slice();const backtracking=[];let i=0;let j=0;const backtrack=()=>{while(backtracking.length!==0){const{fnTypesScratch,mgensScratch,queryElemsOffset,fnTypesOffset,unbox,}=backtracking.pop();mgens=new Map(mgensScratch);const fnType=fnTypesScratch[fnTypesOffset];const queryElem=queryElems[queryElemsOffset];if(unbox){if(fnType.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}mgens.set(fnType.id,0)}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;fnTypes=fnTypesScratch.toSpliced(fnTypesOffset,1,...generics);fl=fnTypes.length;i=queryElemsOffset-1}else{if(fnType.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}mgens.set(fnType.id,queryElem.id)}fnTypes=fnTypesScratch.slice();fl=fnTypes.length;const tmp=fnTypes[queryElemsOffset];fnTypes[queryElemsOffset]=fnTypes[fnTypesOffset];fnTypes[fnTypesOffset]=tmp;i=queryElemsOffset}return true}return false};for(i=0;i!==ql;++i){const queryElem=queryElems[i];const matchCandidates=[];let fnTypesScratch=null;let mgensScratch=null;for(j=i;j!==fl;++j){const fnType=fnTypes[j];if(unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens)){if(!fnTypesScratch){fnTypesScratch=fnTypes.slice()}unifyFunctionTypes(fnType.generics,queryElem.generics,whereClause,mgens,mgensScratch=>{matchCandidates.push({fnTypesScratch,mgensScratch,queryElemsOffset:i,fnTypesOffset:j,unbox:false,});return false})}if(unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens)){if(!fnTypesScratch){fnTypesScratch=fnTypes.slice()}if(!mgensScratch){mgensScratch=new Map(mgens)}backtracking.push({fnTypesScratch,mgensScratch,queryElemsOffset:i,fnTypesOffset:j,unbox:true,})}}if(matchCandidates.length===0){if(backtrack()){continue}else{return false}}const{fnTypesOffset:candidate,mgensScratch:mgensNew}=matchCandidates.pop();if(fnTypes[candidate].id<0&&queryElems[i].id<0){mgens.set(fnTypes[candidate].id,queryElems[i].id)}for(const[fid,qid]of mgensNew){mgens.set(fid,qid)}const tmp=fnTypes[candidate];fnTypes[candidate]=fnTypes[i];fnTypes[i]=tmp;for(const otherCandidate of matchCandidates){backtracking.push(otherCandidate)}while(i===(ql-1)&&solutionCb&&!solutionCb(mgens)){if(!backtrack()){return false}}}return true}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,whereClause,mgens){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgens.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(fnType.id!==queryElem.id){return false}if(fnType.generics.length===0&&queryElem.generics.length!==0){return false}const queryElemPathLength=queryElem.pathWithoutLast.length;if(queryElemPathLength>0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i=0){if(!whereClause){return false}if(mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause)}else if(fnType.generics&&fnType.generics.length>0){return checkIfInList(fnType.generics,queryElem,whereClause)}return false}function checkIfInList(list,elem,whereClause){for(const entry of list){if(checkType(entry,elem,whereClause)){return true}}return false}function checkType(row,elem,whereClause){if(row.id===null){return row.generics.length>0?checkIfInList(row.generics,elem,whereClause):false}if(row.id<0&&elem.id>=0){const gid=(-row.id)-1;return checkIfInList(whereClause[gid],elem,whereClause)}if(row.id<0&&elem.id<0){return true}const matchesExact=row.id===elem.id;const matchesArrayOrSlice=elem.id===typeNameIdOfArrayOrSlice&&(row.id===typeNameIdOfSlice||row.id===typeNameIdOfArray);if((matchesExact||matchesArrayOrSlice)&&typePassesFilter(elem.typeFilter,row.ty)){if(elem.generics.length>0){return checkGenerics(row,elem,whereClause,new Map())}return true}return checkIfInList(row.generics,elem,whereClause)}function checkPath(contains,ty,maxEditDistance){if(contains.length===0){return 0}let ret_dist=maxEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;if(clength>length){return maxEditDistance+1}for(let i=0;ilength){break}let dist_total=0;let aborted=false;for(let x=0;xmaxEditDistance){aborted=true;break}dist_total+=dist}if(!aborted){ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}}return ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){const inBounds=dist<=maxEditDistance||index!==-1;if(dist===0||(!parsedQuery.literalSearch&&inBounds)){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let index=-1,path_dist=0;const fullId=row.id;const searchWord=searchWords[pos];const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause);if(in_args){addIntoResults(results_in_args,fullId,pos,-1,0,0,maxEditDistance)}const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause);if(returned){addIntoResults(results_returned,fullId,pos,-1,0,0,maxEditDistance)}if(!typePassesFilter(elem.typeFilter,row.ty)){return}const row_index=row.normalizedName.indexOf(elem.pathLast);const word_index=searchWord.indexOf(elem.pathLast);if(row_index===-1){index=word_index}else if(word_index===-1){index=row_index}else if(word_index1){path_dist=checkPath(elem.pathWithoutLast,row,maxEditDistance);if(path_dist>maxEditDistance){return}}if(parsedQuery.literalSearch){if(searchWord===elem.name){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(searchWord,elem.pathLast,maxEditDistance);if(index===-1&&dist+path_dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens)})){return}addIntoResults(results,row.id,pos,0,0,0,Number.MAX_VALUE)}function innerRunQuery(){let elem,i,nSearchWords,in_returned,row;let queryLen=0;for(const elem of parsedQuery.elems){queryLen+=elem.name.length}for(const elem of parsedQuery.returned){queryLen+=elem.name.length}const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem){if(typeNameIdMap.has(elem.pathLast)){elem.id=typeNameIdMap.get(elem.pathLast)}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,id]of typeNameIdMap){const dist=editDistance(name,elem.pathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}}for(const elem of parsedQuery.elems){convertNameToId(elem)}for(const elem of parsedQuery.returned){convertNameToId(elem)}if(parsedQuery.foundElems===1){if(parsedQuery.elems.length===1){elem=parsedQuery.elems[0];for(i=0,nSearchWords=searchWords.length;i0){for(i=0,nSearchWords=searchWords.length;i-1||path.indexOf(key)>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(key)>-1)||editDistance(name,key,maxEditDistance)<=maxEditDistance)){return false}}return true}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;if(type==="mod"){displayPath=path+"::";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=ROOT_PATH+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor=type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}if(item.implDisambiguator!==null){anchor=item.implDisambiguator+"/"+anchor}href=ROOT_PATH+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html#"+anchor}else{displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){let extraClass="";if(display===true){extraClass=" active"}const output=document.createElement("div");let length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";length+=1;const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ ${item.alias} - see \
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ ${item.displayPath}${name}\ -
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";const crates_list=Object.keys(rawSearchIndex);if(crates_list.length>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(e,forced){if(e){e.preventDefault()}const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,searchWords,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.map(type=>buildItemSearchType(type,lowercasePaths))}function buildItemSearchType(type,lowercasePaths){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;let pathIndex,generics;if(typeof type==="number"){pathIndex=type;generics=[]}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths)}if(pathIndex<0){return{id:pathIndex,ty:TY_GENERIC,path:null,generics,}}if(pathIndex===0){return{id:null,ty:null,path:null,generics,}}const item=lowercasePaths[pathIndex-1];return{id:buildTypeMapIndex(item.name),ty:item.ty,path:item.path,generics,}}function buildFunctionSearchType(functionSearchType,lowercasePaths){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:buildFunctionSearchType(itemFunctionSearchTypes[i],lowercasePaths),id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=crateSize}return searchWords}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(undefined,true)}const searchWords=buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}return searchWords}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch({})}})() \ No newline at end of file +
`);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";const crates_list=Object.keys(rawSearchIndex);if(crates_list.length>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(e,forced){if(e){e.preventDefault()}const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,searchWords,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.map(type=>buildItemSearchType(type,lowercasePaths))}function buildItemSearchType(type,lowercasePaths){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;let pathIndex,generics;if(typeof type==="number"){pathIndex=type;generics=[]}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths)}if(pathIndex<0){return{id:pathIndex,ty:TY_GENERIC,path:null,generics,}}if(pathIndex===0){return{id:null,ty:null,path:null,generics,}}const item=lowercasePaths[pathIndex-1];return{id:buildTypeMapIndex(item.name),ty:item.ty,path:item.path,generics,}}function buildFunctionSearchType(functionSearchType,lowercasePaths){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:buildFunctionSearchType(itemFunctionSearchTypes[i],lowercasePaths),id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=crateSize}return searchWords}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(undefined,true)}const searchWords=buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}return searchWords}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch({})}})() \ No newline at end of file diff --git a/main/trait.impl/core/clone/trait.Clone.js b/main/trait.impl/core/clone/trait.Clone.js new file mode 100644 index 00000000..023571d5 --- /dev/null +++ b/main/trait.impl/core/clone/trait.Clone.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl Clone for ContainerToHost"],["impl Clone for Table"],["impl Clone for IptablesRule"],["impl<B> Clone for DFW<B>where\n B: FirewallBackend + Clone,\n DFW<B>: Process<B>,\n B::Defaults: Clone,"],["impl Clone for Family"],["impl Clone for ContainerToContainer"],["impl Clone for ContainerToWiderWorld"],["impl Clone for WiderWorldToContainer"],["impl Clone for ExposePort"],["impl Clone for Type"],["impl Clone for Initialization"],["impl Clone for ChainPolicy"],["impl Clone for Defaults"],["impl Clone for WiderWorldToContainerRule"],["impl Clone for ContainerDNATRule"],["impl Clone for GlobalDefaults"],["impl Clone for ContainerDNAT"],["impl Clone for Initialization"],["impl Clone for RuleVerdict"],["impl Clone for ExposePortBuilder"],["impl Clone for ContainerFilter"],["impl Clone for IptablesRuleDiscriminants"],["impl Clone for PolicyOrRule"],["impl Clone for ContainerToWiderWorldRule"],["impl Clone for ContainerToContainerRule"],["impl Clone for Defaults"],["impl Clone for Hook"],["impl Clone for ContainerToHostRule"],["impl Clone for ProcessingOptions"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/cmp/trait.Eq.js b/main/trait.impl/core/cmp/trait.Eq.js new file mode 100644 index 00000000..60439e83 --- /dev/null +++ b/main/trait.impl/core/cmp/trait.Eq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl Eq for ContainerDNAT"],["impl Eq for ContainerToHost"],["impl Eq for ContainerToWiderWorld"],["impl Eq for Initialization"],["impl Eq for ExposePort"],["impl Eq for ProcessingOptions"],["impl Eq for GlobalDefaults"],["impl Eq for WiderWorldToContainerRule"],["impl Eq for RuleVerdict"],["impl Eq for ContainerToHostRule"],["impl Eq for ContainerToContainerRule"],["impl Eq for ContainerToContainer"],["impl Eq for ChainPolicy"],["impl Eq for IptablesRuleDiscriminants"],["impl Eq for Initialization"],["impl Eq for ContainerFilter"],["impl<B> Eq for DFW<B>where\n B: FirewallBackend + Eq,\n DFW<B>: Process<B>,\n B::Defaults: Eq,"],["impl Eq for Table"],["impl Eq for Defaults"],["impl Eq for ContainerDNATRule"],["impl Eq for ContainerToWiderWorldRule"],["impl Eq for WiderWorldToContainer"],["impl Eq for Defaults"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/cmp/trait.PartialEq.js b/main/trait.impl/core/cmp/trait.PartialEq.js new file mode 100644 index 00000000..21179edd --- /dev/null +++ b/main/trait.impl/core/cmp/trait.PartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl PartialEq for WiderWorldToContainerRule"],["impl PartialEq for Initialization"],["impl PartialEq for ContainerToContainer"],["impl PartialEq for RuleVerdict"],["impl PartialEq for ContainerDNATRule"],["impl PartialEq for Table"],["impl PartialEq for WiderWorldToContainer"],["impl PartialEq for ContainerToHost"],["impl PartialEq for ContainerToWiderWorldRule"],["impl PartialEq for ContainerToWiderWorld"],["impl<B> PartialEq for DFW<B>where\n B: FirewallBackend + PartialEq,\n DFW<B>: Process<B>,\n B::Defaults: PartialEq,"],["impl PartialEq for ContainerDNAT"],["impl PartialEq for ContainerFilter"],["impl PartialEq for Defaults"],["impl PartialEq for ContainerToContainerRule"],["impl PartialEq for GlobalDefaults"],["impl PartialEq for Initialization"],["impl PartialEq for ContainerToHostRule"],["impl PartialEq for IptablesRuleDiscriminants"],["impl PartialEq for ProcessingOptions"],["impl PartialEq for ExposePort"],["impl PartialEq for ChainPolicy"],["impl PartialEq for Defaults"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/convert/trait.From.js b/main/trait.impl/core/convert/trait.From.js new file mode 100644 index 00000000..697bfc76 --- /dev/null +++ b/main/trait.impl/core/convert/trait.From.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl From<IptablesRule> for IptablesRuleDiscriminants"],["impl From<UninitializedFieldError> for ExposePortBuilderError"],["impl<'_enum> From<&'_enum IptablesRule> for IptablesRuleDiscriminants"],["impl From<String> for ExposePortBuilderError"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/convert/trait.TryFrom.js b/main/trait.impl/core/convert/trait.TryFrom.js similarity index 72% rename from main/implementors/core/convert/trait.TryFrom.js rename to main/trait.impl/core/convert/trait.TryFrom.js index 870b47cc..519748e0 100644 --- a/main/implementors/core/convert/trait.TryFrom.js +++ b/main/trait.impl/core/convert/trait.TryFrom.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"dfw":[["impl TryFrom<&str> for RuleVerdict"],["impl TryFrom<&str> for ChainPolicy"]] +"dfw":[["impl TryFrom<&str> for RuleVerdict"],["impl TryFrom<&str> for ChainPolicy"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/default/trait.Default.js b/main/trait.impl/core/default/trait.Default.js new file mode 100644 index 00000000..d23675ff --- /dev/null +++ b/main/trait.impl/core/default/trait.Default.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl Default for ChainPolicy"],["impl Default for Table"],["impl Default for Initialization"],["impl Default for ExposePort"],["impl Default for ProcessingOptions"],["impl Default for ExposePortBuilder"],["impl Default for GlobalDefaults"],["impl Default for Defaults"],["impl Default for RuleVerdict"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/error/trait.Error.js b/main/trait.impl/core/error/trait.Error.js similarity index 86% rename from main/implementors/core/error/trait.Error.js rename to main/trait.impl/core/error/trait.Error.js index 90745128..9dd83d74 100644 --- a/main/implementors/core/error/trait.Error.js +++ b/main/trait.impl/core/error/trait.Error.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"dfw":[["impl Error for ExposePortBuilderError"]] +"dfw":[["impl Error for ExposePortBuilderError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/fmt/trait.Debug.js b/main/trait.impl/core/fmt/trait.Debug.js new file mode 100644 index 00000000..aeefc7db --- /dev/null +++ b/main/trait.impl/core/fmt/trait.Debug.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl Debug for GlobalDefaults"],["impl Debug for Type"],["impl Debug for PolicyOrRule"],["impl Debug for IptablesRule"],["impl Debug for ContainerToContainer"],["impl Debug for ContainerDNATRule"],["impl Debug for Initialization"],["impl Debug for Defaults"],["impl Debug for Family"],["impl Debug for Initialization"],["impl Debug for ProcessingOptions"],["impl Debug for ContainerFilter"],["impl Debug for ExposePortBuilderError"],["impl Debug for ContainerToWiderWorld"],["impl Debug for ExposePort"],["impl Debug for WiderWorldToContainer"],["impl Debug for Hook"],["impl Debug for ChainPolicy"],["impl Debug for Nftables"],["impl Debug for WiderWorldToContainerRule"],["impl Debug for ContainerToHost"],["impl Debug for RuleVerdict"],["impl Debug for ContainerToContainerRule"],["impl<B> Debug for DFW<B>where\n B: FirewallBackend + Debug,\n DFW<B>: Process<B>,\n B::Defaults: Debug,"],["impl Debug for ContainerToWiderWorldRule"],["impl Debug for ContainerToHostRule"],["impl Debug for IptablesRuleDiscriminants"],["impl Debug for ContainerDNAT"],["impl Debug for Table"],["impl Debug for DFWError"],["impl Debug for Defaults"],["impl Debug for Iptables"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/fmt/trait.Display.js b/main/trait.impl/core/fmt/trait.Display.js new file mode 100644 index 00000000..852ab16f --- /dev/null +++ b/main/trait.impl/core/fmt/trait.Display.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl Display for ChainPolicy"],["impl Display for RuleVerdict"],["impl Display for Family"],["impl Display for Type"],["impl Display for Hook"],["impl Display for ExposePortBuilderError"],["impl Display for DFWError"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/hash/trait.Hash.js b/main/trait.impl/core/hash/trait.Hash.js new file mode 100644 index 00000000..53060dcc --- /dev/null +++ b/main/trait.impl/core/hash/trait.Hash.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl Hash for ContainerToContainerRule"],["impl Hash for ContainerToContainer"],["impl Hash for WiderWorldToContainer"],["impl Hash for ExposePort"],["impl Hash for ChainPolicy"],["impl Hash for ContainerToWiderWorld"],["impl Hash for ContainerDNAT"],["impl Hash for GlobalDefaults"],["impl Hash for ContainerToHostRule"],["impl Hash for RuleVerdict"],["impl Hash for ContainerToWiderWorldRule"],["impl Hash for WiderWorldToContainerRule"],["impl Hash for Table"],["impl Hash for ContainerToHost"],["impl Hash for ContainerDNATRule"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.Copy.js b/main/trait.impl/core/marker/trait.Copy.js new file mode 100644 index 00000000..40ce21c4 --- /dev/null +++ b/main/trait.impl/core/marker/trait.Copy.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl Copy for RuleVerdict"],["impl Copy for Type"],["impl Copy for Family"],["impl Copy for ChainPolicy"],["impl Copy for Hook"],["impl Copy for IptablesRuleDiscriminants"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/marker/trait.Freeze.js b/main/trait.impl/core/marker/trait.Freeze.js similarity index 100% rename from main/implementors/core/marker/trait.Freeze.js rename to main/trait.impl/core/marker/trait.Freeze.js diff --git a/main/implementors/core/marker/trait.Send.js b/main/trait.impl/core/marker/trait.Send.js similarity index 79% rename from main/implementors/core/marker/trait.Send.js rename to main/trait.impl/core/marker/trait.Send.js index 41166a2f..9d002734 100644 --- a/main/implementors/core/marker/trait.Send.js +++ b/main/trait.impl/core/marker/trait.Send.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"dfw":[["impl Send for DFWError",1,["dfw::errors::DFWError"]],["impl Send for Defaults",1,["dfw::iptables::types::Defaults"]],["impl Send for Initialization",1,["dfw::iptables::types::Initialization"]],["impl Send for Iptables",1,["dfw::iptables::Iptables"]],["impl Send for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl Send for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl Send for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl Send for Defaults",1,["dfw::nftables::types::Defaults"]],["impl Send for Table",1,["dfw::nftables::types::Table"]],["impl Send for Initialization",1,["dfw::nftables::types::Initialization"]],["impl Send for Nftables",1,["dfw::nftables::Nftables"]],["impl Send for Family",1,["dfw::nftables::Family"]],["impl Send for Type",1,["dfw::nftables::Type"]],["impl Send for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> Send for ProcessContext<'a, B>where\n <B as FirewallBackend>::Defaults: Sync,",1,["dfw::process::ProcessContext"]],["impl Send for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl Send for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> Send for DFW<B>where\n <B as FirewallBackend>::Defaults: Send,",1,["dfw::types::DFW"]],["impl Send for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl Send for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl Send for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl Send for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl Send for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl Send for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl Send for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl Send for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl Send for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl Send for ExposePort",1,["dfw::types::ExposePort"]],["impl Send for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl Send for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl Send for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl Send for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl Send for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl Send for RuleVerdict",1,["dfw::types::RuleVerdict"]]] +"dfw":[["impl Send for DFWError",1,["dfw::errors::DFWError"]],["impl Send for Defaults",1,["dfw::iptables::types::Defaults"]],["impl Send for Initialization",1,["dfw::iptables::types::Initialization"]],["impl Send for Iptables",1,["dfw::iptables::Iptables"]],["impl Send for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl Send for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl Send for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl Send for Defaults",1,["dfw::nftables::types::Defaults"]],["impl Send for Table",1,["dfw::nftables::types::Table"]],["impl Send for Initialization",1,["dfw::nftables::types::Initialization"]],["impl Send for Nftables",1,["dfw::nftables::Nftables"]],["impl Send for Family",1,["dfw::nftables::Family"]],["impl Send for Type",1,["dfw::nftables::Type"]],["impl Send for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> Send for ProcessContext<'a, B>where\n <B as FirewallBackend>::Defaults: Sync,",1,["dfw::process::ProcessContext"]],["impl Send for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl Send for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> Send for DFW<B>where\n <B as FirewallBackend>::Defaults: Send,",1,["dfw::types::DFW"]],["impl Send for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl Send for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl Send for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl Send for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl Send for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl Send for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl Send for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl Send for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl Send for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl Send for ExposePort",1,["dfw::types::ExposePort"]],["impl Send for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl Send for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl Send for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl Send for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl Send for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl Send for RuleVerdict",1,["dfw::types::RuleVerdict"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.StructuralEq.js b/main/trait.impl/core/marker/trait.StructuralEq.js new file mode 100644 index 00000000..7fe73d09 --- /dev/null +++ b/main/trait.impl/core/marker/trait.StructuralEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl StructuralEq for ContainerToWiderWorld"],["impl StructuralEq for ChainPolicy"],["impl StructuralEq for ContainerToHostRule"],["impl StructuralEq for WiderWorldToContainer"],["impl StructuralEq for Table"],["impl StructuralEq for ContainerDNATRule"],["impl StructuralEq for IptablesRuleDiscriminants"],["impl StructuralEq for Initialization"],["impl StructuralEq for ContainerToHost"],["impl StructuralEq for ContainerToContainerRule"],["impl StructuralEq for RuleVerdict"],["impl<B> StructuralEq for DFW<B>where\n B: FirewallBackend,\n DFW<B>: Process<B>,"],["impl StructuralEq for Initialization"],["impl StructuralEq for WiderWorldToContainerRule"],["impl StructuralEq for ContainerToWiderWorldRule"],["impl StructuralEq for Defaults"],["impl StructuralEq for ExposePort"],["impl StructuralEq for ContainerDNAT"],["impl StructuralEq for ContainerToContainer"],["impl StructuralEq for Defaults"],["impl StructuralEq for ProcessingOptions"],["impl StructuralEq for ContainerFilter"],["impl StructuralEq for GlobalDefaults"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/trait.impl/core/marker/trait.StructuralPartialEq.js b/main/trait.impl/core/marker/trait.StructuralPartialEq.js new file mode 100644 index 00000000..f23dc2e1 --- /dev/null +++ b/main/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl StructuralPartialEq for ContainerToWiderWorld"],["impl StructuralPartialEq for ContainerToHostRule"],["impl StructuralPartialEq for RuleVerdict"],["impl StructuralPartialEq for IptablesRuleDiscriminants"],["impl StructuralPartialEq for Table"],["impl StructuralPartialEq for ContainerToHost"],["impl StructuralPartialEq for ExposePort"],["impl StructuralPartialEq for ProcessingOptions"],["impl StructuralPartialEq for Initialization"],["impl StructuralPartialEq for WiderWorldToContainerRule"],["impl StructuralPartialEq for Defaults"],["impl<B> StructuralPartialEq for DFW<B>where\n B: FirewallBackend,\n DFW<B>: Process<B>,"],["impl StructuralPartialEq for ContainerToContainerRule"],["impl StructuralPartialEq for ContainerDNATRule"],["impl StructuralPartialEq for GlobalDefaults"],["impl StructuralPartialEq for ContainerToContainer"],["impl StructuralPartialEq for Defaults"],["impl StructuralPartialEq for ChainPolicy"],["impl StructuralPartialEq for ContainerFilter"],["impl StructuralPartialEq for ContainerDNAT"],["impl StructuralPartialEq for WiderWorldToContainer"],["impl StructuralPartialEq for Initialization"],["impl StructuralPartialEq for ContainerToWiderWorldRule"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/marker/trait.Sync.js b/main/trait.impl/core/marker/trait.Sync.js similarity index 79% rename from main/implementors/core/marker/trait.Sync.js rename to main/trait.impl/core/marker/trait.Sync.js index b1d571a3..a23a50ff 100644 --- a/main/implementors/core/marker/trait.Sync.js +++ b/main/trait.impl/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"dfw":[["impl Sync for DFWError",1,["dfw::errors::DFWError"]],["impl Sync for Defaults",1,["dfw::iptables::types::Defaults"]],["impl Sync for Initialization",1,["dfw::iptables::types::Initialization"]],["impl Sync for Iptables",1,["dfw::iptables::Iptables"]],["impl Sync for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl Sync for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl Sync for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl Sync for Defaults",1,["dfw::nftables::types::Defaults"]],["impl Sync for Table",1,["dfw::nftables::types::Table"]],["impl Sync for Initialization",1,["dfw::nftables::types::Initialization"]],["impl Sync for Nftables",1,["dfw::nftables::Nftables"]],["impl Sync for Family",1,["dfw::nftables::Family"]],["impl Sync for Type",1,["dfw::nftables::Type"]],["impl Sync for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> Sync for ProcessContext<'a, B>where\n <B as FirewallBackend>::Defaults: Sync,",1,["dfw::process::ProcessContext"]],["impl Sync for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl Sync for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> Sync for DFW<B>where\n <B as FirewallBackend>::Defaults: Sync,",1,["dfw::types::DFW"]],["impl Sync for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl Sync for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl Sync for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl Sync for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl Sync for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl Sync for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl Sync for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl Sync for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl Sync for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl Sync for ExposePort",1,["dfw::types::ExposePort"]],["impl Sync for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl Sync for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl Sync for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl Sync for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl Sync for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl Sync for RuleVerdict",1,["dfw::types::RuleVerdict"]]] +"dfw":[["impl Sync for DFWError",1,["dfw::errors::DFWError"]],["impl Sync for Defaults",1,["dfw::iptables::types::Defaults"]],["impl Sync for Initialization",1,["dfw::iptables::types::Initialization"]],["impl Sync for Iptables",1,["dfw::iptables::Iptables"]],["impl Sync for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl Sync for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl Sync for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl Sync for Defaults",1,["dfw::nftables::types::Defaults"]],["impl Sync for Table",1,["dfw::nftables::types::Table"]],["impl Sync for Initialization",1,["dfw::nftables::types::Initialization"]],["impl Sync for Nftables",1,["dfw::nftables::Nftables"]],["impl Sync for Family",1,["dfw::nftables::Family"]],["impl Sync for Type",1,["dfw::nftables::Type"]],["impl Sync for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> Sync for ProcessContext<'a, B>where\n <B as FirewallBackend>::Defaults: Sync,",1,["dfw::process::ProcessContext"]],["impl Sync for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl Sync for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> Sync for DFW<B>where\n <B as FirewallBackend>::Defaults: Sync,",1,["dfw::types::DFW"]],["impl Sync for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl Sync for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl Sync for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl Sync for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl Sync for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl Sync for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl Sync for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl Sync for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl Sync for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl Sync for ExposePort",1,["dfw::types::ExposePort"]],["impl Sync for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl Sync for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl Sync for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl Sync for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl Sync for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl Sync for RuleVerdict",1,["dfw::types::RuleVerdict"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/marker/trait.Unpin.js b/main/trait.impl/core/marker/trait.Unpin.js similarity index 80% rename from main/implementors/core/marker/trait.Unpin.js rename to main/trait.impl/core/marker/trait.Unpin.js index 43af8e0c..64960217 100644 --- a/main/implementors/core/marker/trait.Unpin.js +++ b/main/trait.impl/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"dfw":[["impl Unpin for DFWError",1,["dfw::errors::DFWError"]],["impl Unpin for Defaults",1,["dfw::iptables::types::Defaults"]],["impl Unpin for Initialization",1,["dfw::iptables::types::Initialization"]],["impl Unpin for Iptables",1,["dfw::iptables::Iptables"]],["impl Unpin for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl Unpin for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl Unpin for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl Unpin for Defaults",1,["dfw::nftables::types::Defaults"]],["impl Unpin for Table",1,["dfw::nftables::types::Table"]],["impl Unpin for Initialization",1,["dfw::nftables::types::Initialization"]],["impl Unpin for Nftables",1,["dfw::nftables::Nftables"]],["impl Unpin for Family",1,["dfw::nftables::Family"]],["impl Unpin for Type",1,["dfw::nftables::Type"]],["impl Unpin for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> Unpin for ProcessContext<'a, B>",1,["dfw::process::ProcessContext"]],["impl Unpin for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl Unpin for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> Unpin for DFW<B>where\n <B as FirewallBackend>::Defaults: Unpin,",1,["dfw::types::DFW"]],["impl Unpin for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl Unpin for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl Unpin for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl Unpin for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl Unpin for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl Unpin for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl Unpin for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl Unpin for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl Unpin for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl Unpin for ExposePort",1,["dfw::types::ExposePort"]],["impl Unpin for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl Unpin for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl Unpin for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl Unpin for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl Unpin for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl Unpin for RuleVerdict",1,["dfw::types::RuleVerdict"]]] +"dfw":[["impl Unpin for DFWError",1,["dfw::errors::DFWError"]],["impl Unpin for Defaults",1,["dfw::iptables::types::Defaults"]],["impl Unpin for Initialization",1,["dfw::iptables::types::Initialization"]],["impl Unpin for Iptables",1,["dfw::iptables::Iptables"]],["impl Unpin for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl Unpin for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl Unpin for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl Unpin for Defaults",1,["dfw::nftables::types::Defaults"]],["impl Unpin for Table",1,["dfw::nftables::types::Table"]],["impl Unpin for Initialization",1,["dfw::nftables::types::Initialization"]],["impl Unpin for Nftables",1,["dfw::nftables::Nftables"]],["impl Unpin for Family",1,["dfw::nftables::Family"]],["impl Unpin for Type",1,["dfw::nftables::Type"]],["impl Unpin for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> Unpin for ProcessContext<'a, B>",1,["dfw::process::ProcessContext"]],["impl Unpin for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl Unpin for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> Unpin for DFW<B>where\n <B as FirewallBackend>::Defaults: Unpin,",1,["dfw::types::DFW"]],["impl Unpin for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl Unpin for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl Unpin for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl Unpin for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl Unpin for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl Unpin for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl Unpin for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl Unpin for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl Unpin for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl Unpin for ExposePort",1,["dfw::types::ExposePort"]],["impl Unpin for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl Unpin for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl Unpin for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl Unpin for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl Unpin for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl Unpin for RuleVerdict",1,["dfw::types::RuleVerdict"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/main/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js similarity index 81% rename from main/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js rename to main/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index beacb156..7a36fbcc 100644 --- a/main/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/main/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"dfw":[["impl RefUnwindSafe for DFWError",1,["dfw::errors::DFWError"]],["impl RefUnwindSafe for Defaults",1,["dfw::iptables::types::Defaults"]],["impl RefUnwindSafe for Initialization",1,["dfw::iptables::types::Initialization"]],["impl RefUnwindSafe for Iptables",1,["dfw::iptables::Iptables"]],["impl RefUnwindSafe for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl RefUnwindSafe for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl RefUnwindSafe for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl RefUnwindSafe for Defaults",1,["dfw::nftables::types::Defaults"]],["impl RefUnwindSafe for Table",1,["dfw::nftables::types::Table"]],["impl RefUnwindSafe for Initialization",1,["dfw::nftables::types::Initialization"]],["impl RefUnwindSafe for Nftables",1,["dfw::nftables::Nftables"]],["impl RefUnwindSafe for Family",1,["dfw::nftables::Family"]],["impl RefUnwindSafe for Type",1,["dfw::nftables::Type"]],["impl RefUnwindSafe for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> !RefUnwindSafe for ProcessContext<'a, B>",1,["dfw::process::ProcessContext"]],["impl RefUnwindSafe for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl RefUnwindSafe for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> RefUnwindSafe for DFW<B>where\n <B as FirewallBackend>::Defaults: RefUnwindSafe,",1,["dfw::types::DFW"]],["impl RefUnwindSafe for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl RefUnwindSafe for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl RefUnwindSafe for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl RefUnwindSafe for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl RefUnwindSafe for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl RefUnwindSafe for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl RefUnwindSafe for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl RefUnwindSafe for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl RefUnwindSafe for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl RefUnwindSafe for ExposePort",1,["dfw::types::ExposePort"]],["impl RefUnwindSafe for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl RefUnwindSafe for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl RefUnwindSafe for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl RefUnwindSafe for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl RefUnwindSafe for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl RefUnwindSafe for RuleVerdict",1,["dfw::types::RuleVerdict"]]] +"dfw":[["impl RefUnwindSafe for DFWError",1,["dfw::errors::DFWError"]],["impl RefUnwindSafe for Defaults",1,["dfw::iptables::types::Defaults"]],["impl RefUnwindSafe for Initialization",1,["dfw::iptables::types::Initialization"]],["impl RefUnwindSafe for Iptables",1,["dfw::iptables::Iptables"]],["impl RefUnwindSafe for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl RefUnwindSafe for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl RefUnwindSafe for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl RefUnwindSafe for Defaults",1,["dfw::nftables::types::Defaults"]],["impl RefUnwindSafe for Table",1,["dfw::nftables::types::Table"]],["impl RefUnwindSafe for Initialization",1,["dfw::nftables::types::Initialization"]],["impl RefUnwindSafe for Nftables",1,["dfw::nftables::Nftables"]],["impl RefUnwindSafe for Family",1,["dfw::nftables::Family"]],["impl RefUnwindSafe for Type",1,["dfw::nftables::Type"]],["impl RefUnwindSafe for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> !RefUnwindSafe for ProcessContext<'a, B>",1,["dfw::process::ProcessContext"]],["impl RefUnwindSafe for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl RefUnwindSafe for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> RefUnwindSafe for DFW<B>where\n <B as FirewallBackend>::Defaults: RefUnwindSafe,",1,["dfw::types::DFW"]],["impl RefUnwindSafe for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl RefUnwindSafe for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl RefUnwindSafe for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl RefUnwindSafe for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl RefUnwindSafe for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl RefUnwindSafe for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl RefUnwindSafe for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl RefUnwindSafe for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl RefUnwindSafe for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl RefUnwindSafe for ExposePort",1,["dfw::types::ExposePort"]],["impl RefUnwindSafe for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl RefUnwindSafe for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl RefUnwindSafe for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl RefUnwindSafe for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl RefUnwindSafe for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl RefUnwindSafe for RuleVerdict",1,["dfw::types::RuleVerdict"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/main/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js similarity index 82% rename from main/implementors/core/panic/unwind_safe/trait.UnwindSafe.js rename to main/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index bd870b38..299038bd 100644 --- a/main/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/main/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"dfw":[["impl UnwindSafe for DFWError",1,["dfw::errors::DFWError"]],["impl UnwindSafe for Defaults",1,["dfw::iptables::types::Defaults"]],["impl UnwindSafe for Initialization",1,["dfw::iptables::types::Initialization"]],["impl UnwindSafe for Iptables",1,["dfw::iptables::Iptables"]],["impl UnwindSafe for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl UnwindSafe for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl UnwindSafe for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl UnwindSafe for Defaults",1,["dfw::nftables::types::Defaults"]],["impl UnwindSafe for Table",1,["dfw::nftables::types::Table"]],["impl UnwindSafe for Initialization",1,["dfw::nftables::types::Initialization"]],["impl UnwindSafe for Nftables",1,["dfw::nftables::Nftables"]],["impl UnwindSafe for Family",1,["dfw::nftables::Family"]],["impl UnwindSafe for Type",1,["dfw::nftables::Type"]],["impl UnwindSafe for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> !UnwindSafe for ProcessContext<'a, B>",1,["dfw::process::ProcessContext"]],["impl UnwindSafe for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl UnwindSafe for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> UnwindSafe for DFW<B>where\n <B as FirewallBackend>::Defaults: UnwindSafe,",1,["dfw::types::DFW"]],["impl UnwindSafe for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl UnwindSafe for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl UnwindSafe for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl UnwindSafe for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl UnwindSafe for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl UnwindSafe for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl UnwindSafe for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl UnwindSafe for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl UnwindSafe for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl UnwindSafe for ExposePort",1,["dfw::types::ExposePort"]],["impl UnwindSafe for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl UnwindSafe for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl UnwindSafe for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl UnwindSafe for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl UnwindSafe for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl UnwindSafe for RuleVerdict",1,["dfw::types::RuleVerdict"]]] +"dfw":[["impl UnwindSafe for DFWError",1,["dfw::errors::DFWError"]],["impl UnwindSafe for Defaults",1,["dfw::iptables::types::Defaults"]],["impl UnwindSafe for Initialization",1,["dfw::iptables::types::Initialization"]],["impl UnwindSafe for Iptables",1,["dfw::iptables::Iptables"]],["impl UnwindSafe for IptablesRule",1,["dfw::iptables::IptablesRule"]],["impl UnwindSafe for IptablesRuleDiscriminants",1,["dfw::iptables::IptablesRuleDiscriminants"]],["impl UnwindSafe for PolicyOrRule",1,["dfw::iptables::PolicyOrRule"]],["impl UnwindSafe for Defaults",1,["dfw::nftables::types::Defaults"]],["impl UnwindSafe for Table",1,["dfw::nftables::types::Table"]],["impl UnwindSafe for Initialization",1,["dfw::nftables::types::Initialization"]],["impl UnwindSafe for Nftables",1,["dfw::nftables::Nftables"]],["impl UnwindSafe for Family",1,["dfw::nftables::Family"]],["impl UnwindSafe for Type",1,["dfw::nftables::Type"]],["impl UnwindSafe for Hook",1,["dfw::nftables::Hook"]],["impl<'a, B> !UnwindSafe for ProcessContext<'a, B>",1,["dfw::process::ProcessContext"]],["impl UnwindSafe for ContainerFilter",1,["dfw::process::ContainerFilter"]],["impl UnwindSafe for ProcessingOptions",1,["dfw::process::ProcessingOptions"]],["impl<B> UnwindSafe for DFW<B>where\n <B as FirewallBackend>::Defaults: UnwindSafe,",1,["dfw::types::DFW"]],["impl UnwindSafe for GlobalDefaults",1,["dfw::types::GlobalDefaults"]],["impl UnwindSafe for ContainerToContainer",1,["dfw::types::ContainerToContainer"]],["impl UnwindSafe for ContainerToContainerRule",1,["dfw::types::ContainerToContainerRule"]],["impl UnwindSafe for ContainerToWiderWorld",1,["dfw::types::ContainerToWiderWorld"]],["impl UnwindSafe for ContainerToWiderWorldRule",1,["dfw::types::ContainerToWiderWorldRule"]],["impl UnwindSafe for ContainerToHost",1,["dfw::types::ContainerToHost"]],["impl UnwindSafe for ContainerToHostRule",1,["dfw::types::ContainerToHostRule"]],["impl UnwindSafe for WiderWorldToContainer",1,["dfw::types::WiderWorldToContainer"]],["impl UnwindSafe for WiderWorldToContainerRule",1,["dfw::types::WiderWorldToContainerRule"]],["impl UnwindSafe for ExposePort",1,["dfw::types::ExposePort"]],["impl UnwindSafe for ExposePortBuilder",1,["dfw::types::ExposePortBuilder"]],["impl UnwindSafe for ExposePortBuilderError",1,["dfw::types::ExposePortBuilderError"]],["impl UnwindSafe for ContainerDNAT",1,["dfw::types::ContainerDNAT"]],["impl UnwindSafe for ContainerDNATRule",1,["dfw::types::ContainerDNATRule"]],["impl UnwindSafe for ChainPolicy",1,["dfw::types::ChainPolicy"]],["impl UnwindSafe for RuleVerdict",1,["dfw::types::RuleVerdict"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/core/str/traits/trait.FromStr.js b/main/trait.impl/core/str/traits/trait.FromStr.js similarity index 60% rename from main/implementors/core/str/traits/trait.FromStr.js rename to main/trait.impl/core/str/traits/trait.FromStr.js index 5c5c293f..72597f9e 100644 --- a/main/implementors/core/str/traits/trait.FromStr.js +++ b/main/trait.impl/core/str/traits/trait.FromStr.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"dfw":[["impl FromStr for ExposePort"],["impl FromStr for RuleVerdict"],["impl FromStr for ChainPolicy"]] +"dfw":[["impl FromStr for ExposePort"],["impl FromStr for ChainPolicy"],["impl FromStr for RuleVerdict"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/dfw/process/trait.Process.js b/main/trait.impl/dfw/process/trait.Process.js similarity index 100% rename from main/implementors/dfw/process/trait.Process.js rename to main/trait.impl/dfw/process/trait.Process.js diff --git a/main/implementors/dfw/trait.FirewallBackend.js b/main/trait.impl/dfw/trait.FirewallBackend.js similarity index 100% rename from main/implementors/dfw/trait.FirewallBackend.js rename to main/trait.impl/dfw/trait.FirewallBackend.js diff --git a/main/implementors/dfw/util/trait.FutureExt.js b/main/trait.impl/dfw/util/trait.FutureExt.js similarity index 100% rename from main/implementors/dfw/util/trait.FutureExt.js rename to main/trait.impl/dfw/util/trait.FutureExt.js diff --git a/main/implementors/failure/trait.Fail.js b/main/trait.impl/failure/trait.Fail.js similarity index 100% rename from main/implementors/failure/trait.Fail.js rename to main/trait.impl/failure/trait.Fail.js diff --git a/main/trait.impl/serde/de/trait.Deserialize.js b/main/trait.impl/serde/de/trait.Deserialize.js new file mode 100644 index 00000000..4eaaef72 --- /dev/null +++ b/main/trait.impl/serde/de/trait.Deserialize.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"dfw":[["impl<'de> Deserialize<'de> for GlobalDefaults"],["impl<'de> Deserialize<'de> for Table"],["impl<'de> Deserialize<'de> for ExposePort"],["impl<'de> Deserialize<'de> for ContainerToHost"],["impl<'de> Deserialize<'de> for ContainerToWiderWorldRule"],["impl<'de> Deserialize<'de> for ChainPolicy"],["impl<'de> Deserialize<'de> for ContainerToHostRule"],["impl<'de> Deserialize<'de> for WiderWorldToContainerRule"],["impl<'de> Deserialize<'de> for Initialization"],["impl<'de> Deserialize<'de> for WiderWorldToContainer"],["impl<'de> Deserialize<'de> for ContainerDNATRule"],["impl<'de> Deserialize<'de> for Defaults"],["impl<'de> Deserialize<'de> for RuleVerdict"],["impl<'de> Deserialize<'de> for ContainerToContainerRule"],["impl<'de> Deserialize<'de> for Initialization"],["impl<'de, B> Deserialize<'de> for DFW<B>where\n B: FirewallBackend,\n DFW<B>: Process<B>,"],["impl<'de> Deserialize<'de> for ContainerDNAT"],["impl<'de> Deserialize<'de> for ContainerToContainer"],["impl<'de> Deserialize<'de> for ContainerToWiderWorld"],["impl<'de> Deserialize<'de> for Defaults"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/main/implementors/slog/trait.Value.js b/main/trait.impl/slog/trait.Value.js similarity index 100% rename from main/implementors/slog/trait.Value.js rename to main/trait.impl/slog/trait.Value.js diff --git a/main/type.impl/core/result/enum.Result.js b/main/type.impl/core/result/enum.Result.js new file mode 100644 index 00000000..2b5ceac0 --- /dev/null +++ b/main/type.impl/core/result/enum.Result.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"dfw":[["
source§

impl<T, E> Result<T, E>

1.0.0 (const: 1.48.0) · source

pub const fn is_ok(&self) -> bool

Returns true if the result is Ok.

\n
Examples
\n
let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_ok(), true);\n\nlet x: Result<i32, &str> = Err("Some error message");\nassert_eq!(x.is_ok(), false);
\n
1.70.0 · source

pub fn is_ok_and(self, f: impl FnOnce(T) -> bool) -> bool

Returns true if the result is Ok and the value inside of it matches a predicate.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.is_ok_and(|x| x > 1), true);\n\nlet x: Result<u32, &str> = Ok(0);\nassert_eq!(x.is_ok_and(|x| x > 1), false);\n\nlet x: Result<u32, &str> = Err("hey");\nassert_eq!(x.is_ok_and(|x| x > 1), false);
\n
1.0.0 (const: 1.48.0) · source

pub const fn is_err(&self) -> bool

Returns true if the result is Err.

\n
Examples
\n
let x: Result<i32, &str> = Ok(-3);\nassert_eq!(x.is_err(), false);\n\nlet x: Result<i32, &str> = Err("Some error message");\nassert_eq!(x.is_err(), true);
\n
1.70.0 · source

pub fn is_err_and(self, f: impl FnOnce(E) -> bool) -> bool

Returns true if the result is Err and the value inside of it matches a predicate.

\n
Examples
\n
use std::io::{Error, ErrorKind};\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::NotFound, "!"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), true);\n\nlet x: Result<u32, Error> = Err(Error::new(ErrorKind::PermissionDenied, "!"));\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);\n\nlet x: Result<u32, Error> = Ok(123);\nassert_eq!(x.is_err_and(|x| x.kind() == ErrorKind::NotFound), false);
\n
1.0.0 · source

pub fn ok(self) -> Option<T>

Converts from Result<T, E> to Option<T>.

\n

Converts self into an Option<T>, consuming self,\nand discarding the error, if any.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.ok(), Some(2));\n\nlet x: Result<u32, &str> = Err("Nothing here");\nassert_eq!(x.ok(), None);
\n
1.0.0 · source

pub fn err(self) -> Option<E>

Converts from Result<T, E> to Option<E>.

\n

Converts self into an Option<E>, consuming self,\nand discarding the success value, if any.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.err(), None);\n\nlet x: Result<u32, &str> = Err("Nothing here");\nassert_eq!(x.err(), Some("Nothing here"));
\n
1.0.0 (const: 1.48.0) · source

pub const fn as_ref(&self) -> Result<&T, &E>

Converts from &Result<T, E> to Result<&T, &E>.

\n

Produces a new Result, containing a reference\ninto the original, leaving the original in place.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.as_ref(), Ok(&2));\n\nlet x: Result<u32, &str> = Err("Error");\nassert_eq!(x.as_ref(), Err(&"Error"));
\n
1.0.0 (const: unstable) · source

pub fn as_mut(&mut self) -> Result<&mut T, &mut E>

Converts from &mut Result<T, E> to Result<&mut T, &mut E>.

\n
Examples
\n
fn mutate(r: &mut Result<i32, i32>) {\n    match r.as_mut() {\n        Ok(v) => *v = 42,\n        Err(e) => *e = 0,\n    }\n}\n\nlet mut x: Result<i32, i32> = Ok(2);\nmutate(&mut x);\nassert_eq!(x.unwrap(), 42);\n\nlet mut x: Result<i32, i32> = Err(13);\nmutate(&mut x);\nassert_eq!(x.unwrap_err(), 0);
\n
1.0.0 · source

pub fn map<U, F>(self, op: F) -> Result<U, E>where\n F: FnOnce(T) -> U,

Maps a Result<T, E> to Result<U, E> by applying a function to a\ncontained Ok value, leaving an Err value untouched.

\n

This function can be used to compose the results of two functions.

\n
Examples
\n

Print the numbers on each line of a string multiplied by two.

\n\n
let line = "1\\n2\\n3\\n4\\n";\n\nfor num in line.lines() {\n    match num.parse::<i32>().map(|i| i * 2) {\n        Ok(n) => println!("{n}"),\n        Err(..) => {}\n    }\n}
\n
1.41.0 · source

pub fn map_or<U, F>(self, default: U, f: F) -> Uwhere\n F: FnOnce(T) -> U,

Returns the provided default (if Err), or\napplies a function to the contained value (if Ok).

\n

Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

\n
Examples
\n
let x: Result<_, &str> = Ok("foo");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Result<&str, _> = Err("bar");\nassert_eq!(x.map_or(42, |v| v.len()), 42);
\n
1.41.0 · source

pub fn map_or_else<U, D, F>(self, default: D, f: F) -> Uwhere\n D: FnOnce(E) -> U,\n F: FnOnce(T) -> U,

Maps a Result<T, E> to U by applying fallback function default to\na contained Err value, or function f to a contained Ok value.

\n

This function can be used to unpack a successful result\nwhile handling an error.

\n
Examples
\n
let k = 21;\n\nlet x : Result<_, &str> = Ok("foo");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 3);\n\nlet x : Result<&str, _> = Err("bar");\nassert_eq!(x.map_or_else(|e| k * 2, |v| v.len()), 42);
\n
1.0.0 · source

pub fn map_err<F, O>(self, op: O) -> Result<T, F>where\n O: FnOnce(E) -> F,

Maps a Result<T, E> to Result<T, F> by applying a function to a\ncontained Err value, leaving an Ok value untouched.

\n

This function can be used to pass through a successful result while handling\nan error.

\n
Examples
\n
fn stringify(x: u32) -> String { format!("error code: {x}") }\n\nlet x: Result<u32, u32> = Ok(2);\nassert_eq!(x.map_err(stringify), Ok(2));\n\nlet x: Result<u32, u32> = Err(13);\nassert_eq!(x.map_err(stringify), Err("error code: 13".to_string()));
\n
source

pub fn inspect<F>(self, f: F) -> Result<T, E>where\n F: FnOnce(&T),

🔬This is a nightly-only experimental API. (result_option_inspect)

Calls the provided closure with a reference to the contained value (if Ok).

\n
Examples
\n
#![feature(result_option_inspect)]\n\nlet x: u8 = "4"\n    .parse::<u8>()\n    .inspect(|x| println!("original: {x}"))\n    .map(|x| x.pow(3))\n    .expect("failed to parse number");
\n
source

pub fn inspect_err<F>(self, f: F) -> Result<T, E>where\n F: FnOnce(&E),

🔬This is a nightly-only experimental API. (result_option_inspect)

Calls the provided closure with a reference to the contained error (if Err).

\n
Examples
\n
#![feature(result_option_inspect)]\n\nuse std::{fs, io};\n\nfn read() -> io::Result<String> {\n    fs::read_to_string("address.txt")\n        .inspect_err(|e| eprintln!("failed to read file: {e}"))\n}
\n
1.47.0 · source

pub fn as_deref(&self) -> Result<&<T as Deref>::Target, &E>where\n T: Deref,

Converts from Result<T, E> (or &Result<T, E>) to Result<&<T as Deref>::Target, &E>.

\n

Coerces the Ok variant of the original Result via Deref\nand returns the new Result.

\n
Examples
\n
let x: Result<String, u32> = Ok("hello".to_string());\nlet y: Result<&str, &u32> = Ok("hello");\nassert_eq!(x.as_deref(), y);\n\nlet x: Result<String, u32> = Err(42);\nlet y: Result<&str, &u32> = Err(&42);\nassert_eq!(x.as_deref(), y);
\n
1.47.0 · source

pub fn as_deref_mut(&mut self) -> Result<&mut <T as Deref>::Target, &mut E>where\n T: DerefMut,

Converts from Result<T, E> (or &mut Result<T, E>) to Result<&mut <T as DerefMut>::Target, &mut E>.

\n

Coerces the Ok variant of the original Result via DerefMut\nand returns the new Result.

\n
Examples
\n
let mut s = "HELLO".to_string();\nlet mut x: Result<String, u32> = Ok("hello".to_string());\nlet y: Result<&mut str, &mut u32> = Ok(&mut s);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);\n\nlet mut i = 42;\nlet mut x: Result<String, u32> = Err(42);\nlet y: Result<&mut str, &mut u32> = Err(&mut i);\nassert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), y);
\n
1.0.0 · source

pub fn iter(&self) -> Iter<'_, T>

Returns an iterator over the possibly contained value.

\n

The iterator yields one value if the result is Result::Ok, otherwise none.

\n
Examples
\n
let x: Result<u32, &str> = Ok(7);\nassert_eq!(x.iter().next(), Some(&7));\n\nlet x: Result<u32, &str> = Err("nothing!");\nassert_eq!(x.iter().next(), None);
\n
1.0.0 · source

pub fn iter_mut(&mut self) -> IterMut<'_, T>

Returns a mutable iterator over the possibly contained value.

\n

The iterator yields one value if the result is Result::Ok, otherwise none.

\n
Examples
\n
let mut x: Result<u32, &str> = Ok(7);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 40,\n    None => {},\n}\nassert_eq!(x, Ok(40));\n\nlet mut x: Result<u32, &str> = Err("nothing!");\nassert_eq!(x.iter_mut().next(), None);
\n
1.4.0 · source

pub fn expect(self, msg: &str) -> Twhere\n E: Debug,

Returns the contained Ok value, consuming the self value.

\n

Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

\n
Panics
\n

Panics if the value is an Err, with a panic message including the\npassed message, and the content of the Err.

\n
Examples
\n
let x: Result<u32, &str> = Err("emergency failure");\nx.expect("Testing expect"); // panics with `Testing expect: emergency failure`
\n
Recommended Message Style
\n

We recommend that expect messages are used to describe the reason you\nexpect the Result should be Ok.

\n\n
let path = std::env::var("IMPORTANT_PATH")\n    .expect("env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`");
\n

Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

\n

For more detail on expect message styles and the reasoning behind our recommendation please\nrefer to the section on “Common Message\nStyles” in the\nstd::error module docs.

\n
1.0.0 · source

pub fn unwrap(self) -> Twhere\n E: Debug,

Returns the contained Ok value, consuming the self value.

\n

Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the Err\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

\n
Panics
\n

Panics if the value is an Err, with a panic message provided by the\nErr’s value.

\n
Examples
\n

Basic usage:

\n\n
let x: Result<u32, &str> = Ok(2);\nassert_eq!(x.unwrap(), 2);
\n\n
let x: Result<u32, &str> = Err("emergency failure");\nx.unwrap(); // panics with `emergency failure`
\n
1.16.0 · source

pub fn unwrap_or_default(self) -> Twhere\n T: Default,

Returns the contained Ok value or a default

\n

Consumes the self argument then, if Ok, returns the contained\nvalue, otherwise if Err, returns the default value for that\ntype.

\n
Examples
\n

Converts a string to an integer, turning poorly-formed strings\ninto 0 (the default value for integers). parse converts\na string to any other type that implements FromStr, returning an\nErr on error.

\n\n
let good_year_from_input = "1909";\nlet bad_year_from_input = "190blarg";\nlet good_year = good_year_from_input.parse().unwrap_or_default();\nlet bad_year = bad_year_from_input.parse().unwrap_or_default();\n\nassert_eq!(1909, good_year);\nassert_eq!(0, bad_year);
\n
1.17.0 · source

pub fn expect_err(self, msg: &str) -> Ewhere\n T: Debug,

Returns the contained Err value, consuming the self value.

\n
Panics
\n

Panics if the value is an Ok, with a panic message including the\npassed message, and the content of the Ok.

\n
Examples
\n
let x: Result<u32, &str> = Ok(10);\nx.expect_err("Testing expect_err"); // panics with `Testing expect_err: 10`
\n
1.0.0 · source

pub fn unwrap_err(self) -> Ewhere\n T: Debug,

Returns the contained Err value, consuming the self value.

\n
Panics
\n

Panics if the value is an Ok, with a custom panic message provided\nby the Ok’s value.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nx.unwrap_err(); // panics with `2`
\n\n
let x: Result<u32, &str> = Err("emergency failure");\nassert_eq!(x.unwrap_err(), "emergency failure");
\n
source

pub fn into_ok(self) -> Twhere\n E: Into<!>,

🔬This is a nightly-only experimental API. (unwrap_infallible)

Returns the contained Ok value, but never panics.

\n

Unlike unwrap, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap as a maintainability safeguard that will fail\nto compile if the error type of the Result is later changed\nto an error that can actually occur.

\n
Examples
\n
\nfn only_good_news() -> Result<String, !> {\n    Ok("this is fine".into())\n}\n\nlet s: String = only_good_news().into_ok();\nprintln!("{s}");
\n
source

pub fn into_err(self) -> Ewhere\n T: Into<!>,

🔬This is a nightly-only experimental API. (unwrap_infallible)

Returns the contained Err value, but never panics.

\n

Unlike unwrap_err, this method is known to never panic on the\nresult types it is implemented for. Therefore, it can be used\ninstead of unwrap_err as a maintainability safeguard that will fail\nto compile if the ok type of the Result is later changed\nto a type that can actually occur.

\n
Examples
\n
\nfn only_bad_news() -> Result<!, String> {\n    Err("Oops, it failed".into())\n}\n\nlet error: String = only_bad_news().into_err();\nprintln!("{error}");
\n
1.0.0 · source

pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>

Returns res if the result is Ok, otherwise returns the Err value of self.

\n

Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Err("late error");\nassert_eq!(x.and(y), Err("late error"));\n\nlet x: Result<u32, &str> = Err("early error");\nlet y: Result<&str, &str> = Ok("foo");\nassert_eq!(x.and(y), Err("early error"));\n\nlet x: Result<u32, &str> = Err("not a 2");\nlet y: Result<&str, &str> = Err("late error");\nassert_eq!(x.and(y), Err("not a 2"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<&str, &str> = Ok("different result type");\nassert_eq!(x.and(y), Ok("different result type"));
\n
1.0.0 · source

pub fn and_then<U, F>(self, op: F) -> Result<U, E>where\n F: FnOnce(T) -> Result<U, E>,

Calls op if the result is Ok, otherwise returns the Err value of self.

\n

This function can be used for control flow based on Result values.

\n
Examples
\n
fn sq_then_to_string(x: u32) -> Result<String, &'static str> {\n    x.checked_mul(x).map(|sq| sq.to_string()).ok_or("overflowed")\n}\n\nassert_eq!(Ok(2).and_then(sq_then_to_string), Ok(4.to_string()));\nassert_eq!(Ok(1_000_000).and_then(sq_then_to_string), Err("overflowed"));\nassert_eq!(Err("not a number").and_then(sq_then_to_string), Err("not a number"));
\n

Often used to chain fallible operations that may return Err.

\n\n
use std::{io::ErrorKind, path::Path};\n\n// Note: on Windows "/" maps to "C:\\"\nlet root_modified_time = Path::new("/").metadata().and_then(|md| md.modified());\nassert!(root_modified_time.is_ok());\n\nlet should_fail = Path::new("/bad/path").metadata().and_then(|md| md.modified());\nassert!(should_fail.is_err());\nassert_eq!(should_fail.unwrap_err().kind(), ErrorKind::NotFound);
\n
1.0.0 · source

pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>

Returns res if the result is Err, otherwise returns the Ok value of self.

\n

Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Err("late error");\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err("early error");\nlet y: Result<u32, &str> = Ok(2);\nassert_eq!(x.or(y), Ok(2));\n\nlet x: Result<u32, &str> = Err("not a 2");\nlet y: Result<u32, &str> = Err("late error");\nassert_eq!(x.or(y), Err("late error"));\n\nlet x: Result<u32, &str> = Ok(2);\nlet y: Result<u32, &str> = Ok(100);\nassert_eq!(x.or(y), Ok(2));
\n
1.0.0 · source

pub fn or_else<F, O>(self, op: O) -> Result<T, F>where\n O: FnOnce(E) -> Result<T, F>,

Calls op if the result is Err, otherwise returns the Ok value of self.

\n

This function can be used for control flow based on result values.

\n
Examples
\n
fn sq(x: u32) -> Result<u32, u32> { Ok(x * x) }\nfn err(x: u32) -> Result<u32, u32> { Err(x) }\n\nassert_eq!(Ok(2).or_else(sq).or_else(sq), Ok(2));\nassert_eq!(Ok(2).or_else(err).or_else(sq), Ok(2));\nassert_eq!(Err(3).or_else(sq).or_else(err), Ok(9));\nassert_eq!(Err(3).or_else(err).or_else(err), Err(3));
\n
1.0.0 · source

pub fn unwrap_or(self, default: T) -> T

Returns the contained Ok value or a provided default.

\n

Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

\n
Examples
\n
let default = 2;\nlet x: Result<u32, &str> = Ok(9);\nassert_eq!(x.unwrap_or(default), 9);\n\nlet x: Result<u32, &str> = Err("error");\nassert_eq!(x.unwrap_or(default), default);
\n
1.0.0 · source

pub fn unwrap_or_else<F>(self, op: F) -> Twhere\n F: FnOnce(E) -> T,

Returns the contained Ok value or computes it from a closure.

\n
Examples
\n
fn count(x: &str) -> usize { x.len() }\n\nassert_eq!(Ok(2).unwrap_or_else(count), 2);\nassert_eq!(Err("foo").unwrap_or_else(count), 3);
\n
1.58.0 · source

pub unsafe fn unwrap_unchecked(self) -> T

Returns the contained Ok value, consuming the self value,\nwithout checking that the value is not an Err.

\n
Safety
\n

Calling this method on an Err is undefined behavior.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nassert_eq!(unsafe { x.unwrap_unchecked() }, 2);
\n\n
let x: Result<u32, &str> = Err("emergency failure");\nunsafe { x.unwrap_unchecked(); } // Undefined behavior!
\n
1.58.0 · source

pub unsafe fn unwrap_err_unchecked(self) -> E

Returns the contained Err value, consuming the self value,\nwithout checking that the value is not an Ok.

\n
Safety
\n

Calling this method on an Ok is undefined behavior.

\n
Examples
\n
let x: Result<u32, &str> = Ok(2);\nunsafe { x.unwrap_err_unchecked() }; // Undefined behavior!
\n\n
let x: Result<u32, &str> = Err("emergency failure");\nassert_eq!(unsafe { x.unwrap_err_unchecked() }, "emergency failure");
\n
",0,"dfw::errors::Result"],["
source§

impl<T, E> Result<&T, E>

1.59.0 · source

pub fn copied(self) -> Result<T, E>where\n T: Copy,

Maps a Result<&T, E> to a Result<T, E> by copying the contents of the\nOk part.

\n
Examples
\n
let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
\n
1.59.0 · source

pub fn cloned(self) -> Result<T, E>where\n T: Clone,

Maps a Result<&T, E> to a Result<T, E> by cloning the contents of the\nOk part.

\n
Examples
\n
let val = 12;\nlet x: Result<&i32, i32> = Ok(&val);\nassert_eq!(x, Ok(&12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
\n
",0,"dfw::errors::Result"],["
source§

impl<T, E> Result<&mut T, E>

1.59.0 · source

pub fn copied(self) -> Result<T, E>where\n T: Copy,

Maps a Result<&mut T, E> to a Result<T, E> by copying the contents of the\nOk part.

\n
Examples
\n
let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet copied = x.copied();\nassert_eq!(copied, Ok(12));
\n
1.59.0 · source

pub fn cloned(self) -> Result<T, E>where\n T: Clone,

Maps a Result<&mut T, E> to a Result<T, E> by cloning the contents of the\nOk part.

\n
Examples
\n
let mut val = 12;\nlet x: Result<&mut i32, i32> = Ok(&mut val);\nassert_eq!(x, Ok(&mut 12));\nlet cloned = x.cloned();\nassert_eq!(cloned, Ok(12));
\n
",0,"dfw::errors::Result"],["
source§

impl<T, E> Result<Option<T>, E>

1.33.0 (const: unstable) · source

pub fn transpose(self) -> Option<Result<T, E>>

Transposes a Result of an Option into an Option of a Result.

\n

Ok(None) will be mapped to None.\nOk(Some(_)) and Err(_) will be mapped to Some(Ok(_)) and Some(Err(_)).

\n
Examples
\n
#[derive(Debug, Eq, PartialEq)]\nstruct SomeErr;\n\nlet x: Result<Option<i32>, SomeErr> = Ok(Some(5));\nlet y: Option<Result<i32, SomeErr>> = Some(Ok(5));\nassert_eq!(x.transpose(), y);
\n
",0,"dfw::errors::Result"],["
source§

impl<T, E> Result<Result<T, E>, E>

source

pub fn flatten(self) -> Result<T, E>

🔬This is a nightly-only experimental API. (result_flattening)

Converts from Result<Result<T, E>, E> to Result<T, E>

\n
Examples
\n
#![feature(result_flattening)]\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Ok("hello"));\nassert_eq!(Ok("hello"), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Ok(Err(6));\nassert_eq!(Err(6), x.flatten());\n\nlet x: Result<Result<&'static str, u32>, u32> = Err(6);\nassert_eq!(Err(6), x.flatten());
\n

Flattening only removes one level of nesting at a time:

\n\n
#![feature(result_flattening)]\nlet x: Result<Result<Result<&'static str, u32>, u32>, u32> = Ok(Ok(Ok("hello")));\nassert_eq!(Ok(Ok("hello")), x.flatten());\nassert_eq!(Ok("hello"), x.flatten().flatten());
\n
",0,"dfw::errors::Result"],["
1.61.0 · source§

impl<T, E> Termination for Result<T, E>where\n T: Termination,\n E: Debug,

source§

fn report(self) -> ExitCode

Is called to get the representation of the value as status code.\nThis status code is returned to the operating system.
","Termination","dfw::errors::Result"],["
source§

impl<T, E, F> FromResidual<Yeet<E>> for Result<T, F>where\n F: From<E>,

source§

fn from_residual(_: Yeet<E>) -> Result<T, F>

🔬This is a nightly-only experimental API. (try_trait_v2)
Constructs the type from a compatible Residual type. Read more
","FromResidual>","dfw::errors::Result"],["
source§

impl<T, E, F> FromResidual<Result<Infallible, E>> for Result<T, F>where\n F: From<E>,

source§

fn from_residual(residual: Result<Infallible, E>) -> Result<T, F>

🔬This is a nightly-only experimental API. (try_trait_v2)
Constructs the type from a compatible Residual type. Read more
","FromResidual>","dfw::errors::Result"],["
source§

impl<T, E> Try for Result<T, E>

§

type Output = T

🔬This is a nightly-only experimental API. (try_trait_v2)
The type of the value produced by ? when not short-circuiting.
§

type Residual = Result<Infallible, E>

🔬This is a nightly-only experimental API. (try_trait_v2)
The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
source§

fn from_output(output: <Result<T, E> as Try>::Output) -> Result<T, E>

🔬This is a nightly-only experimental API. (try_trait_v2)
Constructs the type from its Output type. Read more
source§

fn branch(\n self\n) -> ControlFlow<<Result<T, E> as Try>::Residual, <Result<T, E> as Try>::Output>

🔬This is a nightly-only experimental API. (try_trait_v2)
Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
","Try","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> StructuralEq for Result<T, E>

","StructuralEq","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> Eq for Result<T, E>where\n T: Eq,\n E: Eq,

","Eq","dfw::errors::Result"],["
1.0.0 · source§

impl<A, E, V> FromIterator<Result<A, E>> for Result<V, E>where\n V: FromIterator<A>,

source§

fn from_iter<I>(iter: I) -> Result<V, E>where\n I: IntoIterator<Item = Result<A, E>>,

Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err occur, a\ncontainer with the values of each Result is returned.

\n

Here is an example which increments every integer in a vector,\nchecking for overflow:

\n\n
let v = vec![1, 2];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_add(1).ok_or("Overflow!")\n).collect();\nassert_eq!(res, Ok(vec![2, 3]));
\n

Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

\n\n
let v = vec![1, 2, 0];\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32|\n    x.checked_sub(1).ok_or("Underflow!")\n).collect();\nassert_eq!(res, Err("Underflow!"));
\n

Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first Err.

\n\n
let v = vec![3, 2, 1, 10];\nlet mut shared = 0;\nlet res: Result<Vec<u32>, &'static str> = v.iter().map(|x: &u32| {\n    shared += x;\n    x.checked_sub(2).ok_or("Underflow!")\n}).collect();\nassert_eq!(res, Err("Underflow!"));\nassert_eq!(shared, 6);
\n

Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

\n
","FromIterator>","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> Ord for Result<T, E>where\n T: Ord,\n E: Ord,

source§

fn cmp(&self, other: &Result<T, E>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> PartialEq for Result<T, E>where\n T: PartialEq,\n E: PartialEq,

source§

fn eq(&self, other: &Result<T, E>) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> Clone for Result<T, E>where\n T: Clone,\n E: Clone,

source§

fn clone(&self) -> Result<T, E>

Returns a copy of the value. Read more
source§

fn clone_from(&mut self, source: &Result<T, E>)

Performs copy-assignment from source. Read more
","Clone","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> Hash for Result<T, E>where\n T: Hash,\n E: Hash,

source§

fn hash<__H>(&self, state: &mut __H)where\n __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
","Hash","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> IntoIterator for Result<T, E>

source§

fn into_iter(self) -> IntoIter<T>

Returns a consuming iterator over the possibly contained value.

\n

The iterator yields one value if the result is Result::Ok, otherwise none.

\n
Examples
\n
let x: Result<u32, &str> = Ok(5);\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, [5]);\n\nlet x: Result<u32, &str> = Err("nothing!");\nlet v: Vec<u32> = x.into_iter().collect();\nassert_eq!(v, []);
\n
§

type Item = T

The type of the elements being iterated over.
§

type IntoIter = IntoIter<T>

Which kind of iterator are we turning this into?
","IntoIterator","dfw::errors::Result"],["
source§

impl<T, E> Residual<T> for Result<Infallible, E>

§

type TryType = Result<T, E>

🔬This is a nightly-only experimental API. (try_trait_v2_residual)
The “return” type of this meta-function.
","Residual","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> StructuralPartialEq for Result<T, E>

","StructuralPartialEq","dfw::errors::Result"],["
1.16.0 · source§

impl<T, U, E> Sum<Result<U, E>> for Result<T, E>where\n T: Sum<U>,

source§

fn sum<I>(iter: I) -> Result<T, E>where\n I: Iterator<Item = Result<U, E>>,

Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the sum of all elements is returned.

\n
Examples
\n

This sums up every integer in a vector, rejecting the sum if a negative\nelement is encountered:

\n\n
let f = |&x: &i32| if x < 0 { Err("Negative element found") } else { Ok(x) };\nlet v = vec![1, 2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Ok(3));\nlet v = vec![1, -2];\nlet res: Result<i32, _> = v.iter().map(f).sum();\nassert_eq!(res, Err("Negative element found"));
\n
","Sum>","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> Debug for Result<T, E>where\n T: Debug,\n E: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> PartialOrd for Result<T, E>where\n T: PartialOrd,\n E: PartialOrd,

source§

fn partial_cmp(&self, other: &Result<T, E>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
","PartialOrd","dfw::errors::Result"],["
1.0.0 · source§

impl<T, E> Copy for Result<T, E>where\n T: Copy,\n E: Copy,

","Copy","dfw::errors::Result"],["
1.16.0 · source§

impl<T, U, E> Product<Result<U, E>> for Result<T, E>where\n T: Product<U>,

source§

fn product<I>(iter: I) -> Result<T, E>where\n I: Iterator<Item = Result<U, E>>,

Takes each element in the Iterator: if it is an Err, no further\nelements are taken, and the Err is returned. Should no Err\noccur, the product of all elements is returned.

\n
Examples
\n

This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns Err:

\n\n
let nums = vec!["5", "10", "1", "2"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert_eq!(total, Ok(100));\nlet nums = vec!["5", "10", "one", "2"];\nlet total: Result<usize, _> = nums.iter().map(|w| w.parse::<usize>()).product();\nassert!(total.is_err());
\n
","Product>","dfw::errors::Result"],["
source§

impl<'de, T, E> Deserialize<'de> for Result<T, E>where\n T: Deserialize<'de>,\n E: Deserialize<'de>,

source§

fn deserialize<D>(\n deserializer: D\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","dfw::errors::Result"],["
source§

impl<T, E> Serialize for Result<T, E>where\n T: Serialize,\n E: Serialize,

source§

fn serialize<S>(\n &self,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","dfw::errors::Result"],["
§

impl<T> ResultExt<T, Error> for Result<T, Error>

§

fn compat(self) -> Result<T, Compat<Error>>

Wraps the error in Compat to make it compatible with older error\nhandling APIs that expect std::error::Error. Read more
§

fn context<D>(self, context: D) -> Result<T, Context<D>>where\n D: Display + Send + Sync + 'static,

Wraps the error type in a context type. Read more
§

fn with_context<F, D>(self, f: F) -> Result<T, Context<D>>where\n F: FnOnce(&Error) -> D,\n D: Display + Send + Sync + 'static,

Wraps the error type in a context type generated by looking at the\nerror value. Read more
","ResultExt","dfw::errors::Result"],["
§

impl<T, E> ResultExt<T, E> for Result<T, E>where\n E: Fail,

§

fn compat(self) -> Result<T, Compat<E>>

Wraps the error in Compat to make it compatible with older error\nhandling APIs that expect std::error::Error. Read more
§

fn context<D>(self, context: D) -> Result<T, Context<D>>where\n D: Display + Send + Sync + 'static,

Wraps the error type in a context type. Read more
§

fn with_context<F, D>(self, f: F) -> Result<T, Context<D>>where\n F: FnOnce(&E) -> D,\n D: Display + Send + Sync + 'static,

Wraps the error type in a context type generated by looking at the\nerror value. Read more
","ResultExt","dfw::errors::Result"],["
source§

impl<'de, T, TAs, E, EAs> DeserializeAs<'de, Result<T, E>> for Result<TAs, EAs>where\n TAs: DeserializeAs<'de, T>,\n EAs: DeserializeAs<'de, E>,

source§

fn deserialize_as<D>(\n deserializer: D\n) -> Result<Result<T, E>, <D as Deserializer<'de>>::Error>where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer.
","DeserializeAs<'de, Result>","dfw::errors::Result"],["
source§

impl<T, TAs, E, EAs> SerializeAs<Result<T, E>> for Result<TAs, EAs>where\n TAs: SerializeAs<T>,\n EAs: SerializeAs<E>,

source§

fn serialize_as<S>(\n source: &Result<T, E>,\n serializer: S\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where\n S: Serializer,

Serialize this value into the given Serde serializer.
","SerializeAs>","dfw::errors::Result"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file